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「実効アドレスのロード」命令を使用することはできますか? 申し訳ありませんが、私は Intel アセンブリにあまり詳しくありませんが、それを試してみます。

これが役立つかもしれません: http://en.wikibooks.org/wiki/X86_Assembly/Data_Transfer#Load_Effective_Address

お役に立てれば!

于 2012-04-28T06:52:18.130 に答える