攻防世界 no-strings-attached
32位文件,用ida打开后可以ctrl+f找到main函数,其中authenticate中包含加密函数


查找authenticate的汇编指令,我们注意到,加密函数的运算结果被保留到eax寄存器中

可以使用动态调试的方法
首先运行gdb
1 | gdb ./no-strings-attached |

然后在decrypt函数前下断点
1 | b decrypt |

运行程序
1 | r |

运行一步
1 | n |

按照之前的分析,此时运行结果已经存到eax寄存器中,所以我们要做的就是读取eax寄存器中的值,关于命令的解释参考如下
GDB Command Reference - x command (visualgdb.com)
1 | x/200wx $eax |

运行如下脚本即得flag
1 | key = "393434377b796f755f6172655f616e5f696e7465726e6174696f6e616c5f6d7973746572797d" |
