附件是可执行文件,拖入IDA中分析。
查看main
函数
一共四个函数,挨个进入查看,发现只有authenticate()
函数中有有用的信息。
由上图第10-13行可知,s2中存放着flag,而s2中存放着decrypt()
函数的返回值。
再查看汇编代码
可以看出,再调用decrypt
函数之后,返回的结果存在了eax寄存器中。
接下来使用gdb
调试,先将断点打到call derypt
处
然后执行到此断点,再单步执行一次
此时查看eax寄存器内容
6:显示6行数据
s:字符串形式
w:word(4字节)形式
得到flag