首页
社区
课程
招聘
[原创]关于滴水的VT调试器
发表于: 2009-8-19 22:34 350477

[原创]关于滴水的VT调试器

2009-8-19 22:34
350477
收藏
免费 9
支持
分享
最新回复 (295)
雪    币: 193
活跃值: (26)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
26
买了个专业的在耍!还是有很多BUG要修正的.
2009-8-20 17:40
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
太复杂了只能膜拜
2009-8-20 18:53
0
雪    币: 362
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
28
我是过来膜拜的
2009-8-21 09:43
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
29
跟风膜拜 。
如果对游戏产生危胁了,开发商们应该会很快研究对策吧
2009-8-21 11:50
0
雪    币: 1053
活跃值: (1253)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
拜一下! 留个名!
2009-8-21 15:00
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
楼主说的很明白了。谢谢
2009-8-21 16:13
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
ANTI 就得猥琐 非常的猥琐
2009-8-21 19:48
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
33
嗯,等待你的Anti以及海风的SOD~
2009-8-21 23:24
0
雪    币: 129
活跃值: (53)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
34
学习了 VT最近很火
2009-8-21 23:58
0
雪    币: 152
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
还不如直接去破外挂
2009-8-22 08:22
0
雪    币: 245
活跃值: (32)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
36
最后,我自己YY一下,VT技术本身不是用来调试的,未来Intel公司有可能加入检测VMX模式的功能?这样VT调试器的反ANTI功能直接就没有意义了。


这个才是最重要的
2009-8-23 18:22
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
[QUOTE未来Intel公司有可能加入检测VMX模式的功能][/QUOTE]
这个我觉得不太可能,Intel和AMD在Virtualization的设计上都是尽量隐藏虚拟机的存在(比如说可以Intercept CPUID,AMD 的还可以在tsc上加Offset等等)不管是程序有意的检测,还是无意地依赖于真实机器的某些特性,这样使得软件有更好的兼容性,并且实现更简单。
有时候是需要让虚拟机内运行的系统了解自己处在虚拟环境中,然后对操作进行优化(MS所谓的Enlightenment什么的),这时我认为最好的选择是使用CPUID(HyperV就是这么做的),而不是一个新的指令,这样既没有兼容性问题,又把选择的权利交给的实现虚拟机的软件,具有灵活性
2009-8-23 19:26
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
期待strongod更强大,更邪恶
2009-8-23 20:45
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
39
这个只是我自己YY一下而已,不必较真
就比如,上个世纪就出现虚拟化技术了,但是10年前你敢肯定intel不会开发硬件虚拟化技术(VT)吗?

我的猜测基于点是这个技术本身的根本目的不是调试,更何况,调试的根本目的是找BUG,而不是对付反调试。有调试技术,就必然有反调试技术。万能工具是不存在的
2009-8-24 12:31
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
顶,说的非常可观,其实看了IA64-32手册里对vmm的描述就大概能明白关键的几个技术点了
不过最后对于anti的展望会不会实现就8知道了。。至少在ia手册里intel的描述是对于某些特权指令为什么会触发vm exit,其目的就在于防治guest os通过这些指令来发现自己处于vmx no-root模式或者发现vt已经开启。。
2009-8-24 15:59
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
41
兄弟你没理解VT技术,特殊指令引发vm exit,不是因为怕被guest os知道,而是为了减少模拟这些指令带来的性能消耗

只不过是表象给大家看到的是guest os的一举一动都被监视着,可以篡改结果而已

人家INTEL的目的不是你想象的那样
2009-8-24 16:15
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
42
也许是我文章说得不够清楚,没有生动的例子吧
2009-8-24 16:16
0
雪    币: 432
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
说的很清楚,不过目前希望能出个vm模拟  模拟现实机器的cpuid biosid 硬盘id 网卡macid这些硬件条件~
2009-8-24 17:46
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
  不知道本论坛有没有INTEL的硬件工程师
2009-8-24 19:08
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
45
你在vmware里面安装不就行了。。
2009-8-24 20:26
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
恩,vm exit的主要用途肯定是你说的这个,毕竟intel不会因为调试而专门去开发VT技术,但是ia32手册的这句话令人深思。。
There is no software-visible bit whose setting indicates whether a logical processor is in VMX non-root operation. This fact may allow a VMM to prevent guest software from determining that it is running in a virtual machine.

Intel心里清楚。。至于它目的是啥样,哈哈,就不得而知了
2009-8-25 10:17
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
47
如果他的目的是调试,为什么不占领这个市场呢?
我只是YY一下未来而已,我承认说目前没有非常有效直接的方法去发现VMM。何必硬是要灌输给大家一个思路:VT不可能被发现。

猥琐的方法很容易发现VT(这里我不公开,等你们的调试器大范围使用的时候,我免费送给网游公司)

但是未来,即使Intel没提供这个方法,也是有办法来anti VT的,我拿游戏保护系统举例。

硬件发展速度非常快,不久的将来,大家的CPU肯定都支持VT。
那么游戏保护系统可以强行要求自己的VMM运行于VMX root状态,否则游戏不运行。VT调试器除非自己模拟的VT部分,否则肯定用不起来,一旦自己模拟了VT部分,效率,性能肯定大打折扣,到时候又可以从效率角度去anti了。

未来,这种策略,像nProtect这样的流氓保护系统,未必不会使用。
2009-8-25 10:39
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
额,我不是做vt调试器的
不过你后面的那种思路真的很imba,哈哈
2009-8-25 10:48
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
49
世上本没有anti,debug的人多了,自然就出现了anti
2009-8-25 10:50
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
硬件发展速度非常快,不久的将来,大家的CPU肯定都支持VT。
那么游戏保护系统可以强行要求自己的VMM运行于VMX root状态,否则游戏不运行。VT调试器除非自己模拟的VT部分,否则肯定用不起来,一旦自己模拟了VT部分,效率,性能肯定大打折扣,到时候又可以从效率角度去anti了。

大家的CPU都支持VT,我看路还比较长,不过对于玩高端游戏的机子来说应该差不多,网游的话。。。软件公司是不太敢冒着不兼容的风险做这种事的,因为不兼容意味着会失去一定的市场

让自己作为VMM运行起来,正常和非正常的机子效率区别不是特别大,在一个VM里出一次VM大概要上千时钟周期,而在嵌套的VM里大概需要2倍时间,所以要能在正常机子里运行也不能进出VM太多,不太能够区分正常和非正常

这张示意图是从BluePill的介绍文档里弄来的。其实是把本来兄弟关系的两个VM虚拟成了父子关系
我认为尝试拖垮的最好方法不是把自己变成VMM,而是多运行些会出VM的指令,这些指令在正常情况下只要几十或者上百个周期,运行在VM里则至少需要上千个周期。
不过这些对调试的障碍貌似有限。

以下是老外认为的可以检测rootkit的途径,应该更加适用于检测基于VMM的调试器,因为调试器改变程序正常流程的现象更明显
Popek and Goldberg properties for VMM are:
Efficiency
Resource control
Equivalence
Equivalence “implies that any program executing on a virtual machine must behave in a manner identical to the way it would have behaved when running directly on the native hardware” [1]
SVM/VT-x rootkits are only theoretically ‘undetectable’ because the equivalence principle is not fully respected in the hardware virtualization extensions
There are computer resources that hypervisor has not full control:
TLB (partially)
Branch prediction
SMP processing
上传的附件:
  • 1.PNG (51.17kb,640次下载)
2009-8-25 12:56
0
游客
登录 | 注册 方可回帖
返回
//