Step0 References
x86-64寄存器(注意每个寄存器的作用)
Step1 GDB初体验
act1、2较为简单不再赘述。
act3操作演示
disas main
反汇编main函数 寻找compare函数的位置。由0x4016af地址的cmp指令得知返回值存储在eax中
disas compare
反汇编compare函数 break compare
设置断点 并stepi
单步调试,print /x $rbx
打印每一步的rbx
易知两参数相加再加5应该等于15213。选择这样的两个参数即可。
Tips
使用objdump反汇编单个函数 objdump -d main.out | awk -v RS= '/^[[:xdigit:]]+ <FUNCTION>/'
e.g. objdump -d main.out | awk -v RS= '/^[[:xdigit:]]+ <myfunc>/'