能力值:
( LV9,RANK:210 )
26 楼
买了个专业的在耍!还是有很多BUG要修正的.
能力值:
( LV2,RANK:10 )
27 楼
太复杂了只能膜拜
能力值:
( LV7,RANK:100 )
28 楼
我是过来膜拜的
能力值:
( LV4,RANK:50 )
29 楼
跟风膜拜 。
如果对游戏产生危胁了,开发商们应该会很快研究对策吧
能力值:
( LV2,RANK:10 )
30 楼
拜一下! 留个名!
能力值:
( LV2,RANK:10 )
31 楼
楼主说的很明白了。谢谢
能力值:
( LV2,RANK:10 )
32 楼
ANTI 就得猥琐 非常的猥琐
能力值:
( LV8,RANK:130 )
33 楼
嗯,等待你的Anti以及海风的SOD~
能力值:
( LV9,RANK:220 )
34 楼
学习了 VT最近很火
能力值:
( LV2,RANK:10 )
35 楼
还不如直接去破外挂
能力值:
( LV7,RANK:100 )
36 楼
最后,我自己YY一下,VT技术本身不是用来调试的,未来Intel公司有可能加入检测VMX模式的功能?这样VT调试器的反ANTI功能直接就没有意义了。
这个才是最重要的
能力值:
( LV2,RANK:10 )
37 楼
[QUOTE未来Intel公司有可能加入检测VMX模式的功能][/QUOTE]
这个我觉得不太可能,Intel和AMD在Virtualization的设计上都是尽量隐藏虚拟机的存在(比如说可以Intercept CPUID,AMD 的还可以在tsc上加Offset等等)不管是程序有意的检测,还是无意地依赖于真实机器的某些特性,这样使得软件有更好的兼容性,并且实现更简单。
有时候是需要让虚拟机内运行的系统了解自己处在虚拟环境中,然后对操作进行优化(MS所谓的Enlightenment什么的),这时我认为最好的选择是使用CPUID(HyperV就是这么做的),而不是一个新的指令,这样既没有兼容性问题,又把选择的权利交给的实现虚拟机的软件,具有灵活性
能力值:
( LV2,RANK:10 )
38 楼
期待strongod更强大,更邪恶
能力值:
(RANK:1130 )
39 楼
这个只是我自己YY一下而已,不必较真
就比如,上个世纪就出现虚拟化技术了,但是10年前你敢肯定intel不会开发硬件虚拟化技术(VT)吗?
我的猜测基于点是这个技术本身的根本目的不是调试,更何况,调试的根本目的是找BUG,而不是对付反调试。有调试技术,就必然有反调试技术。万能工具是不存在的
能力值:
( LV2,RANK:10 )
40 楼
顶,说的非常可观,其实看了IA64-32手册里对vmm的描述就大概能明白关键的几个技术点了
不过最后对于anti的展望会不会实现就8知道了。。至少在ia手册里intel的描述是对于某些特权指令为什么会触发vm exit,其目的就在于防治guest os通过这些指令来发现自己处于vmx no-root模式或者发现vt已经开启。。
能力值:
(RANK:1130 )
41 楼
兄弟你没理解VT技术,特殊指令引发vm exit,不是因为怕被guest os知道,而是为了减少模拟这些指令带来的性能消耗
只不过是表象给大家看到的是guest os的一举一动都被监视着,可以篡改结果而已
人家INTEL的目的不是你想象的那样
能力值:
(RANK:1130 )
42 楼
也许是我文章说得不够清楚,没有生动的例子吧
能力值:
( LV2,RANK:10 )
43 楼
说的很清楚,不过目前希望能出个vm模拟 模拟现实机器的cpuid biosid 硬盘id 网卡macid这些硬件条件~
能力值:
( LV2,RANK:10 )
44 楼
不知道本论坛有没有INTEL的硬件工程师
能力值:
(RANK:1130 )
45 楼
你在vmware里面安装不就行了。。
能力值:
( 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心里清楚。。至于它目的是啥样,哈哈,就不得而知了
能力值:
(RANK:1130 )
47 楼
如果他的目的是调试,为什么不占领这个市场呢?
我只是YY一下未来而已,我承认说目前没有非常有效直接的方法去发现VMM。何必硬是要灌输给大家一个思路:VT不可能被发现。
猥琐的方法很容易发现VT(这里我不公开,等你们的调试器大范围使用的时候,我免费送给网游公司)
但是未来,即使Intel没提供这个方法,也是有办法来anti VT的,我拿游戏保护系统举例。
硬件发展速度非常快,不久的将来,大家的CPU肯定都支持VT。
那么游戏保护系统可以强行要求自己的VMM运行于VMX root状态,否则游戏不运行。VT调试器除非自己模拟的VT部分,否则肯定用不起来,一旦自己模拟了VT部分,效率,性能肯定大打折扣,到时候又可以从效率角度去anti了。
未来,这种策略,像nProtect这样的流氓保护系统,未必不会使用。
能力值:
( LV2,RANK:10 )
48 楼
额,我不是做vt调试器的
不过你后面的那种思路真的很imba,哈哈
能力值:
(RANK:1130 )
49 楼
世上本没有anti,debug的人多了,自然就出现了anti
能力值:
( 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
上传的附件: