【reversing.kr逆向之旅】Twist1的writeup

将程序载入OllyDbg

【reversing.kr逆向之旅】Twist1的writeup

直接F8单步的话会直接停止运行     我们先可以单步一次使用ESP定律

【reversing.kr逆向之旅】Twist1的writeup    

【reversing.kr逆向之旅】Twist1的writeup

接着单步一步一步走就可以     遇到向上的跳转    在他的下一行按F4就可以走到这里

如下图所示    将要跳向OEP

【reversing.kr逆向之旅】Twist1的writeup

【reversing.kr逆向之旅】Twist1的writeup

来到OEP后   

直接右键OllyDump脱壳  两种方式都保存下    发现方式二可以成功运行

空白区域右键-->中文搜索引擎   我们可以看到关键字符串  那个je跳转貌似很不简单   

【reversing.kr逆向之旅】Twist1的writeup

【reversing.kr逆向之旅】Twist1的writeup

我们先不用管

接着单步

发现每次走到这里  F8的话   程序就会停止运行 

【reversing.kr逆向之旅】Twist1的writeup

重新载入  运行到这里的时候   我们右键跟随   将着只要一单步就崩溃   

百度了一下SetUnhandledExceptionFilter

说是用来设置异常捕获函数   猜测可能就是这个的原因了    

【reversing.kr逆向之旅】Twist1的writeup
 

解决办法  我是直接在下边设置EIP来跳过这部分代码的执行   从而避免遇到异常

【reversing.kr逆向之旅】Twist1的writeup

接着F8走过好几个nop  还有三个call    第三个call是用来获取我们的输入

输入iqiqiya回车   在单步几个nop   来到这里

【reversing.kr逆向之旅】Twist1的writeup

可以看到关键就是401240这个call

我们还是右键跟随

【reversing.kr逆向之旅】Twist1的writeup

接下来走到jmp

【reversing.kr逆向之旅】Twist1的writeup