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