type
status
date
slug
summary
tags
category
icon
password
最近事情比较多,时隔了将近两个月没有更新博客了,再前几天偶然发现到一个VMP脱壳的插件,故而下载下来试了试,发现还可以,所以想到了出一个博客来记录一下
插件界面

这个插件一共用到了四个dll文件,其中一个为插件本体,其余为必须运行库,将除了
Ollydbg Plugin.dll 文件以外的dll文件放到OD 根目录即可加载上该插件
使用教程
在装上该插件以后,
OD随便载入一个程序,右键即可看到该插件1、首先随便写了一个易语言的程序,然后套壳
我这里所使用的
VMP版本为3.8.4。我们将加壳的复杂性以及内存保护等全部打开
然后对文件进行加壳,将会得到一个名为
1234.vmp.exe的文件
这里我们就得到了两个文件,一个为原本文件,一个为加了
vmp3.8.4之后的保护文件
两个文件均可以正常打开

2、将被保护文件拖到OD中进行逆向

我这里所用的
OD为小曾老师的OD,其实各个版本的OD都大差不差然后我们在
GetVersion位置下断点,将程序断在GetVersion位置 使用
ctrl+G组合键,输入GetVersion即可跳转到对应位置,再该位置下断点

F9将程序运行起来,并让其在该位置断下,我们即可使用该插件中的寻找OEP功能找到程序原本的入口点

该位置非常符合易语言的程序入口的特征,在该位置右键,并将该位置设置为
新EIP 
然后我们即可使用插件中的
还原OEP功能,对OEP进行还原

修复完成后,将该程序
dump出来,并新加一个区段用来存储我们后续的IAT表你们也可以采用其他
dump工具,我这里采用的是OD插件 
注意模块不要选择错误
然后单击
获取EIP作为OEP 
然后再选择
转储
我将其命名为
dump1 这样我们即得到了一个“脱壳后”的文件,但是该文件现在无法打开,因为文件中的
IAT我们并没有修复完成3、修复IAT
我们将获得的新文件
dump1.exe放入到CFF工具中,新增加一个区段,斌且大小为10000,该区段是为了存储我们后续所修复的IAT

这样我们就获得一个新区段

直接关闭该工具并全部选
是即可(两个提示),你也可以选择自行手动保存
然后将我们所新加区段的文件拖入到
OD中
然后单击执行,让程序断在入口点的位置(部分
OD在载入后直接为入口点位置,注意甄别),不同语言的入口点特征也不同,需要自行判断,我这里所用的为易语言程序
当程序在入口点位置断下后,我们继续右键使用该插件,选择
IAT_FIX 
然后我们即可单击
L按钮来查看日志,等待完成提示出现

修复完成之后,我们需要去寻找关键代码位置,将其中一个
Call改为Call LoadStringA 我们需要依次进入几个
call(至于查找方式在本篇文章中不进行细致讲解,如果各位需要,那么等我下次有时间时再出一篇文章,在本篇文章中,各位可以先看一个需要进入的call的附近特征)(1)在入口点下方不远处,回车进入该
call
(2)第二个
call就在一进来的这个位置,回车再次进入该call
(3)第三个
call也在进来的不远处,回车再次进入该call
(4)第四个
call的位置在不远处的连着两个call中的第一个,继续回车进入
(5)第五个
call的位置可以记一下附近的这个特征,然后继续进入这个call
然后将这个
call里面的内容替换为
选中
call中的这些内容,然后右键—→二进制—>二进制粘贴
注意不要选择到
retn敲黑板!!!重点!!!
该函数内有两个
call,当我们粘贴后!如果发现两个call都被改变的话!我们需要选择第一个call,然后右键—→撤销此处修改!!! 


然后我们选择第二个
call,空格,将该汇编代码改为

然后我们双击
EIP,回到程序运行位置,也就是程序入口点
然后打开工具
UIF输入被脱壳程序的
PID,代码段开始和结束位置以及我们所新加的区段的位置单击
M 进入内存界面
然后依次填写代码开始地址(.text区段开始),代码结束地址(.rdata区段开始),新区段地址

然后勾选上
修复输入表,单击开始
等结束之后,我们在内存区域右键,并将模式修改为
地址
然后
ctrl+G输入UIF所提示的IAT RVA并加上提示的镜像基址注意!!是在内存窗口位置打开!不要打开错了!

我们就会跳转到该位置。将第一行的地址复制下来稍后使用

然后我们将该程序
dump出来,我们命名为dump2



dump出来之后先不要关闭该程序,打开工具
Scylla,并选择OD所载入的程序(dump1),然后填写VA(即刚复制的地址)以及填写大小(即UIF所提示的IAT大小)
然后点击
获取输入表
然后选择
修复转储后文件,选择刚才dump出来的新文件dump2
我们即可得到
dump2_SYC.exe
至此,我们脱壳+修复已完成
- 作者:brown
- 链接:https://bbrownn.dpdns.org//article/1012-20-54
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







