PDA

Просмотр полной версии : Ida pro и страничная организация памяти



jerri
01.10.2012, 23:05
Решил вот декомпелить игру 128
как обьяснить IDA наличие страниц?

goblinish
01.10.2012, 23:29
Решил вот декомпелить игру 128
как обьяснить IDA наличие страниц?

вряд ли удастся, у IDA ссылка на Zilog Assembler. так что вряд ли страницы поддерживаются.

esl
02.10.2012, 11:12
надо ручками сделать нужные сегменты
и самому туда код/данные перенести
а потом на них можно ссылаться

jerri
02.10.2012, 11:19
esl, так так а как?
у меня ида 4.5

goblinish
02.10.2012, 11:53
esl, так так а как?
у меня ида 4.5

Справка говорит, что Edit->Segments...

jerri
02.10.2012, 12:10
goblinish, я пытался только нифига не понял, там можно как то задавать чтобы адрес оставаясь 16битным вел куда то дальше?

goblinish
02.10.2012, 12:20
там можно как то задавать чтобы адрес оставаясь 16битным вел куда то дальше?
5.2 подавилась на подобной попытке...

esl
02.10.2012, 14:40
jerri, давай свой бинарник и опиши что где должно лежать
попробую посмотреть и сделать
в идеале бы набор файлов вида
segment0-00003fff
segment0-40007fff
segment1-40007fff
segment2-40007fff
ну тоесть где они в памяти лежат

p.s. ида61

jerri
02.10.2012, 17:15
Это не под спек это под ГБ
оно понимает
там с 0-8000 ром 0

с 8000 до 10000 рам

и страницы с 2 по 15 подключаются с #4000

esl
02.10.2012, 17:47
попробуй для так а там смотреть будем

File->Open
00.cut

Processor -> Z80 : gb
[ok]

(Dissasembly memory organization)
clear ROM
set RAM

(я обычно так делаю, чтоб не возится с отдельным сегментом RAM)

RamStart : 0x00000
RamSize : 0x10000

получаем сегмент RAM: в котором с 0:7fff идет код рома
а дальше рам

(тут можно отдельно загрузить кусок 0:3fff)
а 4000:7fff в отдельный сегмент, но эт как удомно будет

далее для всех
Load File -> Additiona Binary File
02.cut
Loading offset : 0x4000
[ok]
дальше можно переименовть сегменты в нужный Alt+S (Edit-Segments-Edit Segment) находясь на нужном сегменте

и так далее


дальше в коде, если на OFFSET нажать Alt+R можно сослаться на нужныц сегмент

в обчем как-то так,
правда я с кучей сегментов дела не имел, обычно одного хватало

jerri
02.10.2012, 18:22
esl, то что надо :)
работает и в 4.5
а есть способ автоматизировать процесс раздачи оффсетов?

goblinish
02.10.2012, 18:48
а есть способ автоматизировать процесс раздачи оффсетов?

наверное, изучать скриптинг для иды.

jerri
02.10.2012, 21:17
:v2_conf2:

esl
02.10.2012, 23:41
esl, то что надо :)
работает и в 4.5
а есть способ автоматизировать процесс раздачи оффсетов?

не понял вопроса :(

jerri
03.10.2012, 00:19
4.5 постоянно теряет сегменты :(
чо делать?

esl
03.10.2012, 00:56
опять же не очень понял
в 6.1 надо только offset указывать
можно взять тут http://rutracker.org/forum/viewtopic.php?t=3651872

jerri
26.06.2017, 08:37
Граждане, существует ли модуль для IDA для разгребания Sega Master System Ромов?
а если нет есть кто желающий, кто возьмется его собрать?

jerri
03.08.2018, 20:49
снова вопрос по IDA
как для mos6502 задавать в ida ссылки

т.е
есть такой код
ldx #55
ldy #b5

по факту
#b555 это указатель на массив

как это иде обьяснить?

Shiny
04.08.2018, 05:07
а никак. Задай для адреса метку LB555

jerri
06.08.2018, 10:36
а никак. Задай для адреса метку LB555

ну так задано же
а теперь мне надо чтобы

ldx >LB555
ldy <LB555

Shiny
06.08.2018, 11:12
а IDA понимает такие выражения? у меня 5.9 работает через задницу.

Screw
06.08.2018, 13:30
снова вопрос по IDA
как для mos6502 задавать в ida ссылки

т.е
есть такой код
ldx #55
ldy #b5

по факту
#b555 это указатель на массив

как это иде обьяснить?

Edit -> Operand Type -> Offset -> Offset (user defined).
Далее LOW8 / HIGH8
http://omegahg.com/temp/lohioff.png

jerri
06.08.2018, 21:44
Screw, далее рисует красным и ссылку на структуру не создает

- - - Добавлено - - -

ага разобрался
в поле target adress нужно указать этот самый адрес