Сейчас на форуме: -Sanchez- (+9 невидимых) |
eXeL@B —› Основной форум —› Антиотладка на ARM процессорах |
Посл.ответ | Сообщение |
|
Создано: 29 декабря 2019 06:04 · Личное сообщение · #1 Доброго времени суток всем, уважаемые форумчане! Кто-нибудь слышал о программной антиотладке на ARM? Ищу, ищу - ничего по этой теме для этих чипов. Аппаратную антиотладку можно осушествить и примерно как-то так: определённые пины чипа соединяются с определённой схемой, которая при посылке команды отладки(возможно, какой-то стартовой) посылает IRQ чипу -> вызывается запрограммированный обработчик прерывания(имеем 32 дополнительных вектора, VIC) и это вносит какие-то кратковременные изменения в работу программы, которых достаточно чтобы помешать узнать, в чём дело. Получается аппаратно-программная антиотладка. Чтобы исключить ненужный поиск, спрашиваю - возможна ли чисто программная антиотладка? Поделитесь идеями. Проводил сейчас эксперименты: Эксперимент 1 1) посылаю одну команду устройству, код прошивки её обрабатывает, устанавливает адрес структуры в RAM, посылает, что всё ок 2) посылаю команду чтения адреса(встроена в прошивку, опыт хуков не прошёл даром), получаю адрес 3) посылаю вторую команду, устройство возвращает на него ошибку ERROR_NOT_ACTIVATED 4) повторяю пункт 2, адрес тот же Эксперимент 2 1) п.1 в эксперименте 1 2) п.2 в эксперименте 1 3) п.3 в эксперименте 1, но перед посылкой команды подключаюсь отладчиком (Ozone J-Link Debugger v3.10a). Отладчик достаточно долго коннектится, секунд 5-10. 4) После успешного подключения, посылки всех отладочных команд запрашиваю адрес - он обнулился. При этом активна точка останова на запись по адресу, где должен быть адрес структуры - не срабатывает, видимо, не успевает. Проц из ARM7TDMI-S архитектуры ARMv4T. Можно ли такое реализовать на нём чисто программно? ----- IZ.RU |
|
Создано: 29 декабря 2019 09:18 · Личное сообщение · #2 DenCoder А что делать с вашей инфой, она совершенно бесполезна для вашей задачи. По факту есть некий чёрный ящик, которому вы послали какую то команду и получили не ясный отклик, ERROR_NOT_ACTIVATED - а что это, гугл не знает. > посылаю одну команду устройству, код прошивки её обрабатывает Как он её обрабатывает хз ? Наверно начать нужно с попытки выгрузить прошивку для реверса если такое возможно. ----- vx | Сообщение посчитали полезным: BlackCode |
|
Создано: 29 декабря 2019 10:26 · Личное сообщение · #3 |
|
Создано: 29 декабря 2019 15:16 · Поправил: DenCoder · Личное сообщение · #4 difexacaw пишет: ERROR_NOT_ACTIVATED Это я к примеру. Настоящий код ошибки вам ничего не даст difexacaw пишет: Наверно начать нужно с попытки выгрузить прошивку для реверса если такое возможно А как ты думаешь, в DenCoder пишет: 2) посылаю команду чтения адреса(встроена в прошивку, опыт хуков не прошёл даром), получаю адрес фраза "встроена в прошивку" не говорит о том, что чтобы встроить что-то, надо сначала пореверсить? Добавлено спустя 2 минуты difexacaw пишет: Как он её обрабатывает хз ? Через прерывания, естественно. Есть команды, которые быстро обрабатываются прямо в обработчике. Есть с долгой обработкой, которые обрабатываются в User mode. Добавлено спустя 16 минут Ни одного debug-регистра, который хотя бы упоминался в прошивке, не видно. Но это, может, только напрямую. Есть т.н. "защита от любительских глаз", смысл которой в Code:
То есть, чтобы не было видно сразу, какая функция вызывается. Также такое, бывает, используется, чтобы не было видно сразу, какой адрес используется для чтения/записи. Потому и задал вопрос здесь, чтобы знать точно, есть ли возможность программной антиотладки. Чтобы если искать, то будучи уверенным, что такая есть в природе, значит может быть и здесь. Или не искать того, чего не бывает. 512 кб прошивки + 256 кб расшифрованного файла с кодом вряд ли вам будут интересны... ----- IZ.RU |
|
Создано: 29 декабря 2019 15:50 · Личное сообщение · #5 Advanced Techniques For Anti-Debugging (ARM) - ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: DenCoder |
eXeL@B —› Основной форум —› Антиотладка на ARM процессорах |