吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22419|回复: 56
收起左侧

[原创] 浅析-VM虚拟机保护

  [复制链接]
材鸟 发表于 2017-7-10 16:08
本帖最后由 材鸟 于 2017-7-10 16:23 编辑

目前常见的保护壳,多为VMProtectSafengine其主要保护核心为“代码虚拟化”功能
功能主要将被保护的代码抹去后以其独特的体系去执行被抹去的代码【注:相当于一句chinese的句子里面插入了English,或者other外语,以一种不被理解的字义来代替原始文字】,常称之为:VMCODE,被VM的代码
下文共以两例讲解这套“独特的体系”
(一例为论坛用户suno 所发帖子demoVMcrackme(一例自写CrackMe+VMProtect
例一http://www.52pojie.cn/forum.php?mod=viewthread&tid=572327
感谢suno ,先以此贴demo讲解【请一定将帖子看完,最好动手一试再来看】


首先可以看到CrackMe要求输入NAME  KEY进行注册。
输入错误信息可以看到会弹出信息框提示 Wrong OD载入,找按钮的派发事件(不解释,这都不会就没必要继续看了)

1

1

可以看到账号密码验证都CALL401060MesageBox  TEXT参数为固定地址4014F4

2

2

账号验证CALL处步进看看

3

3

一般到这里可能都懵了What the fk shit?

4

4

这就是一段被VM的代码了,现在进入的代码段可以称呼为VM代码虚拟机(原指令已经不可视化,由代码虚拟机将原指令实现执行)现在需要分析代码虚拟机得出原始指令,修改实现破解。这里说一下这个VM代码虚拟机的结构

5

5

那么看完后明白了,现在要破解就需要找到比较账号密码的Handler,将其修改就OK现在怎么找?看堆栈 4017C4,执行完Handler后他还是会VMretn回去的,下断

6

6

选项-调试设置

7

7

设置一下,CTRL+F11 然后断在4017C4,现在跟踪功能已经记录了,账号验证CALL的代码(不过是被VM的)

8

8

这是账号验证所执行的代码块

9

9

很明显,第一条就是dispatch第二条进去看看

10

10

先定义一下,方便理解[EBP-F]=A  [EBP-1C]=B [EBP-14]=C  [EBP-10]=D  [EBP-B]=F [EBP-18]=XAdd a,4Mov b,aInc [c]Mov al, [c]Mov D,alMov F,DMov X,DMov [B],D  *一条MOVHANDLER 并不是类似test  cmp的命令 下一条

11

11

也是MOV一堆参数之类的下一条

12

12

Sub Sete Sets sub改变标志位,sete  sets保存标志位   相当于test  cmp之类指令的HANDLER很明显这是一条比较的HANDLER401196先记录下来。下一条

13

13

不是比较的,略过下一条

14

14

不是比较的,略过下一条

15

15

有一条cmp,不过并不是比较的HANDLER下一条

16

16

也不是比较的HANDLER下一条

17

17

VM RETN~ 那么比较的HANDLER就是401196,调试一下看看

18

18

账号验证处,断下。CTRL+G  401196.   F4

19

19

350?在4011AB再按一下F4

20

20

320?继续F4

21

21

700?继续F4

22

22

正在对账号进行验证~不过这个0是什么鬼?就是说并没有正确的账号咯?不管他,也不打算逆推,直接在4011AB SUB EAX,EAX,将VM中进行比较的HANDLER改成比较什么都说对, - -

23

23

OK!(因为密码比较也是经过这条HANDLER的,可以自己去调试看看,我已经改成他说什么都对了,密码比较经过也说对,所以OK


例二自写一个CrackMe ,然后加个VM

01

01

02

02

03

03

04

04

OK,源码都贴上了,CM就不介绍了。直接OD载入,找按钮派发事件

05

05


剩下的有人看再补上去吧,  乱 ~ 懒~
word.zip (1.73 MB, 下载次数: 117) 打包.rar (1.69 MB, 下载次数: 102)




点评

楼主加油,眼睛看对简单的CM程序很有效,然而复杂一点我就WTF了……期待新版FKVMP的出现……  发表于 2017-7-10 19:58

免费评分

参与人数 22威望 +2 吾爱币 +34 热心值 +21 收起 理由
52_pojie_52 + 1 + 1 我很赞同!
vking + 1 + 1 谢谢@Thanks!
long7854874 + 1 + 1 收藏了,虽然看不到,但是辛苦!!!
swx5201314 + 1 + 1 谢谢@Thanks!
海盗小K + 1 + 1 我很赞同!
z372100 + 1 + 1 用心讨论,共获提升!
malong213 + 1 谢谢@Thanks!
lyly125 + 1 + 1 用心讨论,共获提升!
天山白雪晴 + 1 + 1 我很赞同!
名字啪啪 + 2 + 2 我很赞同!
ancuicui + 1 我很赞同!
铅笔刀 + 2 用心讨论,共获提升!
YsGer + 1 + 1 我很赞同!
Hmily + 2 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bester + 1 + 1 已答复!
MXWXZ + 2 + 1 高质量的文章!
SharsDela + 1 + 1 加精啊!!!!
夏雨微凉 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zz048xx + 1 + 1 用心讨论,共获提升!
onexiao + 1 + 1 用心讨论,共获提升!
syfsong + 2 + 1 用心讨论,共获提升!
温柔xxx + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 材鸟 发表于 2017-7-10 22:10 来自手机
SharsDela 发表于 2017-7-10 19:40
学习了~~多谢,期待下一贴~
有cmp不过并不是比较这是看出来的~~还是试出来的~~

筛选请看例一的原文,cmp是比较一个固定值。例二后续在附件word,懒得贴。自行下载!例二的cmp并没有被vm,得到结果后会继续进入vm的!也就是说可以在vm外改,也可以在vm内改。随意
SharsDela 发表于 2017-7-11 00:55
材鸟 发表于 2017-7-10 22:10
筛选请看例一的原文,cmp是比较一个固定值。例二后续在附件word,懒得贴。自行下载!例二的cmp并没有被vm ...

text edx,0x3  也就易语言能用~~
下载word附件去~~
无敌猪猪侠 发表于 2017-7-10 16:10 来自手机
peterq521 发表于 2017-7-10 16:22
好复杂 假装能看懂的样子
m0216 发表于 2017-7-10 16:23
完全看不懂的样子   
非寒 发表于 2017-7-10 16:34
来跟楼主学习下,谢谢分享
qdkfc 发表于 2017-7-10 16:41
进来凑热闹嘀
头像被屏蔽
大象无形 发表于 2017-7-10 16:44
提示: 作者被禁止或删除 内容自动屏蔽
bobwuai 发表于 2017-7-10 16:59
虽然看不懂,还是支持一下
温柔xxx 发表于 2017-7-10 17:03
看不懂 帮顶!!!
heavy_fire 发表于 2017-7-10 17:03
不明觉厉,假装学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-21 20:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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