Bugku_逆向_Love

  

https://ctf.bugku.com/challenges爱   

下载文件后运行一下看看
 Bugku_逆向_Love”> <br/>随便输入123个看看<br/> <img src=

  

没有什么头绪,右键选择中文搜索引擎→3。智能搜索
 Bugku_逆向_Love”> <br/>其中有几条很眼熟<br/> <img src=

  

这不就是我们输入字符串后提示的字符串吗,点进去看看

  

 Bugku_逆向_Love”> <br/>可以看到1035840处有一个跳转,根据1035842压栈的字符串来推断,1035847调用的函数是类似于printf的函数,也就是说1035840处的跳转决定了输出的是“错误旗帜”还是“国旗”,我们继续向上看,寻找是什么控制关键跳转的执行。很明显,在103582 e处调用了strncmp函数,而在其上,压入了一个奇怪的字符串进栈,根据开头猜的程序功能,要么,这就是程序想要我们输入的字符串。要么,是把我们输入的字符串加密后对比的字符串。而strncmp的结果就决定了关键跳转的执行与否。我们在strncmp处下一个断点,运行程序,输入1234567890。<br/> <img src=

  

运行到断点后,查看ebp-0xac附近的内存空间,发现了一段base64代码
 Bugku_逆向_Love

  

也就是我们输入的字符串

  

分析这段加密代码
 Bugku_逆向_Love

  

然后通过这段汇编代码和被对比字符串“e3nifIH9b_C@n@dH”来构造python脚本
 Bugku_逆向_Love”> <br/>得到国旗<br/> <img src=


结束

Bugku_逆向_Love