Огромное вам спасибо! Очень этого не хватало в FAR ещё со времён перехода с DOS Navigatorа, даже без редактирования, просто курсора, по которому можно было бы находить текущую позицию, переводя взгляд из окна в окно, а тут вообще всё и сразу.
А не подскажете заодно, где его там искать? Установил из PPA far2m, ни в Viewerе, ни в редакторе никаких новых комбинаций кнопок не видно, help ничего такого не упоминает, в Гугле тоже тишина.
где два первых байта произвольные (их значение я не знаю), а вторые два (00 EA) — постоянные
Это - ARM-инструкция безусловного перехода, «трамплин» к реальной точке входа внутри образа. Загрузчик, запуская образ, передаёт управление прямо сюда, по смещению 0.
Доводилось делать и такое, причём, на чипе без документации/распиновки/BSDL: чип не желал отлаживаться, но давал сканировать, по огромным длинам DR угадал инструкции сканирования, отпаял flash с известной распиновкой, дальше, гоняя в цикле сканирование и заземляя иголкой поочерёдно пины flash, нашёл биты DR, соответствующие им, заскриптовал шинные циклы чтения/записи и дальше уже команды по datasheet flash.
Однако, при наличии режима отладки и документации, в целом проще запустить на процессоре некий софтовый «загрузчик» и общаться уже с ним. Да и в целом, параллельные flash ушли в прошлое.
Такая ситуация с JTAG на микроконтроллерах абсолютно не удивляет, навскидку:
общая тенденция перехода с JTAG на SWD
Полное отсутствие поддержки тестирования от производителей МК: набортные отладчики демоплат умеют отлаживать, но не умеют тестировать, нужен некий отдельный сторонний интерфейс, софт к нему итд, да те же BSDL-файлы далеко не все публикуют.
Само тестирование межсоединений - некая отдельная операция, требующая своего подхода, нередко видится более простым встроить в код некий функциональный тест вида «внешний EEPROM пишется/читается», «внешний АЦП гонит данные» итд, который и соединения протестирует, и сами внешние компоненты.
Учитывая, что в большинстве устройств конфигурационные интерфейсы используются самими производителями для прошивки устройства и выведены на некие пятачки/разъём, а так же полностью цифровую натуру атаки с USENIX (=надёжную повторяемость, в отличие от аналоговой DPA, где то фильтрующие конденсаторы мешают, то у конкретного экземпляра кристалла параметры чуть уплывшие и нужно подстраиваться), достаточно одному такому «студенту на диплом» накодить и опубликовать реализацию, и 6-/7- серии начнут дампить буквально все, кому не лень (открыл корпус, подключил типовой программатор, запустил готовый скрипт, подождал).
Читал и статью с USENIX, и ответ Xilinx. По мне, первые два пункта ответа («для 7- и 6-series атака сравнима с DPA, так что хуже не стало») - не очень удачная попытка сохранить лицо, DPA - аппаратная атака, требует точных измерений потребления итд, тогда как атака с USENIX осуществима полностью софтово через стандартный программатор, т.е. куда доступнее и опаснее.
Да какие они ваши? Применение ChipWisperer на данной аппаратуре - чистой воды фантазия, с ним и на полностью детерминированных микроконтроллерах дело занимает часы, а тут - поймать момент длительностью единицы наносекунд, используя в качестве отправной точки момент отправки строки в терминал в 8-ядерную не realtime систему, с большой вероятностью перезагружая весь этот комбайн после каждой второй неудачной попытки? А в казино играть не пробовали?
Самопиар, вода (ну какой ChipWisperer на многоядерной гигагерцовой SoC? Точки отсчёта времени нет, разрешение недостаточно, повторяемости нет - да с такими вводными вероятнее угадать 100500-символьный пароль), байки (никто из вашей братии ни по каким Пекинам не летает, китайцы вполне доступны удалённо, и уж тем более никто не покупает клиенту целые машины, меняют DHU на б/ушный с разборки из Китая, потом спокойно чинят оставшийся себе родной блок), щепотка настоящей информации (команда adb, да и та из гуляющего в профильных чатах bat-файла). В целом соответствует плачевным практикам российского автосервиса с ценами «от», россказнями о чудо-процедурах, рассчитанными на несведущих в нишевой области клиентов итд.
Да, дело - в командах, общение идёт по SD интерфейсу, но посылаются vendor-specific команды (у Appotech - cmd 63).
Производитель, дабы иметь возможность посылать эти самые команды понятным способом, использует свой программатор (самодельный USB-SD интерфейс, не кардридер «из магазина»)
В Китае, при полной продажности работников за миску риса, софт/железо с заводов утекает любой, хоть с завода Apple. Почему софт для SD, в отличие от USB/SATA, не идёт в массы? Видимо, как раз из-за необходимости использовать программатор - куда меньше поводов давать софт кому-то ещё, не так расходится.
Да, и в Линуксе на встроенных ридерах можно, и для некоторых конкретных USB-ридеров разбирал вендорские протоколы, находил аналогичный функционал и посылал команды напрямую. Но с точки зрения производителей всё это, видимо, партизанщина (99.9% утёкших инструментов для USB-флэшек - под Windows, т.е. Линукс отсекается, а реверсить протоколы каких-то чужих ридеров и полагаться на них завод не станет) и они просто делают свои интерфейсы.
Неоднозначно выразился, под "специальными интерфейсами" имел в виду самодельные (сделанные заводом, управляемые по своему протоколу, не кардридеры из магазина) переходники с USB на SD.
Также знаю, что утекли команды для eMMC Samsung (из обновления прошивки, закрывавшего критический баг), на их основе сделаны "коробочки", позволяющие восстанавливать/форматировать некоторые их еММС. Есть немалая вероятность, что они же подойдут и для SD этого же производителя, но никто особо не пытался, т.к. SD Samsung - не самые распространённые.
Родственник работает авиадиспетчером, у них с давних времён функционирует всероссийский профсоюз (ФПАД), который, хоть и не идеален, но периодически организует их все на забастовки, общие требования итд, реально выбивая повышения/улучшения. А вот у смежных лётчиков и близко ничего такого, т.к. в массе своей они - отбитые индивидуалисты.
Программирование MicroSD требует отправки нестандартных команд на уровне SD интерфейса, что в общем случае (карта вставлена в произвольный, наперёд не известный авторам софта, кардридер) невозможно. По этой самой причине на заводах и используются специализированные интерфейсы. Как-то попадалось исследование заводского софта для контроллеров Appotech, так там в составе софта была прошивка для некоторого невиданного программатора на базе 8051 микроконтроллера от того же Appotech, тот управлялся софтом по USB и слал в SD интерфейс нужные команды.
Бегающие цветные полосы с плавным градиентом прямо поверх текста (через изменение регистров палитры с точным таймингом) тоже очень впечатляли
Огромное вам спасибо! Очень этого не хватало в FAR ещё со времён перехода с DOS Navigatorа, даже без редактирования, просто курсора, по которому можно было бы находить текущую позицию, переводя взгляд из окна в окно, а тут вообще всё и сразу.
А не подскажете заодно, где его там искать? Установил из PPA far2m, ни в Viewerе, ни в редакторе никаких новых комбинаций кнопок не видно, help ничего такого не упоминает, в Гугле тоже тишина.
Судя по описанию Repair Assistant (запуск которого упомянут в статье), новую оригинальную батарею он как раз привяжет.
Так в 2 раза - это относительно будущей Pro версии. Не очень понятно, зачем с ней сравнивать.
Это - ARM-инструкция безусловного перехода, «трамплин» к реальной точке входа внутри образа. Загрузчик, запуская образ, передаёт управление прямо сюда, по смещению 0.
Доводилось делать и такое, причём, на чипе без документации/распиновки/BSDL: чип не желал отлаживаться, но давал сканировать, по огромным длинам DR угадал инструкции сканирования, отпаял flash с известной распиновкой, дальше, гоняя в цикле сканирование и заземляя иголкой поочерёдно пины flash, нашёл биты DR, соответствующие им, заскриптовал шинные циклы чтения/записи и дальше уже команды по datasheet flash.
Однако, при наличии режима отладки и документации, в целом проще запустить на процессоре некий софтовый «загрузчик» и общаться уже с ним. Да и в целом, параллельные flash ушли в прошлое.
Такая ситуация с JTAG на микроконтроллерах абсолютно не удивляет, навскидку:
общая тенденция перехода с JTAG на SWD
Полное отсутствие поддержки тестирования от производителей МК: набортные отладчики демоплат умеют отлаживать, но не умеют тестировать, нужен некий отдельный сторонний интерфейс, софт к нему итд, да те же BSDL-файлы далеко не все публикуют.
Само тестирование межсоединений - некая отдельная операция, требующая своего подхода, нередко видится более простым встроить в код некий функциональный тест вида «внешний EEPROM пишется/читается», «внешний АЦП гонит данные» итд, который и соединения протестирует, и сами внешние компоненты.
Учитывая, что в большинстве устройств конфигурационные интерфейсы используются самими производителями для прошивки устройства и выведены на некие пятачки/разъём, а так же полностью цифровую натуру атаки с USENIX (=надёжную повторяемость, в отличие от аналоговой DPA, где то фильтрующие конденсаторы мешают, то у конкретного экземпляра кристалла параметры чуть уплывшие и нужно подстраиваться), достаточно одному такому «студенту на диплом» накодить и опубликовать реализацию, и 6-/7- серии начнут дампить буквально все, кому не лень (открыл корпус, подключил типовой программатор, запустил готовый скрипт, подождал).
Читал и статью с USENIX, и ответ Xilinx. По мне, первые два пункта ответа («для 7- и 6-series атака сравнима с DPA, так что хуже не стало») - не очень удачная попытка сохранить лицо, DPA - аппаратная атака, требует точных измерений потребления итд, тогда как атака с USENIX осуществима полностью софтово через стандартный программатор, т.е. куда доступнее и опаснее.
Да какие они ваши? Применение ChipWisperer на данной аппаратуре - чистой воды фантазия, с ним и на полностью детерминированных микроконтроллерах дело занимает часы, а тут - поймать момент длительностью единицы наносекунд, используя в качестве отправной точки момент отправки строки в терминал в 8-ядерную не realtime систему, с большой вероятностью перезагружая весь этот комбайн после каждой второй неудачной попытки? А в казино играть не пробовали?
Самопиар, вода (ну какой ChipWisperer на многоядерной гигагерцовой SoC? Точки отсчёта времени нет, разрешение недостаточно, повторяемости нет - да с такими вводными вероятнее угадать 100500-символьный пароль), байки (никто из вашей братии ни по каким Пекинам не летает, китайцы вполне доступны удалённо, и уж тем более никто не покупает клиенту целые машины, меняют DHU на б/ушный с разборки из Китая, потом спокойно чинят оставшийся себе родной блок), щепотка настоящей информации (команда adb, да и та из гуляющего в профильных чатах bat-файла). В целом соответствует плачевным практикам российского автосервиса с ценами «от», россказнями о чудо-процедурах, рассчитанными на несведущих в нишевой области клиентов итд.
А «космонавты» (демонстрантов бить которые)?
По порядку:
Да, дело - в командах, общение идёт по SD интерфейсу, но посылаются vendor-specific команды (у Appotech - cmd 63).
Производитель, дабы иметь возможность посылать эти самые команды понятным способом, использует свой программатор (самодельный USB-SD интерфейс, не кардридер «из магазина»)
В Китае, при полной продажности работников за миску риса, софт/железо с заводов утекает любой, хоть с завода Apple. Почему софт для SD, в отличие от USB/SATA, не идёт в массы? Видимо, как раз из-за необходимости использовать программатор - куда меньше поводов давать софт кому-то ещё, не так расходится.
Да, и в Линуксе на встроенных ридерах можно, и для некоторых конкретных USB-ридеров разбирал вендорские протоколы, находил аналогичный функционал и посылал команды напрямую. Но с точки зрения производителей всё это, видимо, партизанщина (99.9% утёкших инструментов для USB-флэшек - под Windows, т.е. Линукс отсекается, а реверсить протоколы каких-то чужих ридеров и полагаться на них завод не станет) и они просто делают свои интерфейсы.
По софту Appotech - ответил выше.
Неоднозначно выразился, под "специальными интерфейсами" имел в виду самодельные (сделанные заводом, управляемые по своему протоколу, не кардридеры из магазина) переходники с USB на SD.
Статья об Appotech, которую упоминал, вот: https://www.bunniestudios.com/blog/2013/on-hacking-microsd-cards/
Также знаю, что утекли команды для eMMC Samsung (из обновления прошивки, закрывавшего критический баг), на их основе сделаны "коробочки", позволяющие восстанавливать/форматировать некоторые их еММС. Есть немалая вероятность, что они же подойдут и для SD этого же производителя, но никто особо не пытался, т.к. SD Samsung - не самые распространённые.
Родственник работает авиадиспетчером, у них с давних времён функционирует всероссийский профсоюз (ФПАД), который, хоть и не идеален, но периодически организует их все на забастовки, общие требования итд, реально выбивая повышения/улучшения. А вот у смежных лётчиков и близко ничего такого, т.к. в массе своей они - отбитые индивидуалисты.
Программирование MicroSD требует отправки нестандартных команд на уровне SD интерфейса, что в общем случае (карта вставлена в произвольный, наперёд не известный авторам софта, кардридер) невозможно. По этой самой причине на заводах и используются специализированные интерфейсы. Как-то попадалось исследование заводского софта для контроллеров Appotech, так там в составе софта была прошивка для некоторого невиданного программатора на базе 8051 микроконтроллера от того же Appotech, тот управлялся софтом по USB и слал в SD интерфейс нужные команды.
Навело на мысль проверить, не пустили ли в AppStore ScummVM - пустили!
Airbus - он где-то там, за горизонтом событий. А поближе есть ВАЗ, с чуть другой историей.