VirtualBox - 如何编写驱动程序/插件?

时间:2013-08-01 09:03:10

标签: c++ plugins driver virtualization virtualbox

我想编写自己的虚拟网卡驱动程序/插件,可以为VirtualBox中的虚拟机配置拦截传输和传出的数据包。
我在http://download.virtualbox.org/virtualbox/SDKRef.pdf找到了VirtualBox SDK的文档,但不幸的是它只描述了如何使用远程API来控制VM,而不是如何为VM本身编写自定义驱动程序或插件。

您是否知道本主题的任何文档或教程? 任何指针都非常苛刻。

更新:
我在VirtualBox的源代码中浏览过,发现了以下内容:https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp
是否没有用可编程方式编写此类功能的文档界面?

1 个答案:

答案 0 :(得分:0)

VMM中的网络处理(“虚拟机监视器”或“虚拟机管理程序”)通常由一个简单的接口完成,该接口“假装”成为朝向VM的网卡,并且是朝向网络的桥接或交换机类型接口。主机的网络连接。

我怀疑你无法轻易附加到它,并且几乎可以肯定它没有“SDK”接口 - 我没有使用VirtualBox,但我曾经使用过Xen Hypervisor(它是开源的) ,但即便如此,也没有简单的界面以有意义的方式拦截数据包。)

您最好的选择可能是在VMM提供的网桥或交换机接口的主机端实现此功能。大多数操作系统都有办法在本机端连接到网络流以用于防火墙。

(我还在等待SDK文档的下载 - 我认为服务器必须用一根湿字符串连接到互联网,因为自从我开始写这篇文章后我收到了40KB)