【逆向】实战VMProtect 3.X,绕过虚拟机检测

catgames   ·   发表于 2018-7-3   ·   技术文章投稿区

Hello,各位社区的小伙伴大家好,我是CatGames.初来乍到,多多关照。

VMProtect,我相信大家知道,这是四大强壳之一,也有很多小伙伴非常的畏惧VMP,为什么呢,因为VMP他的虚拟保护,还有代码的虚拟化,更加加大了各位Cracker的破解难度,代码的混淆,虚拟化,都是特别恶心人的地方,如果再加上虚拟工具的检测(虚拟机WMware)那就难上加难,雪上加霜了,但是啊,不要紧,我给大家分享一个小方法,可以绕过虚拟机的检测,那么接下来就看我的实战吧。


1.首先需要下载一个游戏辅助,带有虚拟机检测的,或者你自己加壳也可以。

我们先放到虚拟机看看,啥情况,Sorry,this application cannot run under a Virtual Machine.有的小伙伴会问,哎呀,这是什么东西,以前都没有见过呀?这句话的意思是:对不起,这个程序不要在虚拟机中运行。反正你就知道这个就是不能在虚拟机中运行。有的小伙伴说,不能在虚拟机中运行,我头铁,静态调试行不行?Sure~当然可以,但是你要知道 OD是一个动态调试工具,如果静态调试,等于抹杀掉了OD的特性,IDA PRO 和 OD 被称为倚天剑和屠龙刀,各有各的特性。所以我们要充分利用这些特性来逆向我们的程序。


2.载入OD

这呢,就是被VM过的入口啦!

VMP特点就是把程序跑到虚拟地址里面 进行分析 加减运算 通过一些算法 处理 然后再还原到一个入口地址。

我们不用管这个,接着看!~耐心点哦!



3.VMP虚拟机检测的原理(针对3.0以上的VMP壳)

(VMP3.x 以上的版本的壳代码引入了一个标志位数值 Flags, 根据这个Flags值的位执行对应的事情。 
比如:
and 2 = 2 表示检测用户层调试器

and 4 = 4 表示检测内核调试器

and 10 = 10 表示检测虚拟机

只要将这个值修改为0,调试器和虚拟机检测甚至内存校验,文件校验都直接bypass.  ( ps: 写了这么多壳代码就这么简单就过了:)
那么现在的问题是如何快速定位到这个值。这里介绍一种比较简单快速的方法,测试了几个程序都有效。)

这就是检测虚拟机的原理!



1. Ctrl+G搜索LocalAlloc.

 来到这里之后可以看到一个Push,细心的人可能已经看到了,这里是系统领空。

F2下一个断点,运行之后程序会被断下来。

接下来就在堆栈窗口右键查找地址-搜索HEX地址00400000

来到这里之后可以看到有两个00400000

找到第二个下面的0000001F修改这个数值。

全部修改为0

点击确定之后,跑程序,就会有惊喜哦。

现在我们已经绕过了VMP的虚拟机检测啦,其实绕过虚拟机检测的方法特别的多,只是看你有没有心学习,和耐心的发现。

本人也是一个萌新,希望各位大牛或者社区的小伙伴多多关照,如果有讲的不对,或者不到位的地方,方可在评论区提出来,CatGames以后会带来更多的关于逆向的帖子,本来也是刚接触逆向不就,实属惭愧,望各位海涵!

本人的个人网站:CatGames.cn 有兴趣去下载一下,关于逆向的资料,大部分都是CatGames的原创,还有制作表情包,在线听歌,什么歌曲都有的诶!

第一次发帖,比较紧张,下一次来一个重头戏:

手脱VMP壳+修复+优化软件。

实属惭愧,望各位海涵。   

打赏我,让我更有动力~

4 Reply   |  Until 2019-8-27 | 5446 View

catgames
发表于 2018-7-3

CatGames.cn

评论列表

  • 加载数据中...

编写评论内容

2284163660
发表于 2018-7-4

emmm,vmware不是用来测试病毒的吗?


评论列表

  • 加载数据中...

编写评论内容

defeatempty
发表于 2018-7-12

 你有你的社会录语 

我有我的五香瓜子 

不是很多但是够磕 

安排! 

你看你的小说 

我学我的习 

虽然枯燥 

但是快乐 

安排! 

你有你的wi-fi 

我有我的流量 

不是很卡 

但是很贵 

安排! 

评论列表

  • 加载数据中...

编写评论内容

2024262691
发表于 2019-8-27

jh

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content
返回顶部

掌控者 © 2016. All Rights Reserved. 掌控者

Powered by 掌控者 Version 2.1.3