PDA

Просмотр полной версии : IDA Pro: как загрузить .sna файл?



vitr
16.05.2013, 15:24
Подскажите что надо прописать здесь

http://s7.postimg.org/8bswu2nkb/Untitled.png


и какую точку входа выбрать? (0х4000 должно быть ОК?)

вводил ROM и RAM как 0х0 0х4000 0хFFFF - выдает полный бред какую бы точку входа не ставил

попробовал dz80 дизассемблер он берет дамп памяти и дизассемблирует без всяких вопросов, на выходе асм файл 1:1 совпадает с тем что пишет в дебагере эмулятор Spectaculator. вообще какой смысл юзать IDA Pro....
что она даст для понимания кода? кстати ввел в иду тот файл асм что получился выше, так он и его испоганил, казалось бы уже готовый тебе асм, ничего не надо разбирать и дизассемблировать просто покажи его, наверно я не понимаю чего-то фундаментального в IDA...

psb
16.05.2013, 15:40
вот здесь есть про формат sna: http://www.worldofspectrum.org/faq/reference/formats.htm

27 первых байт надо выкусить, можно file offset задать. а потом сделать секцию RAM 0x4000, size=0xc000. все должно загрузиться. точка входа задается в заголовке sna (через SP или PC).

а вообще, надо просто лоадер sna написать к иде и все:)


что она даст для понимания кода?
например, разобьет все на функции, нарисует их в виде графа (а не одну монотонную длинную простыню) и позволит проще понимать код, давая переменным осознанные имена (постепенно код будет все понятнее и понятнее).

vitr
18.05.2013, 13:07
огромное спасибо! вставлю тут скриншот, может кому пригодится, да и чтобы не забыть самому потом

http://s15.postimg.org/idg7xmtkr/Image_1.png'


как я понял из описания sna формата (тут ксTати хорошая картинка http://www.zxmodules.de/fileformats/snaformat.html) точка входа это 2 байта по адресу 23 (0x17)
http://s23.postimg.org/autfpoh6f/Image_2.jpg (http://postimg.org/image/autfpoh6f/)
в моем случае это было 0хD6FF (если я ниче не путаю и байты не надо менять местами)
Таким образом после загрузки файла перешел на 0хD6FF и просто нажал С, ида разгребла все и выдала 265 процедур. беглым взглядом сверил результат с тем что выдал dz80 и с тем что пишет эмулятор, все совпадает))
Более того ида оставляет данные не тронутыми, в отличие от эмулятора, которые все тупо перегоняет в инструкции.
действительно можно визуализировать схрему перехода по процедурам и еще есть такая большая схема вызовов функций ( или процедур, ида называет иx сабрутинами)
Вобщем да, ида делает разбор игры достаточно тривиальной работой, мне только не хватает встроенного дебаггера/эмулятора, но с этой задачей хорошо справляется spectaculator в другом окне.

psb
18.05.2013, 15:01
мне только не хватает встроенного дебаггера/эмулятора
это да... а для х86 оно есть, удобно...