Есть ли кто зарегистрированый на сайте habr.com? https://habr.com/post/350602/
Наткнулся на статью "IAD scripts Как я взломал паяльник"
Паяльник вскрывать не собираюсь ;-)
Решил ради интереса прикрутить скрипт на питоне к "своему" проекту, чтобы посмотреть как они работает.
Автор пишет, что скрипт переименовывают HEX значения в "человеческие" регистры и еще кое-чего полезного:
Но чтобы исследовать работу с периферией надо корректно определить все регистры по их номерам. Регистров тысячи, их числовая форма скрыта от программиста слоем библиотечного кода. В дизассемблере нашёл константу — поищи что это за регистр. Заниматься прыжками datasheet-дизассемблер мне быстро наскучило. И я написал питон-скрипт для IDA (ссылка на GitHub), который генерирует основную массу регистров. А заодно определяет таблицу векторов прерываний, даёт имена обработчикам, оформляет точку старта и создаёт сегмент SRAM.
Стало чуточку понятнее.
Попробовал и я, но получил ошибку:
global name 'ida_segment' is not defined
Traceback (most recent call last):
File "C:\Program Files\IDA 6.6\python\idaapi.py", line 601, in IDAPython_ExecScript
execfile(script, g)
File "E:/Halt/quasar_disasm/fake_quasar_222/IDA/IDA-scripts-master/STM32/ida_stm32f1xx.py", line 824, in <module>
Main()
File "E:/Halt/quasar_disasm/fake_quasar_222/IDA/IDA-scripts-master/STM32/ida_stm32f1xx.py", line 816, in Main
CreateSegmentSRAM()
File "E:/Halt/quasar_disasm/fake_quasar_222/IDA/IDA-scripts-master/STM32/ida_stm32f1xx.py", line 798, in CreateSegmentSRAM
seg = ida_segment.getseg(startEA)
NameError: global name 'ida_segment' is not defined
Подумал, что нужно переименовать сегмент кода
View\Open subviews\Segments
Открылось окно "Program Segmentation"
Переименовал сегмент в "ida_segment"
Ошибка осталась прежней.
Под статьей есть окошко с надписью "Написать"
https://habr.com/conversations/screwer/
Написал еще 27 марта.
Ответа нет.
Зарегистрировался на сайте - по правилам все равно не могу добавить комментарий/вопрос к статье.
Как достучатся до автора или запустить указанный скрипт?