现在我有一个汇编语句字符串,如:
movss ****,xmm0; (intel style)
执行此汇编语句后,进程内存的一部分发生了变化。
所以****
必须是内存地址,它可能是这样的:
DWORD PTR [eax],
DWORD PTR [eax + 0x4],
DWORD PTR [ebp - 0x4]
...Some style i have not seen, if you know that, please do tell me.
我的问题是如何通过分析汇编语句字符串以编程方式获取内存地址。
例如:
如果****
为:
DWORD PTR [eax]
也许我可以搜索字符串,找到EAX寄存器,然后从EAX寄存器中获取数据,也许它是内存地址,也许不是,它取决于寻址系统,我是对的吗?最后,我怎么能得到确切的地址?
答案 0 :(得分:1)
您是否可以使用LEA
“加载有效地址”指令?对不起,我对英特尔组装不太熟悉,但这就是我想要的。
这可能有所帮助:http://en.wikibooks.org/wiki/X86_Assembly/Data_Transfer#Load_Effective_Address
希望这有帮助!