在Linux环境下进行反汇编时,常用的指令主要包括以下几类:
objdump
objdump -d <binary>:反汇编整个二进制文件。objdump -d <binary> --start-address=<addr>:从指定地址开始反汇编。objdump -d <binary> --stop-address=<addr>:到指定地址结束反汇编。objdump -d <binary> --section=<section>:反汇编指定节。ndisasm
ndisasm -b 32 <binary>:以32位模式反汇编二进制文件。ndisasm -b 64 <binary>:以64位模式反汇编二进制文件。radare2
r2 <binary>:启动Radare2并加载二进制文件。pdf:反汇编当前函数。pd 0x<addr>:反汇编指定地址处的代码。s main:跳转到main函数开始反汇编。Ghidra
objdump -M intel -d <binary>:使用Intel语法反汇编。objdump -M att -d <binary>:使用AT&T语法反汇编。objdump -D -m arm <binary>:反汇编ARM架构的二进制文件。arm-none-eabi-objdump -D -m arm <binary>:针对嵌入式ARM平台的反汇编。objdump -D -m mips <binary>:反汇编MIPS架构的二进制文件。查看符号表:
nm <binary>:显示二进制文件中的符号表。objdump -t <binary>:显示详细的符号信息。查看重定位表:
objdump -r <binary>:显示重定位条目。查看字符串表:
strings <binary>:提取并显示二进制文件中的可打印字符串。总之,objdump和ndisasm是最常用的命令行反汇编工具,而radare2和Ghidra则提供了更为丰富和直观的图形界面及功能。根据具体需求选择合适的工具进行操作。