例如: objdump -D -b binary -m i386 a.bin 对二进制文件进行反汇编
3. readelf 显示目标elf文件信息
-a : 显示所有信息-d : 显示Dynamic Section信息
4. nm 列出目标文件中的符号
-a : 列出所有符号,包括debugger-only的符号.
-A : 显示文件名
-g : 只显示外部符号
-C : 将低级符号解码(demangle)成用户级名字,使C++函数名具有可读性.
-D : 显示Dynamic符号
-u : 仅显示没有定义的符号
-r : 反序显示
-n : 按地址顺序显示
nm列出符号的地址,符号类型和符号名字.其中符号说明如下:
A : 绝对地址,链接时不改变.
B : 符号位于bss数据段
C : 符号为common. common symbol是未初始化数据段(参考汇编文件中.common)
D : 已初始化数据段中的符号
G : 符号位于已初始化数据段中,重要用于small data object提高访问速度.
I : 该符号是对另一个符号的间接引用
N : 该符号是一个debugging符号
R : 只读数据去符号(C语言中的const修饰)
S : 符号位于非初始化数据区,用于small object
T : 符号位于text section
U : 符号未定义
V : 该符号是一个weak object
W : 弱符号
? : 类型未定义