Комментарии 52
норм затравочка )
Ну вот, как всегда, обрыв на самом интересном месте.
Это не вы, часом, "Лиловый шар" разбивали на части для публикации в "Пионерской правде"? :))
Жду, жду продолжения [поглаживая такую же ямаху] )))
Читается как остросюжетный детектив. С нетерпением жду второй серии!
P.S. А ещё саундбар работает с сетью даже тогда, когда выключен (но воткнут в розетку).
а еще он включается со смартфона и в требованиях к приложению беспроводная локальная сеть
Автор, не томи!!! Сифонит?
Ах ты ж хитрая ж...железка!!!
Ну вот, как же так, я его купить хотел как раз))
Красота! Трюк с исправлением битов, ориентируясь на CRC, отдельно порадовал. Жду продолжения!
"Шифрование" NAND - не ради сокрытия, а просто чтобы устранить длинные последовательности одинаковых битов (в NAND высокой плотности такие сгустки зарядов могут портить соседние биты), стандартная функция многих NAND-контроллеров. И та странность с другими сидами в каждом n-ном блоке, возможно, учитывает физическую организацию некой конкретной модели NAND. Алгоритмы эти, бывает, всплывают на форумах Acelab и подобных софтов по восстановлению данных.
Не знал, спасибо:)
На каком чудовищно сложном фундаменте стоит вся современная цивилизация! С виду - просто колонка, усиливающая звук телевизора, а автор начал разбираться - и какие бездны вершин открылись.
Костыли, примотанные изолентой к велосипеду с квадратными колёсами, едущему по специально спроектированной под квадратные колёса мостовой. И ведь это всё работает, мы это всё ежедневно носим в кармане, это нас возит в автомобилях и отправляет в полёт на самолётах!
Много очень интересных моментов в статье, особенно для меня. Понравился метод "догадки" поксоренных друг на друга ячеек, да и вообще работа с дампом памяти, снятого с NAND в TSOP48. Сам, практически ежедневно работаю с этим типом памяти. Проберы в использовании дизассемблеров разного толка ограничивают мои возможности, но когда для специалиста @DrMefistO это не проблема, то расследование становится и вправду очень интересным.
Большое спасибо за подобные статьи с исследованиями, разработками и изысканиями. Они помогают тем, кто интересуется и стремиться вырасти в реверсинге. Спасибо также за этот вклад, как лично в мою копилку знаний, так и в ресурс Хабр.
Торт!
Разве не достаточно было прокси/сниффер какой поставить?
Убийца - дворецкий.
Расходимся!
То, что данные улетяют без спроса очевидно, интересно что будет с этим сделано. Будет ли патч на это безобразие.
Написал вендору, а как там будет дальше неизвестно.
Да, этим можно заняться.
Наверняка к этому моменту у вас мог возникнуть вопрос: а почему вообще приём с ксором блоков мне помог? Дело в том, что в расшифрованном дампе оказалось очень большое количество блоков размером
0x440
байт, заполненных одними лишь нулями, либоFF
.
А я вот не понял, честно говоря. Вы же код взяли не из тех блоков которые были заполнены нулями или FF. Как же вам помогли пустые блоки? Или они вам помогли обнаружить периодичность?
И ещё, в порядке товарищеской критики: по тексту немного непоследовательно используется термин "блок". Сам NAND делится на блоки стирания (erase block), которые в свою очередь делятся на страницы (pages). Блоки по 0x440 байта было бы удобнее назвать как-нибудь иначе, чтобы не путать с блоками стирания по 0x22000. Например, "сегменты".
Спасибо за дельную критику! Я, пожалуй, не стану менять уже имеющееся именование. В даташитах нет упоминания деления на блоки "сегменты" по 0x440, как и того, что в каждом из них представлена Spare Area. Думаю, у читателя это не должно вызвать особой путаницы.
Касательно заполнения нулями и FF: да, там практически в самом начале расшифрованного дампа идёт огромный кусок, заполненный 00, а если точнее, то до 0x407F4 (это уже не включая вырезанные 0x40 в каждом "сегменте"). Так что мне, по сути, просто повезло встретить такое большое количество нулей.
В даташитах нет упоминания деления на блоки "сегменты" по 0x440, как и того, что в каждом из них представлена Spare Area
Я думаю, что его и нет. Во всяком случае те чипы, что мне попадались меньше страницы не делились. Скорее всего это фишка NAND-контроллера. Возможно, это самый маленький размер страницы встречающийся среди поддерживаемых NAND-чипов, вот они и работают сегментами такого размера.
Скорее всего так. До прошивки NAND-контроллера я тоже доберусь. Уже нашёл его JTAG.
Да, это самодеятельность NAND-контроллера. К примеру, из него наружу хотят классическими секторами по 0x200, сам NAND имеет страницы по 16К, контроллер использует схему ECC по 11 байт на сектор - ну и чхать ему на некрасивые смещения, забивает физические 16K кусками данные+ECC по 0x20B байт подряд без стыков, не разбираясь, где там по задумке производителя NAND данные, где spare, у него в сторону NAND потоковый интерфейс со счётчиками байтов, разделяющий данные/ЕСС на лету, достаточно только задать ему размеры того и другого. Плюс, внимание, где-то не в начале и не в конце физ. страницы может находиться bad block marker (!=FF - блок дефектный, смещение определяет производитель, он сразу на фабрике помечает дефектные блоки. Смещения встречались ну очень некруглые), приличный NAND-контроллер и его на лету отделяет, как ни в чём ни бывало. В итоге на самом нижнем уровне формат может быть ну очень причудливым.
И вишенкой на торте: в NAND, с которого какой-нибудь SoC напрямую грузится в embedded Linux, запросто может быть несколько зон с разными форматами страниц: BootROM понимает какой-нибудь свой причудливый формат, первичный загрузчик записан в нём, вторичным взяли какой-нибудь готовый U-Boot, организующий софтово свой формат, ядро Linux лежит в нём, а в самом ядре в драйвере ФС ещё какой-нибудь третий, и ФС - в нём :)
Спасибо за статью! Я все такие устройства в отдельную сеть с изоляцией друг от друга добавляю. Пускай сам себя сканирует. Ну и DNS-фильтрация
Расскажете, какое отношение вы имеете к сбербезикам? Просто за деньги да, или работаете там?
При чём тут "сбербезик"?
А что такое бизон, если не одна из многочисленных управляемых дочек сбера?
Вопрос был сформулирован, конечно же, не вполне корректно, но публикуя статью в блоге компании, вы неизбежно компанию рекламируете. Это, опять же, само по себе не плохо, но интересна связь.
работает с сетью даже тогда, когда выключен (но воткнут в розетку)
Видимо для Wake-on-Lan, или подобного, т. к. у меня в ресивере a1010 даже есть настройка для этого. Всё для того, чтобы можно было включить через приложение.
бывают же умные люди, магия для меня
Отдельное спасибо за netstat -tulpan
Когда же будет продолжение? Не терпится!
Исследуем саундбар Yamaha YAS-109