2012-03-22 5 views
0

C++で書かれたバイナリから正確な変数名を抽出することが可能かどうか質問したいと思いますか?バイナリから変数名を抽出しますか?

+1

これはコンパイラとプログラムのコンパイル方法によって大きく異なります。場合によっては、部分的には可能であるが、他の部分では不可能な場合もある。 –

答えて

3

あなたが運が良ければ、linux/unixにあり、EXEは削除されません。この場合、関数/メソッドの名前と静的な記憶期間を持つ変数を含むシンボルテーブルが含まれています。

objdumpreadelfを使用して、オブジェクトファイルと実行可能ファイルを検査できます。

+2

@Adban:これは特定の名前だけを取得し、すべての名前を取得しないことに注意してください。すべての名前は不可能です。 –

1

いいえ、C++ DLLまたはEXEからローカル変数の名前を抽出することはできません。このタイプの情報は、一般に、関連するPDBに格納されます。

+0

... Microsoft Visual C/C++で作成されたものです。 –

+0

コンパイラが通常のローカル名をDLL/EXEに組み込む@Alex? – JaredPar

+0

私はこの質問をしばらく調査していません。知りません。私はgccがある程度それをすると思います。私のコメントは、MSVC++によって生成された '.pdb'シンボルファイルに関するものです。私は 'PDBs 'を生産する他のコンパイラはないと思う。 –

関連する問題