2017-06-12 14 views
0

ccコンパイラでコンパイルされたexcutableのヘッダ部分を16進数で表示するunixコマンドを探しています。 私はこれを一度も持っていましたが、今はそれを覚えていません。 コンパイルコードがコンパイルされているプログラムの先頭にあるのを確認したいだけですUNIX:C:ccコンパイラ。コマンドライン:バイナリファイルヘッダを画面上に表示するには

私は 'hexdump [filename]'を使うことができますが、ヘッダー部分は分離しないことに気付いています。 私は十分に自分自身を説明してくれたと思います.....

+0

[Linuxのバイナリ解析](http://amzn.to/2scWuIv)ライアン「elfmaster」でオニールは、UNIX、Linux、および同様のオペレーティング・システムで使用されるELFバイナリ形式の複雑さのすべてを説明しています。 – FKEinternet

答えて

2

コマンドreadelfは、ほとんどのLinuxシステムで利用でき、ELFファイルの多くの部分を表示する機能があります。 readelf -Hを使用すると、さまざまなオプションの概要を知ることができます。

ファイルヘッダーだけを取得するには、readelf -hまたはreadelf --fileheaderを使用してファイルヘッダーを表示します。

16進数で表示するには、コマンドxxdを使用します。 elfヘッダーが(64ビットマシン上で)64バイトである場合、xxd -l 64

+0

美しいですよ – CJunk

0

オブジェクトファイルに関する完全な情報を提供するために、Objdumpコマンドを使用します。このコマンドは、主にコンパイラで作業するプログラマが使用しますが、デバッグの際にも通常のプログラマにとっては非常に便利なツールです。この記事では、いくつかの例を通してobjdumpコマンドを使用する方法を理解します。 objdumpのの

基本的な構文は次のとおりです。

objdump [options] objfile... 

このコマンドで使用可能なオプションの広い範囲があります。

たとえば、階乗は私がコンパイルしなければならないcプログラムです。

次の例では、オブジェクトファイルフォーマット特定情報を出力 -pオプションを使用して

1.Displayオブジェクトフォーマット固有のファイルヘッダの内容。

$ objdump -p factorial 
  • オブジェクト・ファイル内のすべてのヘッダに関連する情報は、-xオプションを使用して取得することができる-xオプション
  • を使用して、すべてのヘッダの内容を表示。

    objdump -x factorial 
    
    関連する問題