Virus 版 (精华区)
作 家: OrangeGun (Gunner) on board 'virus'
题 目: 泛谈虚拟机及其在反病毒技术中的应用(1/5)(转寄)
来 源: 哈尔滨紫丁香站
日 期: Mon Jun 2 13:37:36 1997
出 处: bbs@bbs.orange.sjtu.edu.cn
发信人: bluesea (蓝海), 信区: Virus
标 题: 泛谈虚拟机及其在反病毒技术中的应用(1/5)
发信站: BBS 水木清华站 (Sat May 24 00:39:21 1997)
泛谈虚拟机及其在反病毒技术中的应用(1/5)
“虚拟机”终于在病毒板露面了。可喜、可贺。本文作为泛谈,在一些基本
概念上多费了些笔墨,以期望照顾了对计算机反病毒感兴趣的非计算机专业的虫
虫。作为一家之言,谨供参考、批判。:P
虚拟机技术并不是一项全新的技术。我们经常遇到的虚拟机有很多。比如象
GWBasic这样的解释器、Microsoft Word的WordBasic宏解释器、JAVA虚拟机等等。
虚拟机的应用场合很多,它的主要作用是能够运行一定规则的描述语言。
我们说“虚拟”二字,有着两方面的含义:其一在于运行一定规则的描述语
言的机器并不一定是一台真实地以该语言为机器代码的计算机,比如JAVA想做到
跨平台兼容,那么每一种支持JAVA运行的计算机都要运行一个解释环境,这就是
JAVA虚拟机;另一个含义是运行对应规则描述语言的机器并不是该描述语言的原
设计机器,这种情况也称为仿真环境。比如Windows的MS-DOS Prompt就是工作在
V86 方式的一个虚拟机,虽然在V86方式,实x86指令的执行和在实地址方式非常
相似,但是Windows为MS-DOS程序提供了仿真的 ( 相对于物理1M以下内存是虚假
的)内存空间。
跨越计算机平台的虚拟机也有很多,比较典型的是在很多Unix下运行MS-DOS
或Windows程序的仿真器。在一台非WinTel计算机上运行 MS-DOS应用程序,首先
需要对MS-DOS应用程序所使用的x86指令进行解释执行,并要提供完整的仿真MS-
DOS中断、功能调用和绝大多数BIOS调用,并要解决MS-DOS 环境所使用的内存特
点。根据仿真的彻底程度不同,所获得的兼容性也是不同的。 如果要仿真 MS-
Windows 程序的运行环境,除了上述工作以外,基本上要完整地再做一份完全兼
容的 Windows API,并且会遇到DDE、OLE、DirectX 等类似的令人头疼的兼容性
问题。同时,仿真运行的程序必定是以比宿主计算机慢得多的速度来运行的。
因此,我们大致可以看到一个比较完整的虚拟机需要在很多的层次上做仿真,
总的来说是分为“描述仿真”和“环境仿真”两大块。最简单的仿真环境几乎不
能算是虚拟机:比如为了运行使用磁盘加密而制作的钥匙盘仿真驻留程序,它仅
仅做一些诸如修改Int13这样的小手段,而不(必)包括指令执行的“描述仿真”;
而象 Sourcer 这样的反汇编工具则是更注重指令解释, 而不必关心程序的运行
结果,因此在环境仿真上所做的工作要少得多。完整、复杂的虚拟机是几乎没有
尽头的,假想我们要在一台Unix计算机上运行一个看VCD的Windows 95程序, 或
是运行一个使用8259中断、8237DMA的程序……, 有些仿真在理论上是可以实现
的,有些则很可能行不通。所以,一个实用的虚拟机是根据需要和可能这两方面
的因素来构造的,要权衡时间/空间复杂度、仿真兼容性、 运行性能和代价等诸
多因素,根据实际情况来设计和实现。
--
扫除一切害人虫,全无敌...
m1m※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.94.2.26]m
--
※ 来源:·哈尔滨紫丁香站 bbs1.hit.edu.cn·[FROM: bbs@bbs.orange.sjtu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.565毫秒