分享

软件精简与绿化专题之实战篇

 木秀-- 2012-03-15

精简拼音加加3.10——去掉F10互联网搜索工具

拼音加加是拼音输入法中的经典作品之一,但其最新的3.10版本捆绑了名字为F10的互联网搜索工具,并且是强制安装,那么,如何才能删除这个讨厌的F10呢?下面将就如果删除F10搜索工具来简单说明软件精简的方法:
1、下载拼音加加的3.10 正式版,下载地址:http://family./down/200516/jjetup.rar
2、分析下载得到8.8M的JJSetup3.10.zip文件,解压缩到jj目录,文件列表如下:
InstMsiA.Exe
InstMsiW.Exe
JJPack.msi
JJSetup.Exe
JJSetup.Ini
InstMsiA.Exe 和InstMsiW.Exe用于在没有windows installer2.0的机器上安装该服务的,目前绝大多数正常使用的机器都已经有了这个服务,完全可以不考虑这2个文件。JJSetup.Ini是文本文件,JJSetup.Exe仅仅才110k,而JJPack.msi有5.5M大小,很明显这是一个基于windows installer 的安装程序包,所以只要研究JJPack.msi这个文件就可以了,
3、准备精简工具。
 这里我主要是用orca 和msidb2个工具来修改msi文件,MSI文件编辑器orca工具在微软提供的windows xp的sdk中,在sdk安装目录下寻找orca.msi,再安装这个orca.msi就可以了。msidb在windows xp的sdk的安装后的bin目录,文件名字为msidb.exe。sdk下载地址:http://www.microsoft.com/msdownload/platformsdk/sdkupdate
 4、运行orca.exe,选择file→open打开JJPack.msi文件,执行tools菜单的options命令,切换到database面板,勾选“Generate a unique Package Code each time a database is saved”(如图1),然后执行file菜单的Save as命令,把JJPack.msi文件另存为JJPackNoF10.msi文件,以后我们将要对这个JJPackNoF10.msi文件进行修改,而不影响原来的JJPack.msi文件。


 5、寻找F10.exe
 在orca的左侧栏选择File,执行CTRL+F命令查找F10.exe,记住Orca右边栏目中的File的值是_B7B624BDC2BD497F826470059753178F的字符串,而Component的值是C__B7B624BDC2BD497F826470059753178F的字符串。
 6、禁止msi文件安装f10.exe
 在orca的左侧栏选择FeatureComponents,执行CTRL+F命令查找刚才记录下来的Component的值“C__B7B624BDC2BD497F826470059753178F”,选中orca右侧栏中刚刚找到数据,点右键,执行Drop Row命令,然后执行File菜单的Save命令,保存刚才做的修改。
 7、获取拼音加加的安装文件并删除F10.exe文件
 在orca的左侧栏选择Media,记录右边的Cabinet的值“#_ED8F65B50BD54F4B6AEE1178B56AD1D3”,关闭orca。把msidb.exe复制到jj目录,然后在jj目录建立一个批处理文件getcabfiles.cmd,内容如下:
 msidb.exe -x _ED8F65B50BD54F4B6AEE1178B56AD1D3 -d JJPack.msi
 md files
 expand  _ED8F65B50BD54F4B6AEE1178B56AD1D3 -F:* files
 move /Y files\_B7B624BDC2BD497F826470059753178F .\
 第一行的命令表示从JJPack.msi中提取出_ED8F65B50BD54F4B6AEE1178B56AD1D3这个cab文件。其中_ED8F65B50BD54F4B6AEE1178B56AD1D3”是前面记录下来的Media 表中的Cabinet的值,不包括前面的#,JJPack.msi是未修改过的的拼音加加的msi安装包。
 第二行表示建立一个子目录叫做files
 第三行命令表示把拼音加加的“_ED8F65B50BD54F4B6AEE1178B56AD1D3”压缩包中的文件解压缩到了files子目录中。
 第四行命令表示把files目录中的“_B7B624BDC2BD497F826470059753178F”文件移动到jj目录下面,其中“_B7B624BDC2BD497F826470059753178F”是在第5步中寻找F10.exe时记录下的F10.exe的名字。如图2,很明显这个“_B7B624BDC2BD497F826470059753178F”就是F10.exe文件。


 8 把剩下的拼音加加的安装文件重新打包到Msi文件中
 打包安装文件可以使用软件出品的cabarc工具(下载地址:http://family./down/200516/cabsdk.exe),把cabarc.exe解压缩到jj目录,然后在这个目录新建一个批处理文件mknoF10msi.cmd,输入命令:
 del _ED8F65B50BD54F4B6AEE1178B56AD1D3
 cabarc.exe -m LZX:21 -r  N _ED8F65B50BD54F4B6AEE1178B56AD1D3 "files\*"
 msidb.exe -a _ED8F65B50BD54F4B6AEE1178B56AD1D3 -d JJPackNoF10.msi
 第一行命令表示删除从JJPack.msi中提取出_ED8F65B50BD54F4B6AEE1178B56AD1D3这个cab文件。
 第二行表示把目录files中的所有文件压缩到_ED8F65B50BD54F4B6AEE1178B56AD1D3这个文件中。
 第三行的命令表示把_ED8F65B50BD54F4B6AEE1178B56AD1D3这个cab文件加入到JJPackNoF10.msi文件中。
 9 安装测试
 精简后的软件已经不再包含F10工具且功能正常。这样就得到了原来的8.8M的拼音加加的精简版JJPackNoF10.msi(5.2M大小),这里面的精简主要是避免安装F10搜索工具,F10搜索工具仅仅几百k,减小的3M大小的主要是不再保留InstMsiA.Exe和InstMsiW.Exe。
...............................................

绿化vnn——让vnn彻底隐身

               
绿化软件的同时也是对软件重新打包的过程,我们可以修改软件的文件,使之具有原版软件所不一样的表现。
笔者单位和家里的PC都处在内网,没有公网的IP地址,所以笔者安装了VNN(Virtual Native Network),其可以为接入因特网的任意两台机器提供连通服务。VNN连通了的机器就像处于同一个局域网中一样,即使这些机器都不拥有公网地址,而都是处于私网内。通过VNN就可以借助互联网直接构建属于自己的“本地”网络。但vnn不运行的时候,vnn虚拟出来的网卡就会在系统托盘处显示一个小的图标说“网线没有接好”,占用了本来就很拥挤的系统托盘空间,并且更重要的是我不想要别人知道我在使用vnn,所以想要vnn的界面彻底从桌面上消失。因此我做了一个绿色版的vnn,同时使得网卡隐形。
下面我就来讲述如何制作绿色版本的vnn,同时用类似windows本身的隐藏设备的方法来让vnn彻底隐身,又不影响正常的功能。
1、下载vnn3.0(下载地址:http://family./down/200516/vnn.zip)并安装。
2、找出vnn虚拟网卡的驱动程序,打开设备管理器,在vnn的网卡设备上点击右键,选择属性,显示vnn虚拟网卡的属性对话框,察看驱动程序的详细信息,了解到vnn的驱动程序文件是vnnvnic.sys(如图3)。在windows目录下的inf目录的所有inf文件中,查找包含“vnnvnic.sys”字符串的inf文件,找到了包含vnnvnic.sys的oem5.inf文件,这就是vnn虚拟网卡驱动的inf文件。


3、把program file目录下的vnn目录复制到其它地方,例如I:\VNN,在vnn目录中建立driver子目录,将oem5.inf和vnnvnic.sys复制到这个子目录中,把oem5.inf改名为netVDev.inf,用文本编辑器打开netVDev.inf,搜索字符串“characteristics”,把“Characteristics = 0x1” 修改为“Characteristics = 0x9”,09就表示要隐藏网卡。
4、从控制面板的添加删除程序处卸载vnn Client 3.0
5、下载devcon.exe小工具(下载地址:http://family./down/200516/devcon.exe),把devcon.exe复制到driver目录,在driver目录新建一个批处理文件install.cmd用来安装vnn的虚拟网卡驱动,内容如下: 
devcon install netVDev.inf *VNN_VNIC
同时生成一个用于卸载vnn驱动批处理文件removevnn.cmd,内容如下:
devcon remove *VNN_VNIC
运行driver目录的install.cmd,这样就安装了一个隐藏的vnn网卡驱动,同时右下角的托盘里面也没有vnn虚拟网卡断线的图标了。
6、运行I:\VNN目录的VNNClientC.exe,填入申请的vnn的账号,并且把账号下面3个选项都选中(如图4)。这时候右下角的托盘的vnn的运行状态的图标,表示vnn网络已经联通。


7、让vnn以服务模式在后台运行。关闭运行的VNNClientC.exe,在I:\VNN目录建立批处理文件instsrv.cmd,内容如下:
VNNClientC.exe -install
执行这个批处理文件显示服务安装成功(如图5),然后在“我的电脑”右键选“管理”,在“服务和应用程序”选“服务”,双击其中的“VNN Client Service”,把“常规”选项的“启动类型”修改为“自动”,把“登陆”选项的“登陆身份”选“本地系统帐户”,并取消“允许服务与桌面交互”这个选项(如图6),最后点击“应用”和“确定”,重启即可。(可以用VNNClientC.exe -remove来删除vnn服务)
             
现在vnn就不会有“网线没有接好”提示了,所有的网络传输都在后台进行。通过这个例子,我们可以看到,绿化不仅仅可以使得软件的安装更加便捷,并且可以挖掘出新的功能。

--------------------------------------------------

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多