реклама на сайте
подробности

 
 
> IDA Pro, Решил попробовать
amiller
сообщение Jun 29 2018, 08:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Приветствую!
Обратил внимание на статью на хабре (https://habr.com/company/inforion/blog/359116/), где бодренько так показали процесс реверс-инжиниринга прошивки для STM32.
Ради интереса решил попробовать. Установил версии IDA Pro 6.8 и 7.0 для теста (что нашел на просторах).
Скормил ей по инструкции из статьи пару своих бинарников для STM32F103CB. Результат плачевный. Практически сплошные данные с редкими включениями неадекватного кода.
Нет базы, с которой можно начинать работу по реверсу. Прошивки написаны на голом С без сторонних библиотек.
В статье имеется пример прошивки, который анализировался. Скачал, скормил IDA и о чудо, - результат если и не идеальный, то точно есть с чем работать.
Означает ли это, что IDA заточена на поиск стандартных сигнатур библиотечных функций и начинает анализ, отталкиваясь от них?
Или я просто что то не так делаю?
Если у кого то есть опыт успешного реверса, поделитесь настройками, что нужно сделать, чтобы процесс происходил максимально адекватно.
Может нужно подключить дефайны с описанием регистров периферии, startup-файлы для нужного процессора?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Obam
сообщение Jun 29 2018, 16:22
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Носорог?
В этом весь маркетинг wink.gif
Цитата
Может нужно подключить ... startup-файлы для нужного процессора?

Ну тогда уж и исходники спросить не грех sm.gif Как-то раз стартап редактировал под задачу; такой же исходник wink.gif

И что, строки, области данных, адреса, константы после директив "LTORG" не идентифицируются?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
amiller
сообщение Jun 30 2018, 02:12
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Цитата(Obam @ Jun 29 2018, 19:22) *
Носорог?
Ну тогда уж и исходники спросить не грех sm.gif Как-то раз стартап редактировал под задачу; такой же исходник wink.gif

И что, строки, области данных, адреса, константы после директив "LTORG" не идентифицируются?

Да вот в том то и дело что практически ничего правильно не идентифицируется.
В прошивке для носорога (из статьи) правильно идентифицируется процентов 70 функций, да и текстовые сообщения почти без ошибок выделяются.
Точно с такими же настройками на моих прошивках результат - полный ноль.
Причём в составе кода есть структуры с большим количеством текстовых сообщений. Правда сейчас пришло в голову, что они все на кириллице, а в носороге на английском.
Вся память без затей идентифицируется как константные данные и забивается директивами DCB или DCW.
И "якобы код" был идентифицирован там, где лежали примитивы графики для дисплея. В общем чепуха полная.
Про стартап написал по причине, что таблица прерываний для конкретного процессора определенная вещь. Зная данные из таблицы, можно идентифицировать все функции прерываний и main. Далее проанализировать все вторичные вызовы функций ну и т.д.
Но похоже, что Ida работает как то иначе. Быстро получить результат не удалось.
Поэтому и спрашивал о чужом опыте. Ещё рано говорить о поддержке STM32 или уже можно пытаться использовать?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 07:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01304 секунд с 7
ELECTRONIX ©2004-2016