自己制做绿色版VirtualBox

Windows软件的安装过程一般都是双击setup.msi或者setup.exe来完成。

在安装的过程中主要就是:解压或复制文件到安装目录,注册程序组件,添加注册表项,安装系统驱动等。

理论上只有解压就能运行的程序,才叫绿色软件,需要写注册表,注册组件的都不算。

 

今天以VirtualBox V4.2.36版本为研究目标。

第一步还是正常安装程序,然后备份所有程序文件,再卸载程序。

第二步把备用文件放到工作目录,进行研究,先双击virtualBox.exe会提示严重错误:提示创建COM对象失败。

看到这个提示猜测是某些dll文件需要注册了,所以用regsvr32命令把所有的dll文件全部注册遍,

最后发现只有VBoxC.dll可以注册,其它文件都失败。

再运行主程序,还是一样的提示,看来还有遗漏的文件?可能是EXE文件,无法直接用regsvr32来注册。

只好通过解包安装程序了,查看一下安装包的安装过程来了解如果手动注册。

把VirtualBox.exe用7zip解开可以看到里面有3个文件,2个msi文件和1个cab文件。

解包后:这两个msi一个是32位,另一个是64位系统的安装程序,cab文件在安装时需要重命名为common.cab。

对于msi文件,可以用Orca来反编译,查找它的Registry表项的内容,就是我们绿化软件时需要用到的注册表。

而这些注册表项,并不是全部都需要,一些文件关联的内容,我们并不需要。

只提取最重要的部分,那就是CLSID下面的内容。

如图所示,还好VirtualBox的注册表内容并不多,只有几十行。

而我们需要的只有CLSID相关的内容,这里面主要描述了两个组件,一个是VBoxC.dll和VBoxSVC.exe

VBoxC.dll的内容,其实通过regsvr32 Vboxc.dll就完成注册了,需要手动添加的就是VBoxSVC.exe而已。

手动添加了{B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F}下面的内容后,再次运行主程序,发现已经可以打开了。

启动虚拟机报错:

NtCreateFile(\Device\VBoxDrvStub) failed: 0xc0000034 STATUS_OBJECT_NAME_NOT_FOUND (0 retries) (rc=-101)

这个问题需要安装驱动来解决:VBoxDrv.sys,这个驱动的安装嘛,就使用DPInst.exe来完成就可以了。

 

最后总结一下:

VirtualBox并不是真正的绿色软件,只能通过手动添加注册表的方法,来实现类似绿色软件。

绿化方法:

#一、注册VBoxC.dll
regsvr32 VboxC.dll

#二、注册VBoxSVC.exe
#将下面的内容保存为.reg文件,导入注册表
#需要修改X:\PATH\VBoxSVC.exe为真实路径
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F}
@="VirtualBox Class"
"LocalServer32"="X:\PATH\VBoxSVC.exe"
"AppID"="{819B4D85-9CEE-493C-B6FC-64FFE759B3C9}"
"ProgID"="VirtualBox.VirtualBox.1"
"TypeLib"="{46137EEC-703B-4FE5-AFD4-7C9BBBBA0259}"
"VersionIndependentProgID"="VirtualBox.VirtualBox"

#三、安装驱动VBoxDrv.sys
将DPInst.exe放到驱动目录运行一下,自动完成

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值