Разборка микроконтроллера stm8
Можно ли разобрать прошивку hex stm8?
1 ответ
Этот плагин IDA Pro 6.6, кажется, работает. https://github.com/derbroti/Stm8Ida
Предполагая, что вы работаете в Windows:
Откройте решение VS2013 и выполните сборку с использованием заголовков и библиотек SDK IDA 6.6. Вам нужно будет добавить idasdk66 \ include и idasdk66 \ module в список включаемых файлов, а idasdk66 \ lib\x86_win_vc_32 - в список расположений библиотек в файле вашего проекта.
Затем скопируйте вывод st8.w32 в: C: \ Program Files (x86) \ IDA 6.6 \ procs
Ваш файл состоит из двух разделов 8000-87FFh и 8800-BFFFh. По-видимому, первый - это загрузчик, второй - основная программа. Вы можете разобрать их по отдельности.
Я пытался сделать следующее:
- Просто вырежьте и сохраните первый раздел в один файл, а второй - в другой.
- Разберите каждый файл с помощью naked_asm:
naken_util.exe -disasm -stm8 ./fw.hex > ./fw.asm
- В результате я получил два файла asm: main.asm и boot.asm
Загрузочный файл начинается с общей таблицы IRQ. Основной файл направляет все IRQ на 886Bh, где кажется начало main()
функция, и первая инструкция asm("sim")
которые отключают все IRQ.
Кроме того, вы можете использовать более сложные программы, такие как IDA, и декомпилировать их, если вам нужно.