2016-11-14 2 views
-1

GDB GCCデバッガで実行したときに見えない埋め込みCコードのバイナリファイルが与えられました。私は、Cコードがコンパイル/バイナリコードの形成によって隠されていたと思います。私が試してみました次:GDBデバッガを使って隠しコードを表示

のgdb>ファイルのmyFile のgdb>メインリスト

私が手出力は次のようになります。

myFile.c:そのようなファイルやディレクトリは

私はそこにある知っていますこのバイナリファイルにCで書かれたコード。実行ファイルの実行私は./myFile

を入力すると、これは、このような状況のために必要とされているように私は、32ビットのライブラリをインストールしていると私はすべてのヘルプは高く評価されてのUbuntu 16.04

を実行していますよ。

+0

元のソースコードはバイナリに埋め込まれていません。どこかでソースツリーのコピーが必要で、それを見るにはGDBをポイントしてください。つまり、もしあなたがソースコードをまだ持っていなければ、GDBが魔法のようにあなたのためにそれを生成できるとは思わないでしょう。 – kaylum

+0

ありがとうございます。私はソースツリーのコピーを知りません。これを見つける方法はありますか?私はそれに精通していないが、私は今それを研究するだろう。 –

+0

ソースコードの作成者は、それを利用できるようにしなければなりません。これは誰でもあなたのために利用可能な情報で答えることができる質問ではありません。 – kaylum

答えて

0

コンパイルの問題である可能性があります。あなたは"-g"オプションなしでコンパイルした場合

$ gcc -g myFile.c -o myFile 
$ gdb myFile 
(gdb) list main 

をデバッグするためのoptionを探してみてください、デバッガはCコードだけアセンブリコード番目をお見せすることはありません。これらのコマンドを実行した場合

あなたの場合

、あなたはその後、ショーの逆アセンブリコードのエントリポイント

Entry point: 0x(address) 

のアドレスを取る逆アセンブルコード

(gdb) info file 

が表示されます

(gdb) break 0x(address) 
(gdb) run 

ブレークポイントがキャッチされたとき

(gdb) x/20i $pc 
関連する問題