手脱nSPack 3.7 方法一: 方法二:

1.   OD查壳—nSpack3.7的壳

手脱nSPack 3.7
方法一:
方法二:

2. 载入OD

      看起来很眼熟,F8一次,然后下面就可以使用ESP定律了,使用ESP定律下断点,然后F9四次

手脱nSPack 3.7
方法一:
方法二:

3.   F9四次后落到这个位置

手脱nSPack 3.7
方法一:
方法二:

接下来就是不停F8了,注意点:

①F8过程中不管是向上跳还是向下跳我们都让他实现,按照正常逻辑,向上的跳转不是应该在下面一行下断跳过去吗?起初我也是这样做的,但是程序会跑飞,具体的原因我也不知道是为什么,所以我就让他跳上去看看

②接下来F8过程中大家可能会有疑惑,因为貌似陷入了一个死循环中,代码在两个跳转中不停循环跳转,第一:我们首先可以看到的是地址框,虽然貌似两个跳转之间的反汇编代码是相同的,但是事实上我们在跳转过程中两个跳转的地址是一直在发生变化的。第二:在循环过程中,我们可以看到寄存器的变化,看起来就像是在修复什么或者是写入什么,具体的希望大神可以解释下,总之就是不停的在变化

接下来要做的就是F8等他自己跳出去

4.   循环调出来了,大家看下位置

来到这里呢可以继续F8,不要着急,马上就出去了,F8运行到retn那个位置的时候就会跳转到真正的OEP了

手脱nSPack 3.7
方法一:
方法二:

5.OK,来到OEP

手脱nSPack 3.7
方法一:
方法二:

6.   脱壳查壳运行

      再给大家介绍一种脱壳方法,也是ESP定律,这个是我在自己脱完壳后看别人的脱壳思路时候发现的,比我的要简洁的多。

手脱nSPack 3.7
方法一:
方法二:

方法二:

1.   前面查壳就不多废话了,直接载入OD了

载入后F8两次到第一个call可以使用ESP定律,F9运行三次

手脱nSPack 3.7
方法一:
方法二:

2.运行三次后的位置

看到没?F9运行三次后直接倒了我们方法一中跳出循环后上面的几行代码哪里,然后F8走下去,到retn哪里就跳到OEP了。

后面的不多说了跟第一种方法一样的。

手脱nSPack 3.7
方法一:
方法二: