吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 17172|回复: 61

[原创逆向图文] VMProtect肤浅认知记录(一)

  [复制链接]
Cari 发表于 2014-10-16 12:14 | 显示全部楼层 |阅读模式

本帖最后由 Cari 于 2014-10-16 19:50 编辑

VMProtect肤浅认知记录(一)
大家好!我是Cari别人还是喜欢叫我阿狸。好吧。有洋气的名字也不错呢。
到鲨鱼哥的论坛不发点什么不好意思了。
我啥也不会,肤浅探讨。
感谢ximo LCF-AT 等各种前辈写的zeus插件以及脚本。不借助前辈们的插件,脚本手脱VMP简直无法想像。
论坛看到个这帖子
image001.png

image003.png 是这么一个东西,那就简单说说自己了解的一点点肤浅认识,
image005.png
题外话:VMP的虚拟机检测
方法一:从程序上处理(感觉每个程序都去搞好麻烦的样子)
Ctrl+F
image007.png
image009.png
原理:
in eax,dx这条指令在R3下会产生异常,而VMP在SEH里重新设置了新的EIP,初始化了新的VMContext,而在虚拟机里,这个异常不会触发。

先下个CC断点试试  F9运行
image011.png
image013.png
bom  触发了VMP的检测了。
我们F4运行到选定位置
image015.png
Oh 这程序真是激情四射。
F8继续 把EDX,EBX置0  F9运行
由于我物理机是xp sp3的 没法看。这方法我也不推荐。此处就不截图了。
方法二:关闭虚拟机的后门 实现避开检测虚拟机
找到我们虚拟机镜像的路径
image017.png
图中是我的一个路径
image019.png
找到这玩意。这是我们镜像的配置文件
monitor_control.restrict_backdoor = "true"
在我们的最后这里 加这么一句话 保存
这样基本可以避开大部分的壳检测,VMP,SE。TMD部分,而且不会卡
这么来比方法一的要简单,而且是针对镜像的。可是有个弊端,VMtool运行不起来了
那么双向拖拽复制粘贴功能也没了。在关闭后门之前双机装好内网传输工具解决疑问。
如果你的配置够好,那么
isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"
保险起见全加了。【尽管这样。TMD壳加的好的还是一样检测到。】


-------------------------------------------------------------------------------------------------
VMP自校验:
很多人喜欢对VMP程序打补丁。不知道你们打补丁有没有发现 时机不对打着打着就被检测了,然后你的程序整个没法用。
还有的人直接保存出来了。暗自高兴,修改完保存了。一运行。被检测。
这就是VMP的一个自校验。
怎么看有没有校验?
方法一:
Winhex打开我们的程序
image021.png
到最后随便修改下,保存运行。File corrupted!. This program has been manipulated and maybe
it's infected by a Virus or cracked. This file won't work anymore.

方法二:
image023.png
把程序拖拽到Lordpe重建pe(操作前先备份原程序)运行
File corrupted!. This program has been manipulated and maybe
it's infected by a Virus or cracked. This file won't work anymore.

第三种方法:
PE编辑器
image027.png
非多处理器系统打勾。确定-保存-运行
image029.png
VMP对文件校验三种方式:
1,        文件校验
2,        内存校验
3,        解码校验
之前也有人写个相关的教程说如何过掉文件校验,最简单的方法就是把输入表中的GetModuleFileNameW改成GetModuleFileNameA 这样使得VMP无法获取文件路径,接着后面CreateFileW返回的自然也就是-1,这样文件校验就可以过去了。不过这个方法到后期的版本貌似是不管用了。这里我介绍一个统一的方法。
进行这三种校验handler是GetHash这个handler,可以用fkvmp找到。
这个handler的主要功能就是对一段给定大小和起始地址的数据进行自定义的hash运算。 得到的结果在虚拟机里面进行比较。
除去文件校验以外,其他两种校验因为涉及到区域比较多,所以均在程序里面对应一个表,这个表包含多个大小为0xC的结构:
+0 RVA
+4 size
+8 hash

这个表是经过加密的,使用的时候在虚拟机里面逐个解密,这个表就是我们的突破口。
在进行校验的时候,程序会循环读取这个表的内容,解码后进行校验。这样就意味着有一个循环变量来指示循环的结束,也就是这个表的大小。幸运的是,vmp在进行后面两次校验之前会首先校验其对应的hash表 来保证hash表的合法性,这就给了我们机会找到这个表的位置和大小。

值得注意是:在内存校验的时候,循环变量用的是表项数,也就是表的大小/0xC, 而文件校验的时候使用的是这个表的大小
知道表的位置和大小了,就可以处理了,主要有两个思路:
1,把hash表的每一项都改成相同的,也就是让程序一直在校验同一个地方。然后再修改下gethash这个handler,让他在校验hash表的时候返回正确的值即可。
2,找到循环变量,把变量改成最小值,让程序以为已经读完整个表,继而结束校验。

烟雨Hyperchem大牛演示过第二种方法,不过操作视频已经消失了。
Ximo的另一种方法:
HOOK VM_Add32然后把eax的值0和4置换。
好了。题外话就到这里。
*******************************************************************
接下来看下论坛小伙伴的这个程序  用ximo的方法(只是其中一种方法不要对号入座说有的zeus无效。)这个比较简单,其余方法看心情慢慢发
OD载入
image031.png
我哩个擦。这都啥。
Zeus一番蹂躏后
image033.png
哦多K
庆幸OEP没被偷也没被V。运行
image035.png
发帖这个小伙伴说的关机什么的倒是没发生呢。
关OD 清空UDD。接下来修复iat

OD载入。M来到内存
image037.png
找到神器蹂躏后的区段 NewIAT 复制地址跟到这里
image039.png
丝固一。就是这

打开UIF
image041.png
啪啪啪。就各种填
第一个参数Process ID 就是我们的PID你可以从
image043.png
这里得到也可以这样
image045.png
接下来Start
image047.png
真不少啊
image049.png
此时我们的OD界面内容已经这样了。
先别关闭UIF。 打开ImpREC
image051.png
修改参数

image053.png
获取下输入表
全部有效,接下来抓取文件把程序dump出来

image055.png
image057.png
image059.png

然后转储到dump文件。
运行
如果程序不是打算拿去卖,自己用就可以逆向直接保存使用了。
image061.png
image063.png
此时完成了IAT的一个修复。本机可以运行。如果程序VM了部分代码那么此时放到别的xp下运行 就会报错,因为CPUID还没处理
**************************************************
接下来找CPUID    一种是patch  patch会触发内存随机校验  一种是补区段
接下来说patch
清空UDD   载入OD。
下个帖子再说









评分

参与人数 39威望 +2 HB +107 THX +26 收起 理由
29590 + 1
24567 + 1
Jawon + 1
是的是的 + 1
a8866072 + 1
一路走来不容易 + 1
Soul1999 + 1
VipDongle + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
消逝的过去 + 2
慕枫二二 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
SmallEXpel + 1
jaunic + 1
hnymsh + 1
lies + 1
isgoodtime + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
大雄宝殿777 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
wxbwxb + 1 分享精神,是最值得尊敬的!
青熟年 + 1 大神
LagyHehe + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
oopp0320 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
SaKuLa + 1 + 1 感谢!新技能get√
lyl537c + 1 + 1 讲的很详细,很适合初学者。
DDK + 2 + 1 cari大神的亚研究笔记要好好看看。
东子郭 + 2 + 1 论坛有你更精彩!感谢楼主!
haliyou001 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!
念桃无酒 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
520Kelly + 1 坐等阿狸师傅做patch hash的教程
随心看看 + 3 楼主顺手共享附件起步更好?
yAxI丶9y + 20 + 1 师父你这个太牛逼了
wangsm + 3 + 1 积极评分从我做起,感谢!
yusenny + 1 + 1 你将受到所有人的崇拜!
Kirito + 1 + 1 习科管理大牛
囚徒灬 + 20 + 1 完全看不懂的路过 阿狸师傅我爱你
小明同学 + 3 + 1 向大牛学习,期待一下集
大鸿 + 5 + 1 希望能更详细一些.我们这些新手不懂!
heiheidz + 1 + 4 http://www.unpack.cn/thread-71059-1-1.ht
lixjiy + 1 + 1 不错,正在学习了我已经修复ATI了,正在研究cpuid,,学习大牛的了,呵呵呵
Shark恒 + 1 + 20 + 1 Cari系列精华.1
label + 1 + 1 你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
微笑的耗子 发表于 2014-10-16 12:19 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-16 12:36 | 显示全部楼层

Cari系列精华.1
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
keke120 发表于 2014-10-16 12:55 | 显示全部楼层

等待你的  VMProtect肤浅认知记录(二)

最好来个视频教程  哈哈 先谢谢楼主了  我处理了CPUID  可是还是不行  技术不行啊  。等待你的续集
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lixjiy 发表于 2014-10-16 13:39 | 显示全部楼层

我也正在弄cpuid找到登陆窗口地址了,貌似还不可以运行,不知道是哪一步出错了

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
heiheidz 发表于 2014-10-16 17:52 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
heiheidz 发表于 2014-10-16 17:54 | 显示全部楼层

你这个IAT没有修复好,你难道没发现吗
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
heiheidz 发表于 2014-10-16 17:55 | 显示全部楼层

你还没有搞清楚什么crc,什么IAT修复区别,生搬硬套,那个是没用的
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
heiheidz 发表于 2014-10-16 18:02 | 显示全部楼层

我觉得你说不对,你试试修复看看吧,我估计会不行,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
keke120 发表于 2014-10-16 18:09 | 显示全部楼层

heiheidz 发表于 2014-10-16 17:52
http://www.unpack.cn/thread-71059-1-1.html
算是原创吧,毕竟贴上图片

老大 看不见呢
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表