2012-05-03 9 views
1

私は少しアセンブリ/分解を学ぼうとしています。 基本的なHello World C EXE(単純な加算機能付き)を作成し、それをIDAの無料版に投げました。アセンブリとIDAの学習

私は何が起こっているのか分かります。ただ明確にする...次は何をするのですか?

var_D8= dword ptr -0D8h 
var_14= dword ptr -14h 
var_8= dword ptr -8 

3つのDWORD変数を示します。 -0D8Hとは何ですか? -14H? -8? メモリアドレス?私はちょうど15 + 1を追加しています。

私はIDAとアセンブリには初めてです。

ありがとうございました

+0

IDAはそれを把握することもできなかったので、ちょうどそれをぎこちなく宣言しました。おそらくローカル変数であるEBPからのオフセットとして使用されます。 –

答えて

3

IDAは、現在の機能のスタックを記述するための特別な構造を作成します。この構造体の場所のアドレスは、スタックアドレスにも保存されます(スタックビューウィンドウでは "r"と表示されます)。そして、この定義はそれからの単純なオフセットです。コンパイラはスタックローカル変数に保存し、スタック上の変数の表現です。このトピックの詳細については、IDA Proの本をお読みください。