实验吧haha.exe(逆向题)的解题思路

最近在学逆向,刚好碰到一道题,写一下思路。

题目地址:

http://ctf5.shiyanbar.com/reverse/520windows3/qudong.rar

题目说明:

实验吧haha.exe(逆向题)的解题思路


运行后提示

实验吧haha.exe(逆向题)的解题思路

 

按流程来,先拉进IDA里按F5看看:

 实验吧haha.exe(逆向题)的解题思路

原来Key是通过CMD参数给出。

然后是这个,很显眼的反调试:

 实验吧haha.exe(逆向题)的解题思路

先干掉他:

 实验吧haha.exe(逆向题)的解题思路

改成无论如何都继续程序而不退出:

 实验吧haha.exe(逆向题)的解题思路

 

保存

 实验吧haha.exe(逆向题)的解题思路

 

继续分析知:

 

1. 关键验证在这里:

 实验吧haha.exe(逆向题)的解题思路

比对两个数组,不等就:

 实验吧haha.exe(逆向题)的解题思路

 

2. 输入的Key会经过好几个函数的加密

 实验吧haha.exe(逆向题)的解题思路

    实验吧haha.exe(逆向题)的解题思路

 

看起来静态分析代码再手动写解密程序是不可能了,只能动态调试看看关键地方

 实验吧haha.exe(逆向题)的解题思路

里的v16和v86是何方神圣了。(其实前面的反调试已经暗示了这道题要用动态调试)

 实验吧haha.exe(逆向题)的解题思路

在上面提到的关键比较处下断点,然后选择调试器,设置了几个不同的参数开始调试。发现:

3.   v16是静态的,v86根据输入key不同而改变

 实验吧haha.exe(逆向题)的解题思路

 

所以,就去看看v16所在地址是什么呗:

 实验吧haha.exe(逆向题)的解题思路

看来不是明文,先拿去解密网站试试:www.cmd5.com

 实验吧haha.exe(逆向题)的解题思路

 


 

结果没报错,所以key就是hello

 实验吧haha.exe(逆向题)的解题思路