[0xe51b<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />001c] ldr r0,[r11,#-0x1c]
[0xe24bd00c] sub r13,r11,#0xc
[0xe89da800] ldmia r13,{r11,r13,pc}
[0xe1a0c00d] mov r12,r13
[0xe92ddc10] stmfd r13!,{r4,r10-r12,r14,pc}
[0xe24cb004] sub r11,r12,#4
[0xe24dd034] sub r13,r13,#0x34
[0xe59fa27c] ldr r10,0x4030e280
前面的方框里面就是这条指令的机器码,待会就用这个和物理地址中的数据比较。
第二步:
此时axd是打开mmu,cache的,不能就这样dump sdram的数据,先要通过reg窗口的cp15来把mmu,cache禁止,然后把sdram中的数据dump出来,发现一个很好玩的事情,对于linux来说,应用程序好像先用后8M(我的内存是32M),如果程序大,再顺序往前挪。通过UltraEdit来进行查找,注意字节摆放顺序。
通过这种方式,我只要知道代码的机器码,我就能找到它的物理地址,即使当中有mmu,哈哈哈,这种方式对一些特定场合的调试还是很有帮助,留下此文,以备不时只需。
文章评论(0条评论)
登录后参与讨论