作者: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. 6个超实用的PHP代码片段

    一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...

  2. Log4j官方文档翻译(二、架构设计)

    log4j遵循层次化架构,每个层都有不同的对象来执行不同的任务.这种层次话的结构灵活设计.易于未来的扩展. log4j框架中有两种对象: 核心对象:框架的支撑对象,是框架必不可少的组成部分. 支撑对象 ...

  3. zookeeper与Kafka集群搭建及python代码测试

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  4. 【22】Vue 之 Vue Devtools

    vue安装: # 最新稳定版 $ npm install vue # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新 ...

  5. Reactor模式总结

    Reactor是基于NIO中实现多路复用的一种模式. 什么是Reactor模式 同步的等待多个事件源到达(采用select()实现) 将事件多路分解以及分配相应的事件服务进行处理,这个分派采用serv ...

  6. 《Java性能权威指南》笔记----JIT编译器

    概览 编译型语言(C++,Fortran等):运行程序前,需要用编译器将代码静态编译成CPU可执行的汇编码.汇编码针对特定的CPU. 优点:只需编译一次,且有足够的程序信息来优化汇编码.执行速度快: ...

  7. POJ 2891

    Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 19509 ...

  8. LOJ#2084. 「NOI2016」网格

    $n,m \leq 1e9$,$n*m$的网格中有$c \leq 1e5$个是黑的,其他是白的.问:使至少两个白的不连通,最少需要再把几个白的涂黑. 可以发现答案是-1,0,1,2啦.-1要么没白的, ...

  9. 生成静态页面方法 .NET

    原文发布时间为:2009-09-30 -- 来源于本人的百度文章 [由搬家工具导入] 采用模板法:【例子中的两个页面以及生成的页面均在同一个目录,自己可以去改】 模板Template.htm: < ...

  10. 数据库一直显示"正在恢复"

    restore database [DataBase] with recovery ALTER DATABASE DataBase SET OFFLINE WITH ROLLBACK IMMEDIAT ...