作者: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壳实战总结的更多相关文章

  1. 手动脱Mole Box V2.6.5壳实战

    作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,之前也碰过该种壳但是这个程序似乎要复杂一点. 首先对加壳程序进行侦壳处理. Exeinfo ...

  2. 手动脱UPX压缩壳

    示例程序演示 样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的: 拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - ...

  3. 手动脱RLPack壳实战

    作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题. 这个壳没听说过.可是脱起来比較简单.依据ESP定律就可以直达光明,Dump出原来的程序. 老规矩.首先对须要脱壳的程序进行查壳处理. ...

  4. 手动脱WinUpack 壳实战

    作者:Fly2015 吾爱破解培训第一课选修作业第6个练习演示样例程序.不得不反复那句话,没见过这样的壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些.特别是IAT表的修复问题上. 首先分别 ...

  5. 手动脱NsPacK壳实战

    作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1略微要强一点,可是仅仅要掌握了脱壳的ESP定律,脱这个Nspack壳并不难.只是还是蛮有意思的. 1.使用查壳软件对加壳的程序进 ...

  6. 手动脱KBys Packer(0.28)壳实战

    作者:Fly2015 吾爱破解培训第一课选修作业第5个练习程序.在公司的时候用郁金香OD调试该加壳程序的时候出了点问题,可是回家用吾爱破解版的OD一调试,浑身精神爽,啥问题也没有. 首先使用查壳工具对 ...

  7. 手动脱PeCompact 2.20壳实战

    作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...

  8. 简单脱壳教程笔记(7)---手脱PECompact2.X壳

    本笔记是针对ximo早期发的脱壳基础视频教程.整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简单介绍: F ...

  9. 手动脱UPX 壳实战

    作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...

随机推荐

  1. maven学习(五)——maven命令的组合使用

    Maven的命令组合使用 maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下: 1.先清理再编译:"mvn clean compile" ...

  2. maven学习(三)——修改maven本地默认仓库

    修改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表 ...

  3. Codeforces Round #363 (Div. 2) A 水

    Description There will be a launch of a new, powerful and unusual collider very soon, which located ...

  4. set与map的区别

    STL中:MAP的节点是一对数据.   SET的节点是一个数据. Map使用关键值Key来唯一标识每一个成员 map可以重复.set是集合 都属于关联容器   只不过,   map的形式   map& ...

  5. 易用的开源日志记录程序及其 .NET不用IIS实现预览站点工具

    原文发布时间为:2011-02-28 -- 来源于本人的百度文章 [由搬家工具导入] http://code.google.com/p/elmah/ (不需要改动任何的程序)、简单的配置(几行配置)、 ...

  6. SQL2005、SQL2008如何压缩日志文件(log) 如何清除日志

    原文发布时间为:2010-11-01 -- 来源于本人的百度文章 [由搬家工具导入]            ALTER DATABASE [DataBaseName]             SET ...

  7. Heritrix3.0.0启动介绍

    下面开始使用Heritrix3.0.0 进 入CMD(开始->运行),进入Heritrix3.0.0所在目录,我这里是D:/heritrix/heritrix3.0.0/bin,这里 大家截图也 ...

  8. power key 啟動系統的相關電路

    Platform Qualcomm MSM8917 / 37 + PM8937(main PMIC) + PMI8940 Schematic Principles 當 power key 按下時, K ...

  9. hdu 1395(欧拉函数)

    2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  10. LeetCode OJ-- Integer to Roman @

    @表示有更优解法 https://oj.leetcode.com/problems/integer-to-roman/ 将自然数,转换成罗马数字,输入范围为 1 ~ 3999,因为罗马数没有0. 用一 ...