amiller 2 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба Приветствую! Обратил внимание на статью на хабре (https://habr.com/company/inforion/blog/359116/), где бодренько так показали процесс реверс-инжиниринга прошивки для STM32. Ради интереса решил попробовать. Установил версии IDA Pro 6.8 и 7.0 для теста (что нашел на просторах). Скормил ей по инструкции из статьи пару своих бинарников для STM32F103CB. Результат плачевный. Практически сплошные данные с редкими включениями неадекватного кода. Нет базы, с которой можно начинать работу по реверсу. Прошивки написаны на голом С без сторонних библиотек. В статье имеется пример прошивки, который анализировался. Скачал, скормил IDA и о чудо, - результат если и не идеальный, то точно есть с чем работать. Означает ли это, что IDA заточена на поиск стандартных сигнатур библиотечных функций и начинает анализ, отталкиваясь от них? Или я просто что то не так делаю? Если у кого то есть опыт успешного реверса, поделитесь настройками, что нужно сделать, чтобы процесс происходил максимально адекватно. Может нужно подключить дефайны с описанием регистров периферии, startup-файлы для нужного процессора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 33 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба Носорог? В этом весь маркетинг ;) Может нужно подключить ... startup-файлы для нужного процессора? Ну тогда уж и исходники спросить не грех :) Как-то раз стартап редактировал под задачу; такой же исходник ;) И что, строки, области данных, адреса, константы после директив "LTORG" не идентифицируются? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amiller 2 30 июня, 2018 Опубликовано 30 июня, 2018 · Жалоба Носорог? Ну тогда уж и исходники спросить не грех :) Как-то раз стартап редактировал под задачу; такой же исходник ;) И что, строки, области данных, адреса, константы после директив "LTORG" не идентифицируются? Да вот в том то и дело что практически ничего правильно не идентифицируется. В прошивке для носорога (из статьи) правильно идентифицируется процентов 70 функций, да и текстовые сообщения почти без ошибок выделяются. Точно с такими же настройками на моих прошивках результат - полный ноль. Причём в составе кода есть структуры с большим количеством текстовых сообщений. Правда сейчас пришло в голову, что они все на кириллице, а в носороге на английском. Вся память без затей идентифицируется как константные данные и забивается директивами DCB или DCW. И "якобы код" был идентифицирован там, где лежали примитивы графики для дисплея. В общем чепуха полная. Про стартап написал по причине, что таблица прерываний для конкретного процессора определенная вещь. Зная данные из таблицы, можно идентифицировать все функции прерываний и main. Далее проанализировать все вторичные вызовы функций ну и т.д. Но похоже, что Ida работает как то иначе. Быстро получить результат не удалось. Поэтому и спрашивал о чужом опыте. Ещё рано говорить о поддержке STM32 или уже можно пытаться использовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 40 30 июня, 2018 Опубликовано 30 июня, 2018 · Жалоба Читаете RM от STM32 Определяете в IDA сегменты (CMSIS, ROM, RAM, PERIPHERIAL) И от 0x8000004 (и остальные тоже) начинаете. Можно и файл с описанием сделать, что бы каждый раз руками не задавать. Конечно не так просто, но возможно. Например http://akb77.com/g/stm32/fix-jlink-ob-09262016/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 30 июня, 2018 Опубликовано 30 июня, 2018 · Жалоба для "начала" работы с IDA (на хабре) это не лучший пример (с кучей "закрытого" кода в библиотеках и HAL и еще RTOS). Скомпилируйте простой main без вызова библоиотечных ф-ий (кроме математики), "набейте" основные элементы программы - циклы, условия, switch-case итд, вызовы ф-ий, структуры данных. После этого (имея исходник, листинг на асм, map-файл) попробуйте поработать на IDA. ps параллельно RTFM ! как рекомендуют выше. В любом случае без этого - никак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 30 июня, 2018 Опубликовано 30 июня, 2018 · Жалоба Ради интереса решил попробовать. Процент успеха программного кода напрямую зависит от содержащихся в нём синтаксических и смысловых ошибок. Те самые синие предупреждения в логе сборщика, не критические ошибки. На библиотеках от st - количество синевы зашкаливает. Написать код для st без синевы - очень сложно. Необходимо очень многое переписывать с нуля, даже то что уже хорошо работает. Хотя это и радует взгляд - сомневаюсь что этим кто-то будет заниматься бесплатно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 35 1 июля, 2018 Опубликовано 1 июля, 2018 · Жалоба За поиск стандартных функций в ИДА всегда отвечал набор сигнатур ( файлы .sig). Если при начальной анализе ИДА правильно определяла используемый компилятор и библиотеки, то тогда могла выбрать и правильеый набор .sig и найти большинство библиотечных функций с заголовками. SIG можно создавать и самому, если библиотеки не стандартные, а требуется частое их использование. Например существовали наборы сигнатур для библиотек аппаратных ключей защиты. Раз в ТС библиотеки самописные, то и ИДА ничего про них не знает, надо ручками заголовки функций писать. Зато потом их можно экспортировать для повторного использования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aldec 0 19 марта, 2019 Опубликовано 19 марта, 2019 (изменено) · Жалоба В IDA армные прошивки лучше не грузить. Изменено 20 марта, 2019 пользователем Aldec Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexKLm 0 3 мая, 2021 Опубликовано 3 мая, 2021 · Жалоба Мне вот понадобилось армные погрузить на телегу бабе Иде. Но, вижу, придётся собирать конфигурацию по крохам в интернете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Immortal_Buka 0 3 мая, 2021 Опубликовано 3 мая, 2021 · Жалоба Ghidra весьма юзабельна, + к ней плагин, читающий svd файлы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 33 3 мая, 2021 Опубликовано 3 мая, 2021 · Жалоба Ghidra весьма юзабельна Запрещена к распространению на "святой Руси" - скачать не дают... Иран, КНДР, Куба, ну и "Верхняя Вольта с ракетами" ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 40 4 мая, 2021 Опубликовано 4 мая, 2021 · Жалоба 5 hours ago, Obam said: Запрещена к распространению на "святой Руси" - скачать не дают... Иран, КНДР, Куба, ну и "Верхняя Вольта с ракетами" ;-) И когда это мешало пытливым умам ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 33 4 мая, 2021 Опубликовано 4 мая, 2021 · Жалоба Ценю ваш сарказм, но столь специфический софт брать с мутных "гадюшников" (тем более, что в последнее время рез-ты выдачи поисковиков как-то "не радуют") желания нет, а с официального - см. пост выше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 197 5 мая, 2021 Опубликовано 5 мая, 2021 · Жалоба 8 часов назад, Obam сказал: Ценю ваш сарказм, но столь специфический софт брать с мутных "гадюшников" (тем более, что в последнее время рез-ты выдачи поисковиков как-то "не радуют") желания нет, а с официального - см. пост выше. Всё прекрасно качается с официального сайта через Tor Browser. Вы его пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 33 5 мая, 2021 Опубликовано 5 мая, 2021 · Жалоба Тор, за его неимением, не пробовал; ясное дело, "анонимайзиг" всяческий поможет ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться