作者: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. SRCNN(一)

    SRCNN学习(一):demo_SR.m 一.demo_SR.m 使用方法 1.Place the "SRCNN" folder into "($Caffe_Dir)/e ...

  2. MySQL误操作后如何快速恢复数据?

    摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如 ...

  3. Web系统从Oracle迁移至MySQL

    前两天领导给了个活,数据库迁移,原来的系统是用的Oracle数据库,现在要改成MySql,当时没多想就接下来了,原来的系统用的框架式SSI,于是大概想了下需要作调整无非以下几点 第一 数据库迁移 第二 ...

  4. df du 的区别

    https://blog.csdn.net/mike8825/article/details/51986405 https://www.cnblogs.com/scl1314/p/7534894.ht ...

  5. Vue实现增删改查功能

    简单的表单CURD功能demo <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  6. Document类

    一.类结构 org.jsoup.nodes Class Document java.lang.Object org.jsoup.nodes.Node org.jsoup.nodes.Element o ...

  7. 802.11 MAC层

    1. 介绍 本文主要介绍了802.11 MAC层 2. 访问机制 CSMA/CA:  Carrier Sense Multiple Access with Collision Avoidance Wi ...

  8. C语言中的基础知识变量探讨

    C语言中的变量是编程的基础,主要有四个要素:存储类型.存储大小.存储名称和存储地址. 一.变量的要素: 1.存储类型:主要表明名变量存储的特征,主要有auto.extern.static和regist ...

  9. VIM使用技巧5

    查找并手动替换.例如有如下一段文字: We' re waiting for content before the site can go live If you are content with th ...

  10. ext2/3/4的inode结构说明

    系统环境:Ubuntu15.10/ext4 今天在复习<鸟哥的私房菜-基础学习篇>,看到inode大小为128bytes,想看下这128字节里面到底是什么样的. 于是我查了下google, ...