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放到驱动目录运行一下,自动完成

自己制做绿色版VirtualBox相关推荐

  1. 绿色版NVM安装与配置详细说明

    绿色版本(不需要安装,直接解压,然后配置环境变量等) 由于最初发布的nvm并不支持window,所以如果希望可以像在*nix上一样控制node的版本,有两种选择: nvm-windows nodist ...

  2. 系统清理工具(Wise Care 365)绿色版

    2019独角兽企业重金招聘Python工程师标准>>> Wise Care 365 具有强大的多分类"系统清理"功能模块,找准了您想要清理的垃圾或者冗余,安全性不 ...

  3. 图解eclipse+myeclipse完全绿色版制作过程

    现在在Java开发中,使用的开发工具大部分都是Eclipse,并且和Eclipse关系紧密的要数MyEclipse了,但是 MyEclipse是一个EXE可执行程序,对于没有安装Eclipse与MyE ...

  4. 安装、设置与启动MySql5.1.30绿色版的方法

    1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysql/5.1.html) 2.在 F 盘建立目录 ...

  5. android c/c++ eclipse 绿色版 环境的配置

    一:阅读前的准备条件 1:目的,android 高性能方面的开发 2:条件:liunx系统熟悉,c/c++ 熟悉,Java 熟悉,Eclipse 开发工具熟悉,JNI 调用方式熟悉,熟悉面向对象的程序 ...

  6. 添加绿色版UltraEdit到右键菜单

    添加绿色版UltraEdit到右键菜单 最近重新安装了系统,由于新下载的UltraEdit是绿色版本的,故在右键菜单中不会显示,用起来实在麻烦. 无奈之下,网上搜索出几个手动添加的办法,试用了下,感觉 ...

  7. mysql绿色版的应用5.7

    一.配置MySQL数据库 1.解压绿色版mysql,并改名为mysql5.7,如下图 对比一下下图5.6以前的版本,少data目录(存放数据)和my-default.ini文件(配置信息) 二.安装服 ...

  8. 绿色版mysql安装步骤

    绿色版mysql安装步骤 - johnnyhg - ITeye技术网站 绿色版mysql安装步骤 博客分类:Mysql MySQLSQL ServerC#CC++ 一.下载MySQL http://w ...

  9. 流氓软件彻底免疫程序 v2.2 绿色版

    流氓软件彻底免疫程序 v2.2 绿色版 转载于:https://blog.51cto.com/080720/102380

最新文章

  1. 上下定高 中间自适应_移动端布局上下固定中间自适应
  2. cygwin中安装软件
  3. 稀疏表示字典的显示(MATLAB实现代码)
  4. boost::describe模块实现console的测试程序
  5. Linux 终端操作之简明疾速指南(1)
  6. android - 常用知识点以及代码片段(不断更新)
  7. 机器学习算法之 logistic、Softmax 回归
  8. 钉钉如何调整组织架构_阿里调整组织架构:盒马升级为独立事业群,钉钉被划进阿里云丨钛快讯...
  9. libreoffice Error: source file could not be loaded
  10. DevExpress导出Excel样式设置
  11. 利用MO实现流场显示
  12. Java实现各种加密验证算法(MD5、SHA256、base64、pdkdf2、pdkdf2_sha256)
  13. 苹果邮箱格式_3个小工具,让PDF格式不仅能编辑还能转成word 、execl、 ppt
  14. FFmpeg 2 - ffplay、ffprobe、ffmpeg 命令使用
  15. canny检测的matlab,canny边缘测试及matlab实现
  16. 看我如何自制安全的远程控制工具
  17. java 面包屑_java面包屑导航怎么做
  18. Debian 10安装教程
  19. 程序员月入百万的真相!
  20. DNS错误不能上网怎么办 电脑dns错误修复方法

热门文章

  1. 7 Billion Humans橙色部分-
  2. win7系统备份还原软件_win7如何进入系统还原教程
  3. 让分子在PPT里“动”起来
  4. “gcc“ not found
  5. 告别“手抄报表” 锐捷网络RIIL引领南方医科大学南方医院数字运营
  6. [luogu p1088] 火星人
  7. linux mint 18虚拟机下设置1080P分辨率的方法
  8. modbus_tk库的使用和分析
  9. 数据湖数据仓库仓湖一体
  10. 世界级医学院校--哈佛医学院进修各大教学附属医院申请指南