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壳+修复+优化软件。
实属惭愧,望各位海涵。
打赏我,让我更有动力~
The attachment is hidden and you need to reply to the topic before it becomes visible.
catgames
发表于 2018-7-3
CatGames.cn
评论列表
加载数据中...
2284163660
发表于 2018-7-4
emmm,vmware不是用来测试病毒的吗?
评论列表
加载数据中...
defeatempty
发表于 2018-7-12
你有你的社会录语
我有我的五香瓜子
不是很多但是够磕
安排!
你看你的小说
我学我的习
虽然枯燥
但是快乐
安排!
你有你的wi-fi
我有我的流量
不是很卡
但是很贵
安排!
评论列表
加载数据中...
2024262691
发表于 2019-8-27
jh
评论列表
加载数据中...