我见过像magicdisc 这样的程序创建虚拟CD 驱动器并将它们安装在机器上。这些程序如何欺骗操作系统,使其认为附加了一个新的硬件设备?
我想我必须为虚拟硬件编写一个驱动程序,而且我在 C 语言中很舒服,所以这听起来并不可怕,但是我如何让操作系统认为有一块硬件连接到它不是?
谢谢!
通常操作系统有不同的层和库,在某些时候有一个库位于它上面的东西和实际硬件之间,你在那里伪造它,如果有某种读取扇区调用,你假装使用读取扇区该扇区地址,从文件中读取它,无论如何。每个操作系统(windows、linux 等)可能以不同的方式做事。
可能您熟悉 C 作为应用程序级别,它高于操作系统。虚拟驱动程序是一个软件,但需要在适当的位置写入设置:Windows 下的注册表,某些 Linux 下的一些配置文件。您需要在内核级别处理操作系统级别的调用和回调。比您希望该软件也能与您的设备通信,可能集成到 OS Shell 中。如果不是 3 层或更多层,则至少有 2 层。
例如windows xp你可以制作一个虚拟显卡(并拦截各种东西),对于Vista不是,只是有一个技巧:)
它是非常特定于操作系统的。