Linux下的反汇编指令主要依赖于所使用的反汇编工具。其中,最常用的反汇编工具是objdump
和ndisasm
。以下是一些常见的反汇编指令:
查看文件头信息:
objdump -h 文件名
显示符号表:
objdump -t 文件名
显示重定位信息:
objdump -r 文件名
反汇编整个文件:
objdump -d 文件名
反汇编特定段:
objdump -d -j 段名 文件名
显示指令及其机器码:
objdump -D 文件名
显示符号的反汇编代码:
objdump -s -j 符号名 文件名
显示特定地址范围的指令:
objdump -d -s -j 符号名 --start-address=起始地址 --stop-address=结束地址 文件名
ndisasm
是NASM汇编器附带的一个反汇编工具,主要用于反汇编二进制文件。
反汇编整个文件:
ndisasm -b 位数 文件名
其中,位数
可以是16、32或64,表示反汇编的目标架构。
反汇编特定地址范围:
ndisasm -b 位数 -o 起始地址 文件名
显示指令及其机器码:
ndisasm -b 位数 -o 起始地址 文件名 | less
查看文件的ELF头信息:
readelf -h 文件名
查看文件的程序头表:
readelf -l 文件名
查看文件的节头表:
readelf -S 文件名
查看文件的符号表:
readelf -s 文件名
查看文件的字符串表:
readelf -s 文件名 | grep NEEDED
请注意,这些命令的输出可能会因文件类型和架构的不同而有所差异。在使用这些命令时,请确保您了解它们的作用以及如何解释输出结果。