静态分析
先使用IDA进行静态分析。
查看main函数。
对我们输入字符进行比较,根据提示应输入42,然后就没有后续了。
看看其他函数。
这个函数sub_1165很明显是输出flag的函数。并且这个函数需要一个输入参数,那就是42了。
动态调试
使用start
命令,程序会自动断在main() 主函数的起始位置。
使用info proc mappings
查看程序基址。
使用set $rip=0x555555554000+0x1165
将程序跳转到函数。
这里的0x1165
由IDA中函数名sub_1165
得到。
使用x/50i $rip
查看函数指令,
使用b *0x555555555227
在puts函数处设置断点。
使用set $rdi=42
设置函数的参数。
c
继续执行函数。
查看到flag。