TOG 0 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба Друзья, пытаюсь загрузить прошивку в bin формате в дизассемблер IDA Pro. Он просит вручную указать точку входа. Микроконтроллер stm32f103. Для тренировки написал несколько своих простеньких программок и попытался понять методику поиска точки входа в main. Не помогло. Может есть какие-то методики поиска точки входа в main ? (статью про носорога видел) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 226 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба 2 минуты назад, TOG сказал: Может есть какие-то методики поиска точки входа в main ? Открыть мануал на МК; найти в нём адрес положения таблицы векторов прерываний после сброса/вкл.питания; прочитать адрес старта ПО из вектора сброса в этой таблице. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 5 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба дык идите на вектор сброса, и оттуда дойдете до main а если сразу в main, то не иинициализируются переменные Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TOG 0 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба Правильно ли я Вас понял, для IDA Pro в качестве точки входа нужно указать адрес из вектора сброса ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба 53 minutes ago, TOG said: для IDA Pro в качестве точки входа нужно указать адрес из вектора сброса Да. А можно отказаться, ничего особо полезного для статического анализа (разглядыванием исходников, без запуска в железе) оно не даёт. А вообще настоятельно советую Ghidra. Знать ассемблер всё равно потребуется, но в сильно меньших объемах. Ну и https://github.com/leveldown-security/SVD-Loader-Ghidra до комплекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба 11 hours ago, TOG said: пытаюсь загрузить прошивку в bin формате в дизассемблер IDA Pro. По-подробнее о bin. Если это образ флеша процессора, начиная с физ. адреса X до физ. адреса Y - то все норм. Если это бинарный файл, который "заливается" через загрузчик, то может быть несколько неприятностей, касаемо дизассемблирования. (вроде загрузки в различные области памяти и шифрования). А может и не быть. Это я к тому, что дизассемблировать шифрованый файл - смысла не имеет. ps Если задача учебная - создайте в IAR/Keil небольшой проект, и попрактикуйтесь на нем, посматривая что-как разложил компилятор и линкер, в map-файле, уровень выдачи инф. для него установите максимальный. + IDA. 11 hours ago, megajohn said: дык идите на вектор сброса, и оттуда дойдете до main . . . Если (не дай-бог) C++, есть вероятность до main() пройтись по вызовам конструкторов "всех и вся" с косвенной-табличной адресацией . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 36 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба Если задача учебная - создайте в IAR/Keil небольшой проект, и попрактикуйтесь на нем, посматривая что-как разложил компилятор и линкер, в map-файле, уровень выдачи инф. для него установите максимальный. + IDA. Всё бы было хорошо, если бы не .icf-файл линкера - какой сочинишь, такой и результат будет: вариантов расположения секций и т.п. море. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба 18 hours ago, esaulenka said: Да. А можно отказаться, ничего особо полезного для статического анализа (разглядыванием исходников, без запуска в железе) оно не даёт. А вообще настоятельно советую Ghidra. Знать ассемблер всё равно потребуется, но в сильно меньших объемах. Ну и https://github.com/leveldown-security/SVD-Loader-Ghidra до комплекта. Спасибо за ссылку на SVD loader! Про гидру знал, а эту штуку нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 5 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба 13 часов назад, k155la3 сказал: Если (не дай-бог) C++, есть вероятность до main() пройтись по вызовам конструкторов "всех и вся" с косвенной-табличной адресацией . ну отлаживать без результата работы конструкторов тоже не правильно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба А если ещё и бут самописный, найди там ножичек... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 28 февраля, 2020 Опубликовано 28 февраля, 2020 · Жалоба On 2/26/2020 at 11:20 AM, TOG said: Друзья, пытаюсь загрузить прошивку в bin формате в дизассемблер IDA Pro. Он просит вручную указать точку входа. Микроконтроллер stm32f103. Для тренировки написал несколько своих простеньких программок и попытался понять методику поиска точки входа в main. Не помогло. Может есть какие-то методики поиска точки входа в main ? (статью про носорога видел) Вы файл выложили, глядишь кто то и посмотрит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sst78rus 0 6 марта, 2020 Опубликовано 6 марта, 2020 · Жалоба В 27.02.2020 в 08:04, uriy сказал: Спасибо за ссылку на SVD loader! Про гидру знал, а эту штуку нет Вот тут есть пример использования - https://www.youtube.com/watch?v=q4CxE5P6RUE&t=622s Я только не нашел как перенести "отладочную информацию" из гидры куда-нибдь в отладчик. Благодаря "псевдокоду" удобно разбирать что происходит и можно "переименовать" интересующие функции, добавить комментарии к коду и т.д. Но не всегда получается чисто статически разобраться, иногда удобнее в отладчике посмотреть. И вот было бы здорово или подключить отладчик интерактивно (так точно умеет IDA с x86 кодом), или хотя бы экспортировать комментарии в отладчик. Сейчас пользуюсь Ozone в качестве отладчика и во втором окне смотрю в гидре подсказки, что происходит. Код который разбираю был на С++ и много вызовов происходит очень не очевидно, без отладчика не понять куда будет переход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба On 3/6/2020 at 11:43 PM, sst78rus said: Вот тут есть пример использования - https://www.youtube.com/watch?v=q4CxE5P6RUE&t=622s Я только не нашел как перенести "отладочную информацию" из гидры куда-нибдь в отладчик. Благодаря "псевдокоду" удобно разбирать что происходит и можно "переименовать" интересующие функции, добавить комментарии к коду и т.д. Но не всегда получается чисто статически разобраться, иногда удобнее в отладчике посмотреть. И вот было бы здорово или подключить отладчик интерактивно (так точно умеет IDA с x86 кодом), или хотя бы экспортировать комментарии в отладчик. Сейчас пользуюсь Ozone в качестве отладчика и во втором окне смотрю в гидре подсказки, что происходит. Код который разбираю был на С++ и много вызовов происходит очень не очевидно, без отладчика не понять куда будет переход. Я использовал связку IDA+IAR. Еще не плохо бы знать компилятор которым компилировалось. Загружаете бинарник в IDA по базовому адресу указаному в документации. Тип процессора выставляется как Cortex-M7. Автоматом выберется тип кодирования thumb-2. Первые 8 байт нужно преобразовать в двойные слова (long, 4 байта). Первые 4 байта это значение вершины стека, следующие 4 байта - вектор прерывания. Становитесь на вектор и по правой клавише переходите на адрес. Адрес будет не правильный, правильный на 1 меньше. То место куда перебросит IDА нужно перевести в последовательность байт. Еще раз "пригнуть" с вектора на адрес и отступить на байт. Вот тут то и нажимается заветная клавиша "с". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 11 марта, 2020 Опубликовано 11 марта, 2020 · Жалоба On 3/7/2020 at 12:43 AM, sst78rus said: Я только не нашел как перенести "отладочную информацию" из гидры куда-нибдь в отладчик. Кажется, недолго ждать осталось: https://github.com/NationalSecurityAgency/ghidra/issues/24 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться