静态分析

__stack_check_fail中存在比较FLAG的逻辑。
按字符对FLAG进行比较,比较错误即输出“Nope.”。(学习了一下longjmp和setjmp函数)
FLAG是在eval函数中进行输入的。(不用管它:))

动态调试

直接跳进__stack_check_fail函数中,将比较逻辑设置为永远正确,输出进行比较的字符。
断点处,指令如下:

gdb脚本如下:

start
set $rip=0x555555554000+0x1290
b *0x5555555553e0
commands
  set $rdx=$rsi
  p/c $rsi
  c
end
c

成功输出flag