如何根据程序集语句以编程方式获取内存空间中的确切地址

时间:2012-04-28 06:22:26

标签: linux assembly x86

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

希望这有帮助!