方法一:
1. OD查壳—nSpack3.7的壳
2. 载入OD
看起来很眼熟,F8一次,然后下面就可以使用ESP定律了,使用ESP定律下断点,然后F9四次
3. F9四次后落到这个位置
接下来就是不停F8了,注意点:
①F8过程中不管是向上跳还是向下跳我们都让他实现,按照正常逻辑,向上的跳转不是应该在下面一行下断跳过去吗?起初我也是这样做的,但是程序会跑飞,具体的原因我也不知道是为什么,所以我就让他跳上去看看
②接下来F8过程中大家可能会有疑惑,因为貌似陷入了一个死循环中,代码在两个跳转中不停循环跳转,第一:我们首先可以看到的是地址框,虽然貌似两个跳转之间的反汇编代码是相同的,但是事实上我们在跳转过程中两个跳转的地址是一直在发生变化的。第二:在循环过程中,我们可以看到寄存器的变化,看起来就像是在修复什么或者是写入什么,具体的希望大神可以解释下,总之就是不停的在变化
接下来要做的就是F8等他自己跳出去
4. 循环调出来了,大家看下位置
来到这里呢可以继续F8,不要着急,马上就出去了,F8运行到retn那个位置的时候就会跳转到真正的OEP了
5.OK,来到OEP
6. 脱壳查壳运行
再给大家介绍一种脱壳方法,也是ESP定律,这个是我在自己脱完壳后看别人的脱壳思路时候发现的,比我的要简洁的多。
方法二:
1. 前面查壳就不多废话了,直接载入OD了
载入后F8两次到第一个call可以使用ESP定律,F9运行三次
2.运行三次后的位置
看到没?F9运行三次后直接倒了我们方法一中跳出循环后上面的几行代码哪里,然后F8走下去,到retn哪里就跳到OEP了。
后面的不多说了跟第一种方法一样的。