Вход

Просмотр полной версии : IDA Pro



Shadow Maker
20.08.2008, 04:44
Поделитесь опытом работы. Конечно так-то интуитивно понятно, но непонятно к примеру как сделать dw по метке. Ну то есть вот:



Meshok: dw 0c000h
dw 0c100h
---

#c000:
Uho db 0,12,3

Вот как в мешке вместо dw 0c000h поставить меткой, то есть заменить dw 0c000h на dw Uho?

caro
20.08.2008, 05:46
Вот как в мешке вместо dw 0c000h поставить меткой, то есть заменить dw 0c000h на dw Uho?Поставь курсор на 0с000h и нажми клавишу <O>.

Shadow Maker
20.08.2008, 12:18
А вот еще вопрос.



ROM:A989 square: db 0 ; DATA XREF: ROM:5B3Fo
ROM:A989 ; sub_873A+18w ...
ROM:A98A word_A98A: dw 0
Как у word_A98a убрать метку? Ну то есть чтобы все ссылки на нее поменялись на square+1?

И вот еще сразу:


ROM:5B7A ld hl, word_6600
ROM:5B7D ld de, 6601h
ROM:5B80 ld bc, 1FFh
ROM:5B83 ld (hl), 0
ROM:5B85 ldir

Можно как-то автоматически сменить у de метку на word_6600+1? А то когда "O" жму она конвертируется в "(word_6600+1)", что неправильно. Можно вручную прописать, но напрягает.

caro
20.08.2008, 12:42
А вот еще вопрос.



ROM:A989 square: db 0 ; DATA XREF: ROM:5B3Fo
ROM:A989 ; sub_873A+18w ...
ROM:A98A word_A98A: dw 0
Как у word_A98a убрать метку? Ну то есть чтобы все ссылки на нее поменялись на square+1?Обьяви зону с метки square как array (клавиша <*>) с требуемым размером (в данном случае 3).


И вот еще сразу:


ROM:5B7A ld hl, word_6600
ROM:5B7D ld de, 6601h
ROM:5B80 ld bc, 1FFh
ROM:5B83 ld (hl), 0
ROM:5B85 ldir

Можно как-то автоматически сменить у de метку на word_6600+1? А то когда "O" жму она конвертируется в "(word_6600+1)", что неправильно. Можно вручную прописать, но напрягает.Точно также область, начиная с word_6600, обьяви как array с размером, в данном случае 200H.

Shadow Maker
20.08.2008, 13:34
Ну с первым я сам уже разобрался, а второе нифига, объявил массив,


word_6600: dw 0, 38h, 700h, 3800h, 7 ;

а он мне все равно пишет ld de, (word_6600+1) вместо ld de, word_6600+1

caro
20.08.2008, 13:44
... он мне все равно пишет ld de, (word_6600+1) вместо ld de, word_6600+1Вообще то это ошибка дизассемблера, это же принципиально разный исходный код.
Какой версией IDA пользуешься?

Shadow Maker
20.08.2008, 13:48
Ну да, именно разный. Что меня и добивает.

Версия 4.5.1.770.

До кучи интересует вопрос, можно ли в Z80 дизассемблере заменить этот db [XXXXh], XXh на нормальный DS XXXXh, XXh. А то такое ни один ассемблер не понимает, а редактировать утомляет.

caro
20.08.2008, 13:58
Ну да, именно разный. Что меня и добивает.

Версия 4.5.1.770.Попробовал в версии 4.30, вот результат:

seg000:0000 ld hl, byte_0_6600
seg000:0003 ld de, (byte_0_6600+1)
seg000:0006 ld bc, 1FFh
seg000:0009 ld (hl), 0
seg000:000B ldir

dat:6600 ; ================================================== ========
dat:6600 segment dat
dat:6600 org 6600h
dat:6600 byte_0_6600: ds 100h ; DATA XREF: seg000:0000
Та же ошибка. Похоже глюк. Сейчас гляну в другой версии.


До кучи интересует вопрос, можно ли в Z80 дизассемблере заменить этот db [XXXXh], XXh на нормальный DS XXXXh, XXh. А то такое ни один ассемблер не понимает, а редактировать утомляет.Там в настройках есть выбор ассемблера, которому соответствует результирующий исходник.
Попробуй разные варианты.

Shadow Maker
20.08.2008, 14:07
Там в настройках есть выбор ассемблера, которому соответствует результирующий исходник.
Попробуй разные варианты.
Я пробовал. Все остальные вообще не знают, что есть такая команда DS и фигачут многокилометровые портянки из DB-шек. Ладно, я себе конвертор в sjasm написал в принципе уже, так что это не очень актуально в любом случае.

caro
20.08.2008, 14:13
Попробовал версию 5.2.0.908, вот результат:

segment ROM
ld hl, byte_6600
ld de, byte_6600+1
ld bc, 1FFh
ld (hl), 0
ldir
; ================================================== =
segment dat
org 6600h
byte_6600: ds 100h
Теперь всё правильно.

Интересно, что старая версия 3.75, выдаёт тоже правильный листинг, а все версии начинающиеся с 4 выдают одну и ту же ошибку.

caro
20.08.2008, 14:45
А можно мне эту версию на почту? scorp256 [at] gmail.com3.75 без проблем, она весит 730 кб. Кидать?
А 5.20 весит 68 Мбайт :)

Shadow Maker
20.08.2008, 14:47
Вообще вторую. Первую не надо, там интерфейс страшный уж больно. Вроде почта на гмайле на гигабайты исчисляется, так что места хватит.

caro
20.08.2008, 15:03
Вообще вторую. Первую не надо, там интерфейс страшный уж больно. Вроде почта на гмайле на гигабайты исчисляется, так что места хватит.Зайди сюда, и скачай сам: http://www.cracklab.ru/f/index.php?action=vthread&forum=3&topic=10622

Thenn
23.11.2008, 00:27
Случайно набрел на эту тему, и вспомнил.

В одно время я занимался "обработкой" Элиты в оной IDA Pro. Изначально в досовой версии. Все шло просто прекрасно, пока я не надумал перейти на виндовую версию. Она сконвертировала файл проекта (в старой он уже не открывался), и... Ассемблированный код перестал соответствовать исходному, игра напрочь перестала работать. Я сперва офигел. :) Потом заметил именно то, что вы тут описываете - все выражения относительно меток она стала выдавать в скобках, что приводит к совсем иным командам ассемблера.

Тогда я так и не справился с этим, и пришлось забросить дело. :( Хотя разобрано было очень немало, и многим меткам были даны нормальные понятные имена.

Поискал сейчас на винте - проект все еще сохранился. Дата - май 2005 года. Интересно, можно ли что-либо еще с этим сделать? :v2_conf2:

PS: Ах да, вспомнил. Тогда я остановился на мысли, что нужно править плагин процессора к IDA, чтоб тот выдавал нормальный асм-текст. Но до того так и не добрался.

Shadow Maker
23.11.2008, 01:24
Новую версию скачай и всё будет клёво.

Mick
03.07.2019, 11:06
Народ, у кого есть версия IDA Pro 4.5 или IDA Pro 4.6. Если не жалко, поделитесь.

marinovsoft
03.07.2019, 12:21
Это же версия 15-летней давности, все варезные ссылки давно протухли.
Есть 3.7, 4.15, 5.5 (этими я сам пользовался).
А вот что дал поиск по ftp. https://clck.ru/GtULC

krotan
03.07.2019, 13:01
Вроде как на 4pda.ru есть 7 версия...

NEO SPECTRUMAN
04.07.2019, 12:00
IDA Pro 4.5 или IDA Pro 4.6.
а чего в них есть такого чего нет в новых идах?

Mick
04.07.2019, 12:36
а чего в них есть такого чего нет в новых идах?

Только на них скрипт для проца работает. На старших версиях нет.