Dotaz na funkcionalitu IDA
Jan Waclawek
konfera@efton.sk
Úterý Září 30 07:59:00 CEST 2008
(Teraz prisla moja velka chvila:) Ved je to predsa open source, ved viete co to znamena, vsak? :-)))))))
IDA vobec nepoznam, ale takyto tool by som si pre D52 napisal polahky parsovanim disasemblovaneho "zdrojaku" s vystupom do "riadiaceho" suboru.
wek
-----Original Message-----
Zdravím,
mám tu nìjaký binární kód z '51 rodiny a sna¾ím se vytvoøit korektní
reference na datové zóny (nìkdy ale i rozskokové tabulky a dal¹í struktury
pøímo v kódovém segmentu). Bohu¾el '51 je velmi omezený asm, prakticky
bez 16bit operací, a tak se èasto vyskytují napø. tyto sekvence kódu:
MOV RAM_32,#0x12 ; High byte of source address
MOV RAM_33,#0x80 ; Low byte of source address
MOV RAM_34,#0xC2 ; High byte of dest address
MOV RAM_35,#0x24 ; Low byte of dest address
MOV RAM_36,#0x00 ; High byte of length
MOV RAM_37,#0x80 ; Low byte of length
LCALL COPY ; Copy from ROM to XRAM
Jak asi chápete, subrutina COPY pou¾ívá adresy RAM 32-37 jako parametry pro
zadání bloku, který se má kopírovat.
Nyní jde o to, ¾e tak, jak kód vypadá, IDA samozøejmì nevytvoøí na adrese
1280 odkaz, ¾e tato adresa je pou¾ívána právì z tohoto místa, tak¾e toto místo
v ROM zùstane jako nereferencované. Nápodobnì není vyznaèena cílová adresa
v zónì externí RAM.
Existuje nìjaký trik, jak to, nejlépe hromadnì, tomu programu vysvìtlit, aby
byl schopen takto skryté reference najít ? Obvykle disassembluji z tro¹ku
lep¹ích platforem, kde jsou 16bitové a 32bitové operace samozøejmostí, tak¾e
jsem se s tímhle problémem dosud nesetkal... Je to IDA 5.
S pozdravem Pavel Troller
Další informace o konferenci Hw-list