0%

no-strings-attached

攻防世界 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查看内存 (biancheng.net)

GDB Command Reference - x command (visualgdb.com)

1
x/200wx $eax

运行如下脚本即得flag

1
2
3
key = "393434377b796f755f6172655f616e5f696e7465726e6174696f6e616c5f6d7973746572797d"
flag = bytes.fromhex(key)
print(flag)