首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

在所有可以找到的仿真器中,最流行的是DOSBoxBochs、微软Virtual PCVMware。它们各具特色、优点、缺点及喜好者社区。

3.3.1  DOSBox

DOSBox是一个提供源代码的免费软件仿真器。它只能够仿真一个操作系统,即MS-DOS 5.0,并且主要用于运行古老的游戏。它不仿真硬盘(以INT 21h结束的磁盘输入/输出仿真),而且SoftIce不能在该仿真器中运行。然而,Cup386(一个可执行文件的解压缩程序加上一个调试器)在其中运行得很好(如图3.3所示)。它还有一个不错的集成调试器(然而,如果使用它,就必须使用调试选项来重新编译该仿真器)。

在设计上就没有提供可扩展的可能性。然而,由于有结构优良的源代码可用,这并不是一个重要的问题。你可以随时地在这个仿真器中增加任何想要的功能(比如,可以实现一个虚拟硬盘)。

它支持三种仿真模式,即完全仿真、部分仿真和动态仿真。“完全”仿真的完整性是非常死板的(毕竟,SoftIce不能工作)。然而,对大多数程序来说,部分仿真就足够了。两种模式都具有足够的可靠性,而且摆脱仿真器的控制是几乎不可能的。然而,虚拟机的性能不够好,奔腾III 733 MHz处理器被仿真后降为13.17 MHz,处理器速度慢了50多倍。动态仿真模块在“真的”处理器上执行代码,仍处于编写阶段,当前的版本包含许多的错误,有些是严重的错误。因此,不推荐使用它,虽然它的速度快了4倍。

它通过直接访问CD-ROM或者将物理磁盘的目录装配为逻辑虚拟磁盘来与外部世界进行数据交换,通过INT 21h接口来获得仿真器的这些逻辑虚拟磁盘。这样能得到抵御有恶意的程序的可靠保护。这样的程序将破坏装配的目录,而不会破坏其他设备!

3.3  在仿真器DOSBox的控制中运行的调试器Cup386Cup386不能直接在Windows中运行)

DOSBox合进行大多数与MS-DOS病毒(可能除了那些需要INT 13中断或者输入/输出端口的病毒)及运行在实模式和保护模式中的破解程序有关的试验。

3.3.2  Bochs

Bochs是真正面向专业人士的仿真器,适合黑客使用。没有经验的用户会认为它太复杂。所有的配置都是通过文本配置文件来实现的,包括从数学处理器(据我所知,Bochs是惟一允许仿真多个处理器的仿真器)到虚拟磁盘设置的任何配置。

它虽然是一个带有源代码的非商业产品,但是它提高了令人印象深刻的仿真质量。硬盘和软盘集成电路设备(IDE)驱动器被仿真在输入/输出端口级,以确保能真正与所有的底层程序兼容。它能够完全地仿真处理器的保护模式。SoftIce(如图3.4所示)能够成功运行,尽管由于虚拟键盘时不时地不能工作导致其运行并不是十分稳定。它还提供了一个相当不错的集成调试器,该调试器可以使用无限多的虚拟断点,并能向后追踪函数。

令人遗憾的是,由于其极慢的仿真速度,不能在其上运行任何的图形系统。请你自己判断:我的奔腾III 733 MHz的实际时钟速度在其上降到了1.49 MHz。现在想一想它需要用多长时间才能启动Windows 2000

3.4  运行在仿真器Bochs控制中的MS-DOS会话中的调试器SoftIceBochs是从Windows中启动的

它的磁盘映像操作实现得非常笨拙。仅仅支持固定盘,而且映像还是使用第三方的附加工具来创建的。然而,它不允许直接访问物理磁盘。因此,当需要从虚拟机中输出多个文件时,就会出现问题。更糟糕的是,它不能使用快照(Bochs将快照解释为虚拟屏幕的拷贝,而不是虚拟机的状态)。

该仿真器适用于研究病毒、在MS-DOSLinux或者FreeBSD终端模式中调试出错的程序操作,以及进行与不同的文件系统相关的试验。

3.3.3  微软Virtual PC

这是一个十分不错的商业仿真器,它不提供源代码,但是保证了可以接受的仿真速度。它将奔腾III 733 MHz处理器仿真为奔腾III 187 MHz处理器(其动态仿真模式确保支持物理处理器的所有机器指令)。

该产品完全地仿真American Megatrends, Inc.AMI)公司的基本输入/输出系统(BIOS),并能使用BIOS配置程序来配置一个虚拟PC(如图3.5所示)。它还仿真了英特尔440BX芯片集、一块诸如创新公司的16ISA声霸卡之类的声音卡、一块DEC 21140A 10/100网卡,以及一块带有8 MB RAMS3 Trio 32/64 PCI视频卡。一般情况下,这是一种令人印象深刻的系统配置,可以满足运行Windows NT家族和带有X-Windows系统的FreeBSD这样的现代操作系统的需要。

3.5  微软Virtual PC仿真完整的PC,包括BIOS配置

该仿真器还提供了直接访问软盘和光盘的功能。硬盘被仿真为两个通道的IDE控制器级(参见440BX芯片集的文档)。磁盘映像动态地或者以固定虚拟映像文件的形式存放在硬盘上。如果需要的话,可以通过共享目录或者虚拟LAN来与宿主操作系统和其他虚拟机交互。从黑客的观点来看,这两种方法都不安全。因此,并不建议使用它们来进行与侵略性程序相关的试验。

令人遗憾的是,在该仿真器中启动SoftIce的任何企图都将导致虚拟机操作的非正常终止,仿真器随后显示一个错误信息(如图3.6所示)。它既没有内置的调试器,也不可能存储和恢复虚拟机的状态。所有的这些缺点都严重地限制了该仿真器的应用范围。如果这是一个免费软件,那么还可以推荐用于进行与文件系统相关的试验,以获取恢复被破坏的数据方面的经验。然而,这个仿真器实在是不值它的开发商为这个产品所要的价钱。

3.6  试图在微软Virtual PC中运行SoftIce所得的结果

3.3.4  VMware

虽然与其竞争者相比,VMware是值它的价格的,但它只不过是另一个商业仿真器而已。这是惟一的一个能够稳定地运行SoftIce(如图3.7所示)并与快照一起工作的仿真器。

3.7  运行于Windows 2000中的调试器SoftIce,该Windows 2000是用在Windows 2000中运行VMware仿真的。这可不是一种递归,只是一个很好的仿真器

怎么赞扬其仿真速度都不过分。奔腾III 733 MHz被仿真为奔腾III 336 MHz,即仅仅慢2倍却提供了对Phoenix BIOS 4.0、英特尔440BX芯片集和LSI LoficRLSI53C10xx Ultra160小型机算计接口(SCSI)输入/输出控制器(支持存储在固定映像文件中的虚拟SCSI磁盘)的完全仿真。如果愿意的话,它也可以支持IDE磁盘。然而,IDE磁盘的性能不知为何稍慢一些。

该仿真器很认真地设计了其虚拟网络,这可以让你进行网络蠕虫试验而不会对宿主计算机造成任何潜在的危险。该仿真器还提供了直接访问软盘和CD的功能,它也提供了具有可靠保护的共享目录。

VMware是一个多用途的仿真器,适用于进行游戏之外的任何试验,但不能保证在MS-DOS下的常规声音支持,而在其他仿真器中就没有这类问题。

虽然VMware提供了这么多的优点,但该仿真器并没有让其他的仿真器变得毫无用处。特别是对于那些具有内置调试器、提供有代码,以及允许无限扩展其功能的仿真器来说,它们还是有其用武之地的。因此,在仿真器的竞争中,并没有明显的赢家,只有友谊会赢!

3.3.5  仿真器特性汇总表

3.1  常见仿真器的主要特性(灰色部分表示缺点)

 

DOSBox

Bochs

微软Virtual PC

VMware

免费软件

提供源代码

能仿真的处理器数量

1

1248

1

1

在奔腾III 733中的有效时钟频率

13.17 MHz

1.49 MHz

189 MHz

336 MHz

可扩展性

部分

部分

支持动态处理器仿真

部分

虚拟硬盘

 

IDE,固定映像

IDE,动态和固定映像

IDE/SCSI,动态和固定映像

支持SoftIce

部分

集成的调试器

有,但要求重新编译

支持快照

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论