游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7768|回复: 12

靠程序自己,是否根本无法判断出自己是否在虚拟机中运

[复制链接]

14

主题

77

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2009-4-11 16:16:00 | 显示全部楼层 |阅读模式
前提是程序不知道关于这个虚拟机的任何信息,机器也没有任何直接提供该方面信息的方法。我觉得程序根本无从判断。

我之所以问这个奇怪问题,就是因为有点闲得慌了。

如果我们这个世界是虚拟的,那么,是否依靠我们自身,根本无法证明或者否定这一论断?

在没有外力作用的情况下,我们都只能随着这个大虚拟机的时钟毫无知觉地慢慢往前走,甚至连它隔三差五的停机维护都察觉不到。 [em19]

1

主题

106

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2009-4-11 16:24:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

是的
不识庐山真面目,只缘身在此山中

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2009-4-12 07:44:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

vmware有相关sdk。印象里是内存的固定地址的某几个字节和正常主机不同。
另外,现在做虚拟机的公司太多,每家都不同,全兼容的话,很麻烦。

1

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2009-4-14 12:17:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

不是哦,应该是有办法的,我记得有很多壳是可以反虚拟机的,比如themida,为一个程序加这种壳的时候可以选择是否反虚拟机(如vmware),具体是怎么实现的我也不清楚,不过这算是另一个领域的知识了吧

2

主题

50

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2009-4-17 11:53:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

嗯,单靠程序是没办法知道的

就像楼上说的themida,也是得靠别的程序分析完虚拟机之后,发现虚拟机的bug或者后门才能知道

如果这个世界是虚拟的,除非有人能突破这个虚拟机,到外面找到这个世界的后门……

这可能就不是人力所能及的了。

3

主题

263

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2009-4-17 17:53:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

the matrix... <黑客帝国>..
程序员该看的.哈哈

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-3 04:03:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

如果能够判断出来,也就是能够认识到外界世界,那么,那个世界不就是我们这个世界吗(因为我们能认识到)?

引自:http://aurasoul.mb2.jp/_tetsugaku/553.html

不过我也提出了一些反论,比如:小说中的世界,尽管我们能认识到,但那毕竟不是我们的世界。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-8 21:26:00 | 显示全部楼层

Re: Re:靠程序自己,是否根本无法判断出自己是否在虚拟

星光灿烂: Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中运行?

不是哦,应该是有办法的,我记得有很多壳是可以反虚拟机的,比如themida,为一个程序加这种壳的时候可以选择是否反虚拟机(如vmware),具体是怎么实现的我也不清楚,不过这算是另一个领域的知识了吧


的确可以判断出来,比如察看下硬件型号就可以了。
但是,这是一种“武断”,因为我们可以制造一个真实的电脑,硬件型号等和虚拟机一样!

就好比 StarForce 反虚拟光驱程序:
虽然可以根据硬件参数发现有虚拟光驱,但不敢肯定这是否是虚拟光驱。
于是就会让你把光盘放入另一台光驱中,而如果你没有其他光驱了,那么它就没办法了。
于是你就可以进入游戏了。

28

主题

433

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2009-6-2 22:26:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

StarForce 早不能 反虚拟光驱了~

1

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2009-7-31 15:32:00 | 显示全部楼层

Re:靠程序自己,是否根本无法判断出自己是否在虚拟机中

只在虚拟系统中,很难说有没有什么办法。
VM有个通信后门,开在IO端口的0x5658(VX),程序可以通过判断这个后门,来发现自己是否运行在虚拟机中。
但是后门是怎么发现的,后门还是用OD调试,通过监测虚拟系统与原系统之间的通信发现的,这个就是个前提,你必须知道还有一个世界的存在,才可以去调试。但是虚拟系统中的程序或者程序员,在不接触原系统的情况下,怎么去发现这个外面的世界,就和人类能不能发现通向另一个世界的门一样难以想象了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-6 07:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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