Assembly 如何通过OllyDbg查看位于DS段中的值
我正在通过OllyDbg调试一个DLL,发现以下命令:Assembly 如何通过OllyDbg查看位于DS段中的值,assembly,x86,reverse-engineering,ollydbg,Assembly,X86,Reverse Engineering,Ollydbg,我正在通过OllyDbg调试一个DLL,发现以下命令: LEA ECX,DWORD PTR DS:[ECX+EDX+8771F681] ECX是90C85FFF和EDX是13F5A9CE,因此最终地址是0x90C85FFF+0x13F5A9CE+0x8771F681=0x12C30004E。不幸的是,我不知道如何查看位于此地址的值。FPU窗口中的Ctrl-G表示“指定地址上没有内存” 提前感谢。请记住,LEA可用于任何计算,而不仅仅是地址(计算的实际结果永远不会被访问/取消引用)。此外,段替代
LEA ECX,DWORD PTR DS:[ECX+EDX+8771F681]
ECX
是90C85FFF
和EDX
是13F5A9CE
,因此最终地址是0x90C85FFF+0x13F5A9CE+0x8771F681=0x12C30004E
。不幸的是,我不知道如何查看位于此地址的值。FPU窗口中的Ctrl-G表示“指定地址上没有内存”
提前感谢。请记住,
LEA
可用于任何计算,而不仅仅是地址(计算的实际结果永远不会被访问/取消引用)。此外,段替代对计算没有影响
- ecx=0x402000;ebx=0x20;FS段前缀覆盖(FS基=0x7FFDD000)
- mov-ecx,[ecx+ebx-4]result=ecx=0x40201c
Address=XXXX
行表示计算结果(在实际执行指令之前)。如果右键单击此行,您可能会看到一个弹出窗口:
- 如果地址映射到进程地址空间,则您将在弹出菜单上看到一个
条目跟随转储
- 如果地址未映射,则弹出菜单不会显示
条目后续转储
<>注释:OllyDbg(至少V2)将考虑映射的内核地址映射,尽管它们显然不能从用户字段访问。因此,如果MSB被设置在一个地址中,只考虑它没有映射。注意,你有一个环绕,32位截断的地址只是<代码> 2C3000 04E < /代码>。也许你会有更好的运气……或者你的有效地址计算。顺便说一句:如果DS不指向线性内存,那么DS寄存器的值在这种情况下对你没有帮助。@Jester谢谢你的回答,但无论如何也没有帮助——地址仍然无法计算find@Martin罗森诺你能给我更多的信息吗,请