objdumpコマンド
objdump:objdumpは、オブジェクトファイルまたは実行可能なオブジェクトファイルの構成を表示するために使用されるGCCツールです。objdumpコマンドは、読み取り可能な形式を使用して、バイナリファイルに含まれる可能性のある追加情報について詳しく通知します。
objdumpコマンドの使用:
objdump -t obj #输出目标文件的符号表
objdump -h obj #输出目标文件的所有段
objdump -S obj #C语言与汇编语言同时显示
objdump -f obj #显示目标文件头信息
objdump -x obj #显示目标文件的所有Header信息
readelfコマンド
readelf:readelfコマンドは、1つ以上のターゲットファイルの情報をelf形式で表示するために使用されます。この情報は、オプションで制御できます。
ELFファイル:ターゲットファイルは、システムまたはプラットフォームごとに異なる命名形式を持っています。UnixおよびX86-64 LinuxではELF(Executable and Linkable Format、ELF)と呼ばれます。ELFファイルは、プログラムの接続(プログラムの確立)に参加し、次の図に示すように、プログラムの実行(プログラムの実行)。これにより、elf形式のファイルをさまざまな角度から表示できます
。readelfコマンドの使用:
readelf -a [file] #--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I.
readelf -h [file] #--file-header 显示elf文件开始的文件头信息.
readelf -l [file] #--program-headers --segments 显示程序头(段头)信息(如果有的话)。
readelf -S [file] #--section-headers --sections 显示节头信息(如果有的话)
readelf -g [file] #--section-groups 显示节组信息(如果有的话)。
readelf -t [file] #--section-details 显示节的详细信息(-S的)。
readelf -s [file] #--syms --symbols 显示符号表段中的项(如果有的话)。
readelf -e [file] #--headers 显示全部头信息,等价于: -h -l -S -n --notes 显示note段(内核注释)的信息。
readelf -r [file] #--relocs 显示可重定位段的信息。
readelf -u [file] #--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。
readelf -d [file] #--dynamic 显示动态段的信息。
readelf -V [file] #--version-info 显示版本段的信息。
readelf -A [file] #--arch-specific 显示CPU构架信息。
readelf -D [file] #--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。
readelf -x [file] #--hex-dump= 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。
readelf -I [file] #--histogram 显示符号的时候,显示bucket list长度的柱状图。
readelf -v [file] #--version 显示readelf的版本信息。
readelf -H [file] #--help 显示readelf所支持的命令行选项。
readelf -W [file] #--wide 宽行输出