Jian丶ylt 发表于 2015-10-11 19:27

【手脱nSpack3.7图文教程】

本帖最后由 Sound 于 2015-10-11 19:39 编辑

声明:
    1.本教程中使用的例子为:http://www.52pojie.cn/thread-10688-1-1.html吾爱脱壳练习第三课中的例子,一个比较简单的压缩壳,大家也可以自己试试,选这个例子进行脱壳联系是因为在脱壳前我就已经知道OEP的位置了,这样子有助于提高我的脱壳能力,我可以通过对比来确定我是否找到了正确的OEP位置,在这里感谢吾爱的各位大神对我们的帮助
    2.方法一为本人自己脱了好半天才脱掉的方法,方法二为上面链接里别人的ESP思路,我在这里只是照搬,并非自己的思路,希望大家海涵,我对第二种方法F9运行三次不太明白,因为按照最后一次异常的方法,也是可以运行到第四次的,所以我不太明白为什么只运行三次。如果有知道的大神也可以跟帖赐教一下,感激不尽!
    3.我发帖的目的呢只是纪录自己小白成长过程中思路,锻炼自己的能力,当然以后也会不定期的进行发帖。其实我也是小白,所以不要崇拜我,当然大神也不要喷我。
   
本帖仅供交流学习,另如有转载请注明作者。

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



您的热心是对发帖者最大的鼓励!

您的热心是对发帖者最大的鼓励!

您的热心是对发帖者最大的鼓励!

重要的事情说三遍




zt185 发表于 2015-10-11 19:38

学习了,今天评完了明天给你加上,感谢LZ的教程很详细!

Silentrifly 发表于 2016-7-25 10:42

学习了.感谢楼主详细的教程{:1_918:}

hs210298 发表于 2016-7-31 09:05

学习了.感谢楼主详细的教程.........

hkf1231 发表于 2017-3-16 13:17

F9 能按3次?>求解

开始的复活节 发表于 2017-4-17 22:57

使用ESP定律下断点,然后F9四次这步有些多余的,我尝试过后面只要单步跟就行了

pengge123 发表于 2018-7-19 19:51

我在循环里按了10几分钟的f8,果断放弃了

GANDALF111 发表于 2018-9-13 18:10

有脱壳机吗?谢谢分享。
页: [1]
查看完整版本: 【手脱nSpack3.7图文教程】