博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手动脱NsPacK壳实战
阅读量:7043 次
发布时间:2019-06-28

本文共 750 字,大约阅读时间需要 2 分钟。

作者: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壳的文档和脱壳后的程序的下载地址:
你可能感兴趣的文章
linux下vim命令详解
查看>>
[AngularFire] Firebase OAuth Login With Custom Firestore User Data
查看>>
c++11 nullptr
查看>>
SpringMVC系列(二): SpringMVC各个注解的使用
查看>>
vs2010如何安装qt插件
查看>>
如何开始做一个架构设计 语音预览 - 小薇
查看>>
Centos7 安装redis服务
查看>>
SQL Server-聚焦ROW_NUMBER VS TOP N性能
查看>>
微信小程序 常见问题 小结
查看>>
少用数字来作为参数标识含义
查看>>
不错位的java .class 反编译工具推荐
查看>>
SQLServer 数据库镜像+复制切换方案
查看>>
平安科技移动开发二队技术周报(第十五期)
查看>>
设计模式-行为型模式,观察者模式(13)
查看>>
Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法
查看>>
Intellij IDEA查看所有断点
查看>>
Top K算法
查看>>
CentOs6.7 python2.6升级到2.7.11
查看>>
JavaBridge
查看>>
.NET MVC JSON JavaScriptSerializer 字符串的长度超过 maxJsonLength 值问题的解决
查看>>