攻防世界 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" |