手动脱Mole Box壳实战总结
作者:Fly2015
这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,这些都是广告,能够直接无视了。前面的博客手动脱Mole Box V2.6.5壳实战中已经给出了一种比較笨的脱壳的方法。在进行脱壳程序的IAT表的修复的时,採用的是手动记录系统API的地址然后手动的去恢复被加密的系统API的方法,非常挫。
以下就来讲一讲略微好点的修复IAT表的方法。
回想一下前面找加壳程序原OEP的步骤。
使用ESP定律进行该加壳程序的脱壳,在硬件写入断点断下来以后,单步F7到地址0046997B3处,发现Call eax指令中的EAX保存是加壳程序真实OEP的VA地址0045159C。
被加壳程序的真实OEP被找到了。可是使用OD的插件OllyDump或者Load PE+ImportREC或者是Scylla_x86进行程序的脱壳,然后执行程序。发现脱壳后的程序执行出错。
随后找到原因,原来是处保存的系统API的函数地址是第一个被加密处理(详细的怎么找IAT表的方法,看前面的博客)。
Ctrl+F2再次动态调试分析程序。为要找到IAT表中的函数是怎么被加密处理的,须要在地址处下Dword型的硬件写入断点,4次F9后地址00455170处被加密的系统API的函数的地址显示出来了,如图。通过调用GetProcAddress函数获取到的系统API函数的地址保存到了ds:[ECX]中,值得注意。
F8单步调试程序走几步,发现地址00470F42处调用的使用来给IAT表中系统API进行加密处理的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
F7单步跟进进行分析发现。通过置换的方式将ds:[ECX]处的函数地址给改动了。
OK,程序在调用被加密处理的IAT表中函数时,终于函数调用的还是系统的API也就是说仅仅是给系统的API添加了调用的代理函数。
既然是这样,那就将改动IAT表中系统API函数的代码给path掉也就是NOP掉。
将改动IAT表中函数调用地址的汇编代码mov dword ptr ds:[ecx], eax改动为两条nop指令,然后F8单步执行程序,没什么问题。
F9执行程序,因为依据ESP定律下的硬件写入断点还在。因此程序会断在设置的硬件写入断点处。F8单步几步就可以找到程序真实OEP,如图。
非常显然,加壳程序的真实OEP的VA地址为0045159C。F7跟进到OEP处。工具搞起。使用Load PE结合ImportREC或者Scylla_x86(剪切掉无效的函数指针)对加壳程序进行完美的脱壳。
执行一下脱壳后的程序。验证脱壳成功。
手动脱Mole Box壳总结文档和脱壳程序的下载地址:http://download.csdn.net/detail/qq1084283172/8908073
手动脱Mole Box壳实战总结的更多相关文章
- 手动脱Mole Box V2.6.5壳实战
作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,之前也碰过该种壳但是这个程序似乎要复杂一点. 首先对加壳程序进行侦壳处理. Exeinfo ...
- 手动脱UPX压缩壳
示例程序演示 样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的: 拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - ...
- 手动脱RLPack壳实战
作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题. 这个壳没听说过.可是脱起来比較简单.依据ESP定律就可以直达光明,Dump出原来的程序. 老规矩.首先对须要脱壳的程序进行查壳处理. ...
- 手动脱WinUpack 壳实战
作者:Fly2015 吾爱破解培训第一课选修作业第6个练习演示样例程序.不得不反复那句话,没见过这样的壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些.特别是IAT表的修复问题上. 首先分别 ...
- 手动脱NsPacK壳实战
作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1略微要强一点,可是仅仅要掌握了脱壳的ESP定律,脱这个Nspack壳并不难.只是还是蛮有意思的. 1.使用查壳软件对加壳的程序进 ...
- 手动脱KBys Packer(0.28)壳实战
作者:Fly2015 吾爱破解培训第一课选修作业第5个练习程序.在公司的时候用郁金香OD调试该加壳程序的时候出了点问题,可是回家用吾爱破解版的OD一调试,浑身精神爽,啥问题也没有. 首先使用查壳工具对 ...
- 手动脱PeCompact 2.20壳实战
作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...
- 简单脱壳教程笔记(7)---手脱PECompact2.X壳
本笔记是针对ximo早期发的脱壳基础视频教程.整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简单介绍: F ...
- 手动脱UPX 壳实战
作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...
随机推荐
- jquery版手风琴效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- ios动画效果集锦(持续更新)
1.树叶滚动进度:http://www.jianshu.com/p/800496caa055 2.列表滚动动画和滚动视差效果http://www.jianshu.com/p/42e1eb59a1af ...
- 【Luogu】P3750分手是祝愿(期望DP)
题目链接 这题好喵啊…… 设f[i]是最少用i次才能全关上转移到最少用i-1次才能全关上灯的期望值,那么n个灯里有i个是正确的,剩下的都是不正确的 因此期望是$f[i]=frac{n}{i}+frac ...
- HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- bzoj2338数矩形(rectangle)
数矩形(rectangle) 计算几何 把所有点两两连线,把这些线按长度排序,再按中点排序 能组成矩形的线一定是连续的 最坏就是所有点围成一个圆,交于圆心 复杂度O(可以过) 要用叉积,不然会被卡精 ...
- 关于getAttribute()和setAttribute()的总结
继续声明:欲练其功,必先自宫.博主正处在自宫阶段,修炼得道者多多指教. 最近在看<JavaScript DOM 编程艺术>这本书,看到了getAttribute()和setAttribut ...
- 解决当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭)的问题
当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭) 发生这种情况时 打开项目目录中的 Temp文件夹,可以找到 一个 UnityLockfile 文件 将这个文件删除就可 ...
- jsp导出table数据excel表
<html> <head> <meta http-equiv="content-Type" content="text/html;chars ...
- github的一些简单用法
关于 项目 上传 大多数人都是使用命令行上传 步骤分为以下几步: 在github上创建你的 repositories ->github.com - >右下角 new reopsi ...
- hdu 5930 GCD 线段树上二分/ 强行合并维护信息
from NOIP2016模拟题28 题目大意 n个点的序列,权值\(<=10^6\) q个操作 1.单点修改 2.求所有区间gcd中,不同数个数 分析 1.以一个点为端点,向左或向右的gcd种 ...