変数の値を出力するプログラムがあるとします。その変数を「i」とします。バイナリファイルは '.exe'形式です。 'i'の値を決定する方法と、特定の値が '.exe'形式の変数 'i'の値であることを理解していますか?exeファイルから変数の値を調べる
1
A
答えて
4
変数がローカルかグローバルかによって異なります。グローバルならば、適切なツールを使うのは簡単です(私はLinuxを使って以来、特別なものはお勧めできません)。シンボルテーブルでシンボル "i"の位置を見つけるだけで、と表示されます。ここで、 'i'はです。その値に含まれている値を知りたい場合は、の最初のの値を実行時に表示することはできません(プログラムの実行イメージではなく、exeファイルを参照しているためです)。初期化されていない場合は、初期値がわかりません。さもなければ、その初期値が値の場所の横にあるツール(おそらくは16進数で表示されるので、デコードする必要があるでしょう)に表示されます。
変数がローカルの場合、それは別の話です。プログラムのコンパイル時にローカル変数名が失われるため、変数には名前はありません。その関数が実行されている間は、(おそらく)スタック上の位置を占めるだけです。たとえば、最初の変数は、多くの場合、-8(%ebp)
にあり、2番目の変数は-12(%ebp)
など(-4(%ebp)
および0(%ebp)
は特別)です。したがって、exeのアセンブリコードを調べている場合は、-8(%ebp)
が関数内の最初のローカル変数を参照する可能性があります。繰り返しますが、静的にexeを見ているので、どのような価値があるかを知ることはできません。これは、どのコンパイラが使用されたか、どの最適化レベルに設定されたかによって異なります。
ご迷惑をおかけして申し訳ございません。あなたがアセンブリコードとシンボルテーブルを表示するいくつかの逆コンパイルツールにアクセスしていると仮定しています。
関連する問題
- 1. firebug/devtools:サードパーティサイトの変数の値を調べますか?
- 2. 変数が値を変更するかどうかを調べる
- 3. ASP.NETディレクトリのファイル数を調べる
- 4. ペリカンの変数を調べるには
- 5. 数値がfloat64であるかどうかを調べる
- 6. 複数のSWFファイルを単一のEXEファイルに変換する
- 7. トリムJmeter変数値を調整する
- 8. XNA 4.0の外部ファイルから変数値を変更する
- 9. .exeインストーラから特定のexeファイルを実行する方法
- 10. gitで1つのコミットから別のコミットに変更されたファイルの数を調べるには
- 11. haskellのバイナリツリー内の変数の出現数を調べる
- 12. JavaScriptのexeから返される値
- 13. javascript 1つの数値が別の数値の倍数であるかどうかを調べる方法
- 14. exeファイルのフルパスからInnosetupスクリプトのexeファイル名を取得する方法は?
- 15. VB2010数値が整数であるかどうかを調べるには
- 16. ASP.netプロジェクトから.exeファイルへ
- 17. 文字列からスラッシュの出現数を調べる方法
- 18. System.IO.Streamオブジェクトからファイル拡張子を調べる
- 19. 一貫性のために一連の数値を調べる
- 20. arrayList内の整数値の範囲(間隔)を調べる
- 21. カラムのデフォルト値を調べる(Oracle)
- 22. 2つの値を調べる
- 23. 戻り値の型を調べる
- 24. シンボリックパスの値を調べるには
- 25. 複数の式を評価してPHPの数値変数の範囲を調べる
- 26. Windows 7の変更点を調べるファイル
- 27. 複数のexeファイルから実行ファイルを作成するには?
- 28. 複数の値が配列内にあるかどうかを調べる
- 29. Mathematica:リスト内のすべての整数が数値より小さいかどうかを調べる
- 30. Pythonでドライブ上のファイル数を調べる方法は?
ゲーマー向けの特別なツールがあります。基本的に、他のプロセスのグローバル変数を監視して変更することができます。 – ruslik
@ruslikしかし、通常は特定のゲーム用です。私はあなたがプログラム内の値を検索し、それらを修正することを可能にするいくつかの一般的なプログラムを見てきました:[Cheat-o-matic](http://www.freewarereview.info/2007-01/cheat-o-matic_-manipulate_almost_any_computer_video_game_with_memory_scanning_.html )と[Poke](http://codefromthe70s.org/poke.aspx)がありますが、どちらもWindows用です。 – mgiuca
@mgiucaあなたが言ったことは大丈夫です。しかし、GDBが実行可能ファイルからローカル変数名を取得するのはどうですか? –