作者: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地址被加密处理了,详细的被加密的函数如图所看到的。

非常显然,地址00455170处保存的系统API的函数地址是第一个被加密处理(详细的怎么找IAT表的方法,看前面的博客)。

Ctrl+F2再次动态调试分析程序。为要找到IAT表中的函数是怎么被加密处理的,须要在地址00455170处下Dword型的硬件写入断点,4次F9后地址00455170处被加密的系统API的函数的地址显示出来了,如图。通过调用GetProcAddress函数获取到的系统API函数的地址保存到了ds:[ECX]中,值得注意。

F8单步调试程序走几步,发现地址00470F42处调用的函数00471620使用来给IAT表中系统API进行加密处理的。

F7单步跟进函数00471620进行分析发现。通过置换的方式将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. 【原创】脱UPX加壳的notepad.exe

    [文章标题]: 脱UPX加壳的notepad.exe [文章作者]: 微微虫[S.T.C][DCT] [作者邮箱]: ]nuxgod@163.com [作者主页]: http://wwcgodsoft ...

  2. R语言CRAN不包含的安装包下载并手动使用RStudio进行安装实战:以下载VRPM包及绘制彩色列线图为例

    R语言CRAN不包含的安装包下载并手动使用RStudio进行安装实战:以下载VRPM包及绘制彩色列线图为例 目录

  3. python安装sklearn-contrib-py-earth包实战:pip和conda安装失败、手动下载whl文件安装实战

    python安装sklearn-contrib-py-earth包实战:pip和conda安装失败.手动下载whl文件安装实战 目录 python安装sklearn-contrib-py-earth包 ...

  4. 用ollydbg手脱UPX加壳的DLL

    用Ollydbg手脱UPX加壳的DLL 作者:fly [目标程序]:UPX加壳的EdrLib.dll.附件中还有输入表.重定位数据.UPXAngela以及UnPacked以供参考.        [作 ...

  5. 手动脱UPX壳的几种方法

    UPX是一种常见的压缩壳.通过PEID检测到是UPX的壳的话,可以用如下四种方式来脱壳: 单步跟踪法.ESP定律.内存镜像法.POPAD查找法. 1.单步跟踪法.就是使用ollydbg(简称OD)加载 ...

  6. 脱壳实战_手动脱Zprotect

    通常在软件的破解过程中,会遇到代码经过混淆器混淆的程序,此类混淆器可以称之为壳,壳又可分为压缩壳(常见的有UPX.北斗.ASDPack.Npack.PECompact等)和保护壳(如强壳Safengi ...

  7. android-app-脱壳-实战-操作步骤

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵犯了您的合法权益,请告知,我将及时更正.删除,谢谢.邮箱地址:lc1139411732@163.com 本专题将和大家一起分析.学习far ...

  8. SQL注入攻击及防御 手动注入+sqlmap自动化注入实战(网络安全学习12)

    CONTENTS 1 项目实验环境 2 SQL注入概述 2.1 SQL注入简介 2.2 SQL注入的危害 3 SQL基础回顾 3.1 联合查询union 3.2 information_schema数 ...

  9. 手动脱简单的虚拟机壳(themida)

    1.它有反虚拟机 在vm中要修改下配置 配置代码在最后面 2.查找什么写的 3.找OEP 有下断到 GetVersion 或者找 sub esp,0x58 这里要到401000那去搜索 不然找不到 有 ...

最新文章

  1. 快来看看Google出品的Protocol Buffer,别仅仅会用Json和XML了
  2. 想理解Java的IO,不要从操作系统开始说起的都是耍流氓...
  3. P4092-[HEOI2016/TJOI2016]树【线段树,倍增】
  4. PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算
  5. 第14课 跳绳达人 《小学生C++趣味编程》
  6. 【Level 08】U07 Mixed Feelings L5 Front page news
  7. mysql升级到5.7版本后,运行程序报错this is incompatible with sql_mode=only_full_group_by
  8. linux如何检查uwsgi安装成功,linux安装uwsgi出错
  9. 又回来了~工作告一段落了,终于有时间看书写点东西了
  10. 用足球阵型告诉你,阿里云如何护航全网70%世界杯流量
  11. 概率论与数理统计【一】- 随机事件与概率(1):古典概型与几何概型
  12. Java 学习/面试指南
  13. uni-app 打包App ,实现App更新提醒,并下载最新App
  14. IDEA中JDBC连接MYSQL数据库步骤超详细总结
  15. 大道至简:企业需要的中台是什么?答案是:指挥官体系
  16. Excel怎么忽略位置对比两列数据是否相同
  17. 没火多久就停业,故宫火锅店咋了?
  18. 【苹果相册推】Xcode项目,我们将其命名为mypushchat,以及调试的iOS设备
  19. 【烈日炎炎战后端】计算机网络(4.2万字)
  20. 自建OTA服务器实现设备固件自动更新

热门文章

  1. 从零开始学习jQuery (六) AJAX快餐
  2. Maven基础与私服搭建
  3. 循环神经网络(RNN, Recurrent Neural Networks)介绍
  4. Python正则表达式集锦
  5. 程序员面试题精选100题(06)-二元查找树的后序遍历结果[数据结构]
  6. 【caffe】mnist数据集lenet训练与测试
  7. 好久没来了,发个招聘贴
  8. “人机大战”捧红人工智能 新时代的HPC玩家需要什么能力?
  9. Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
  10. Mac OS X 修复基本命令失效的问题