静态分析

先使用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。