码迷,mamicode.com
首页 > 其他好文 > 详细

手动脱NsPacK壳实战--吾爱破解培训第一课作业2

时间:2015-07-09 16:17:10      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:nspack壳   脱壳   nspack脱壳   手动脱壳   吾爱破解脱壳   

作者:Fly2015

这里脱壳的程序是吾爱破解培训的作业2,相较于作业1稍微要强一点,但是只要掌握了脱壳的ESP定律,脱这个Nspack壳并不难,不过还是蛮有意思的。

1.使用查壳软件对加壳的程序进行查壳。

使用PE Detective查壳的结果:

技术分享

使用DIE查壳的结果:

技术分享

2.OD载入程序进行脱壳操作

OD载入以后,被加壳程序的入口点的汇编代码,如图。很显然,加壳程序载入OD以后,发现有3pushad指令,因此在进行程序脱壳的时候,根据ESP定律需要下3个硬件断点。

技术分享

根据该加壳程序载入OD的汇编的特点,根据ESP定律下3个硬件断点,如图。

技术分享

3F9运行加壳程序,程序自然会断在第3个硬件断点处,如图。

技术分享

F7跟进到地址0044C18D处,观察后面的汇编指令的特点,经过分析以及结合反汇编的经验,找到了下面这段汇编,如图。

技术分享

很显然,JMP指令后面的地址0041DDAC就是原来程序的真实OEP的地址。先删除前面设置的3个硬件断点,然后在地址0044C33CF2下断点,F4或者F9运行到该断点处断下。
删除原来设置的硬件断点:

技术分享

运行到断点0044C33C处,程序断下来,如图。

技术分享

F7跟进到真实OEP的地址0041DDAC处,如图。

技术分享

令人烦恼的事情发生了,OD没有正确的将内存数据转换成汇编形式显示出来,因此需要我们手动的将内存数据转换成汇编指令显示出来(选中没有没有正确显示的内存数据-->右键-->分析-->分析代码或者使用快捷键Ctrl + A)

技术分享

Ok,上面的汇编代码是不是很熟悉啊。现在,我们就可以使用OD的插件OllyDump或者Load PE结合RECImport 工具,进行程序的脱壳了。运行脱壳后的程序,程序运行正常。

技术分享

脱Nspack壳的文档和脱壳后的程序的下载地址:http://download.csdn.net/detail/qq1084283172/8883869

版权声明:本文为博主原创文章,未经博主允许不得转载。

手动脱NsPacK壳实战--吾爱破解培训第一课作业2

标签:nspack壳   脱壳   nspack脱壳   手动脱壳   吾爱破解脱壳   

原文地址:http://blog.csdn.net/qq1084283172/article/details/46816515

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!