Просмотр полной версии : 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?
Вот как в мешке вместо 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)", что неправильно. Можно вручную прописать, но напрягает.
А вот еще вопрос.
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
... он мне все равно пишет 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. А то такое ни один ассемблер не понимает, а редактировать утомляет.
Ну да, именно разный. Что меня и добивает.
Версия 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 написал в принципе уже, так что это не очень актуально в любом случае.
Попробовал версию 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 выдают одну и ту же ошибку.
А можно мне эту версию на почту? scorp256 [at] gmail.com3.75 без проблем, она весит 730 кб. Кидать?
А 5.20 весит 68 Мбайт :)
Shadow Maker
20.08.2008, 14:47
Вообще вторую. Первую не надо, там интерфейс страшный уж больно. Вроде почта на гмайле на гигабайты исчисляется, так что места хватит.
Вообще вторую. Первую не надо, там интерфейс страшный уж больно. Вроде почта на гмайле на гигабайты исчисляется, так что места хватит.Зайди сюда, и скачай сам: http://www.cracklab.ru/f/index.php?action=vthread&forum=3&topic=10622
Случайно набрел на эту тему, и вспомнил.
В одно время я занимался "обработкой" Элиты в оной IDA Pro. Изначально в досовой версии. Все шло просто прекрасно, пока я не надумал перейти на виндовую версию. Она сконвертировала файл проекта (в старой он уже не открывался), и... Ассемблированный код перестал соответствовать исходному, игра напрочь перестала работать. Я сперва офигел. :) Потом заметил именно то, что вы тут описываете - все выражения относительно меток она стала выдавать в скобках, что приводит к совсем иным командам ассемблера.
Тогда я так и не справился с этим, и пришлось забросить дело. :( Хотя разобрано было очень немало, и многим меткам были даны нормальные понятные имена.
Поискал сейчас на винте - проект все еще сохранился. Дата - май 2005 года. Интересно, можно ли что-либо еще с этим сделать? :v2_conf2:
PS: Ах да, вспомнил. Тогда я остановился на мысли, что нужно править плагин процессора к IDA, чтоб тот выдавал нормальный асм-текст. Но до того так и не добрался.
Shadow Maker
23.11.2008, 01:24
Новую версию скачай и всё будет клёво.
Народ, у кого есть версия 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
Вроде как на 4pda.ru есть 7 версия...
NEO SPECTRUMAN
04.07.2019, 12:00
IDA Pro 4.5 или IDA Pro 4.6.
а чего в них есть такого чего нет в новых идах?
а чего в них есть такого чего нет в новых идах?
Только на них скрипт для проца работает. На старших версиях нет.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot