在Ubuntu系统中,进行反汇编的常用指令主要依赖于objdump和gdb这两个工具。以下是一些常用的反汇编指令:
objdump基本反汇编
objdump -d <binary_file>
这条命令会显示二进制文件中的所有反汇编代码。
指定地址范围反汇编
objdump -d -s -j .text <binary_file> | grep -A 10 "0x<start_address>:"
这条命令会显示从指定地址开始的一段反汇编代码。
查看符号表
objdump -t <binary_file>
这条命令会列出二进制文件中的所有符号及其地址。
查看重定位表
objdump -r <binary_file>
这条命令会显示二进制文件中的重定位信息。
查看特定段的反汇编
objdump -d -j .data <binary_file>
这条命令会显示.data段中的反汇编代码。
gdb启动GDB并加载程序
gdb <binary_file>
反汇编指定函数
disassemble <function_name>
或者
disassemble <start_address>, <end_address>
查看当前函数的汇编代码
disassemble
设置断点并运行程序
break <function_name>
run
单步执行
stepi
或者
nexti
查看寄存器值
info registers
查看内存内容
x/10xw <address>
这条命令会显示从指定地址开始的10个字(word)的内存内容。
查看字符串
objdump -s -j .rodata <binary_file> | grep -i "string_to_find"
这条命令会在.rodata段中查找指定的字符串。
通过结合使用objdump和gdb,你可以获得关于二进制文件的丰富信息,包括反汇编代码、符号表、重定位表等。