0

嗯,希望我能清楚地表达我的问题。

现在我有一个汇编语句字符串,如:

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 寄存器中获取数据,也许是内存地址,也许不是,这取决于寻址系统,对吗?最后,我怎样才能得到确切的地址?</p>

4

1 回答 1

1

您可以使用LEA“加载有效地址”指令吗?对不起,我对英特尔组装不太熟悉,但这就是我会尝试的。

这可能会有所帮助:http ://en.wikibooks.org/wiki/X86_Assembly/Data_Transfer#Load_Effective_Address

希望这可以帮助!

于 2012-04-28T06:52:18.130 回答