手脱MoleBox(2.3.3-2.6.4)

1.查壳

2.找到OEP

对第二个Call使用ESP定律,再跳转后的位置进入第一个Call,这里就是OEP了,在这里直接dump的话会失败,那是因为MoleBox壳对IAT进行二次跳转,我们先在OEP位置设置软件断点;

3.手动修复IAT

我们数据窗口跟随到这个加载系统函数的地址就是IAT;

我们看到有部分IAT被隐藏到了其它位置,我们使用硬件写入断点,从新运行此程序,找到写入位置;

我们通过硬件写入断点找到IAT被写入的位置,我们从这单步向下,找到使IAT变化的语句,在语句上下硬件执行断点,删除硬件写入断点(因为我们必须要找到第一次加密IAT表的位置,所以要下硬件执行断点),从新运行程序;

我们NOP掉这条指令,删除硬件执行断点,然后恢复OEP上的软件断点,运行;

这次IAT表就能够被完整加载,我们这时在dump下再修复IAT表就能正常运行;

在脱壳时,我们要去掉重建输入表;

成功运行;

4.总结

在进行MoleBox脱壳时,OEP都是能够正常找到,重点在MoleBox壳对IAT表做了跳转,将IAT的函数指向其它地址,再通过其它地址指向函数,所以,我们通过系统函数找到IAT表的位置,通过硬件写入断点追踪到写入跳转的位置,将跳转代码nop掉,就能完整加载IAT表了(注:我们要找到第一个写入跳转的时候,所以,还有在代码上下硬件执行断点);

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/HOPEAMOR/p/11981180.html

时间: 2024-11-05 12:35:39

手脱MoleBox(2.3.3-2.6.4)的相关文章

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

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简介: FSG壳是一款压缩壳.我们这里使用9种方式来进行脱壳 工具:ExeinfoPE或PEid.OD.LordPE.ImportREConstructor 脱壳文件:05.手脱PECompact2.X壳.rar 1 单步 我们发现有两处call会跑飞,那么我们需要在跑飞处进入,然后在跟即可. 第一个跑飞的cal

<Crack> 手脱UPX

2016-4-19(YPP) <此篇为脱壳入门教程> UPX简介 http://baike.baidu.com/link?url=h_P3r-L0icvZoSNO-HUwY4RE3ptQ9r6d8H1ZFsgGlCOqyv6Q68N95BHIvNY2nCs0IUdYt0xy6LYQ_pDF-Gg6Na               ①UPX加壳压缩               ②寻找OEP               ③Dump内存映像               ④重建IAT         

手脱PECompact v2.xx

1.使用Detect It Easy进行查壳: 2.使用x32dbg打开该带壳程序,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略: 3.我们F9运行到程序入口处,会看到mov eax,puah eax,push dword,我们单步跳转到push dword的位置,堆栈窗口压入了一行地址,右键,内存窗口跟随该地址: 4.在该内存处下dword的硬件访问断点,然后F9运行,至图中位置后,向下查找(可能会由于异常或断点,一次无法跳转至此,可以F9,直到此位置): 5.找到pop

简单脱壳教程笔记(9) --- 手脱TELock0.98b1壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 TELock 操作 1.最后一次异常法 1.选项--->调试设置--->异常------取消所有异常. 在OD插件--StrongOD--Options--Skip Some Exceptions选项取消,重启OD再试试. 2.然后将程序重新载入 3.按shift+f9 ,发现17次shift+f9 就会让程序

简单脱壳教程笔记(10) --- 手脱EXE32PACK壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EXE32PACK 1.ESP定律 1.将程序加载到OD中,发现有大段的加密指令,我们先单步走,到达关键指令,push ebp 2.单步运行到cmp eax,eax处,在寄存器窗口的esp处,右键在数据窗口跟随,并在数据窗口中进行设置硬件断点. 3.按运行,并删除硬件断点 4.然后单步,就会到达OEP 2.下断:

手脱 PEtite 2.x [Level 1/9] -&gt; Ian Luck 笔记

这款壳不是什么强壳,属于普通的压缩壳 首先OD载入 程序中断在此处 我们单步步跟踪 来到这里,esp定律下硬件访问word断点! 程序在0042d03d处弹栈,之后F8单步跟 一个大JMP之后程序来到这里 鼠标右键,从模块中删除分析,就来到了程序的OEP,看着样子应该是VB程序

手脱UPX(堆栈平衡原理)

一开始看到pushad F8执行直到只有esp,eip,变化 在esp处follow in dump 下硬件访问断点 F9运行在硬件断点停下 到达一个长跳转(跳到OEP) 完成 ------------------------------------------------------ 原理回头补充

简单脱壳教程笔记(8)---手脱EZIP壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EZIP壳 : 当载入到OD中的时候,会发现有一串jmp watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 操

手脱PESpin壳【06.exe】

1.查壳 2.LoradPE工具检查 一方面可以用LoradPE工具查看重定位,另一方面也可获取一些详细信息 3.查找OEP ①未发现pushad 开始未发现pushad,进行单步步入,很快就能找到pushad ②使用ESP定律 这里要注意如果是有守护进程的话,需要使用[Crtl+G],在输入框中输入"CreateMutexA",点击"OK",解除双进程守护.我们在函数末尾的Retn 0xC处下断点,因为壳会判断这个函数的头部是否有断点. 发现程序运行起来了,可以确