0%

GDB 的使用

Step0 References

GNU cheetsheet

x86-64寄存器(注意每个寄存器的作用)

P1

x86-64 ISA

Step1 GDB初体验

下载课程官网的示例文件并阅读ppt中的指导上手gdb。

act1、2较为简单不再赘述。

act3操作演示

image-20220226144710793

disas main反汇编main函数 寻找compare函数的位置。由0x4016af地址的cmp指令得知返回值存储在eax中

disas compare反汇编compare函数 break compare设置断点 并stepi单步调试,print /x $rbx打印每一步的rbxIHhyMS6Xpqv7eEk

易知两参数相加再加5应该等于15213。选择这样的两个参数即可。

Tips

使用objdump反汇编单个函数 objdump -d main.out | awk -v RS= '/^[[:xdigit:]]+ <FUNCTION>/'

e.g. objdump -d main.out | awk -v RS= '/^[[:xdigit:]]+ <myfunc>/'