-2

コンパイルされたプログラムの 32 ビット バージョンで何かがどのように見えるかを (アセンブリ コードを見て) 知っている場合、64 ビット バージョンのプログラムで同じことが実行されている 64 ビット命令を見つけるにはどうすればよいでしょうか (これは 64 ビットであることに加えて、それ以外は同じで、追加機能はありません)

人々は、答えのために以下にあるマニュアルをどうにかして学ぶことを提案しました: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

しかし問題は、彼らが何をほのめかしているのか見当がつかないことです.誰かがこれがどのように見えるかを示すことができる例/サンプルはありますか?

基本的に、プログラムの 32 ビット バージョンから一連の行を取得し、それらを手動で 64 ビット コードに「変換」して、64 ビット バージョンで対応するセクションを見つけることができますか?

4

1 に答える 1

1

それらを「翻訳」したとしても、1 対 1 の対応を見つけることはまずありません。x64 には、追加のレジスタ、追加のアドレッシング スキーム、さまざまな構造とデータ サイズ、制限を課すアライメント要件があります。コンパイラによって実行される最適化に加えて、あなたが提案したことを実行できる可能性はほとんどありません。

call近くの命令を見つけて、それらのターゲットまたは一意の (またはまれな) 定数によって識別することで、ヒントを得ることができます。

そうは言っても、正確には何を達成しようとしているのか、また解決しようとしている問題は何なのか?

于 2013-05-20T06:16:46.703 に答える