发新话题
打印

[转帖] 绿化教程:揭开金山毒霸2008单文件版的面纱

绿化教程:揭开金山毒霸2008单文件版的面纱

一、单文件版软件分类

  1、第一类:软件本身只需一个主程序就可以正常运行和使用。暂且命名为:原创型单文件版

  2、第二类:将程序的多个文件用打包工具整合成一个程序。暂且命名为:DIY型单文件版

  这只是偶的一种理解,用自己的观点表述,不是专业人士的术语,请不要在用词上跟偶计较。或许还是一头雾水,虫虫说这些做什么呢?

  实际上,偶的意图是想引导大家明白,单文件版软件的来由而已,当然知道这个对我们下面要说的解剖是很有必要的。



二、常用DIY型单文件版制作工具。

  DIY型单文件版软件制作工具有WinRAR、FilePacker、MoleBoxPRO等等,虫虫常用的是装机必备的WINRAR,菜鸟自然就会问了:WINRAR不是压缩和解压缩工具吗,怎么可以制作单文件?没错,网上有具体的制作教程,这里不再赘述。虫虫想说的是:在实践过程中,偶只发现WINRAR制作的单文件版软件运行都是正常的,其他所谓的工具都有一定的缺陷,经常会导致单文件版不能正常使用。所以向大家推荐使用WINRAR。



三、DIY型单文件版运行的秘密深藏也露

  稍专业一点说,应该是用什么原理制作DIY型单文件版。事实上,软件作者在编写程序时都会尽量保持程序代码的精练,尤其是一些DLL、OCX控件都是主程序正常运行的保证(当然不排除少数垃圾作者会捆绑大量强制安装的插件和流氓软件),如果缺少这些文件程序就会无法正常运行,因此,DIY型单文件版必须保留所有程序运行必需的文件。我们用WinRAR等工具制作单文件版,实质上就是将我们在正常安装产生的多个文件压缩在一起,当我们双击或打开这个DIY型单文件版软件时,在系统临时文件夹或某个其他位置会生成一个临时文件夹,所有文件解压释放到这个临时文件夹,然后文件中的大哥大即主程序运行。这就是一些体积稍大一点的DIY型单文件版软件启动速度比较慢,因为解压需要一定的时间。提醒一下大家,不单是WINRAR制作的单文件版是这样,用其他工具制作的也是一样。虫虫得出一个结论,不是什么软件都是单文件版就好,单文件版只是便于携带,节省硬盘空间或者是让一些菜菜避免混淆文件主程序而已,其他似乎也没什么可取之处了。。。。。一般情况,我们不提倡追求DIY型单文件版软件。



四、金山毒霸2008XX论坛单文件绿色版的深入解剖。

    这个才是我今天要说的正题,这个内容很早前就想写了,只是当时有个别地方自己还没搞明白,前几天与原创组的爱未来兄弟探讨一下,受益不少,现将有关内容作个注释,以便大家对批处理和单文件绿色版有更深入的认识。还是快点入题吧,不然这篇内容可能就变成如何制作单文件版的教程了。



1、金山毒霸2008单文件版?有可能只是一个主程序吗?答案当然是:不可能!还用说,大家都知道的嘛!不信的话,就选中程序,用鼠标右键看一下,是不是可以用WINRAR打开或解压缩?实际上这个单文件版里面有好多个文件。这就是偶为什么说WINRAR是制作单文件版常用的工具,用其他软件恐怕还真没办法做到!好了,运行金山毒霸2008单文件版,在%windir%\temp中找到批处理文件,内容如下

@echo off
if not exist c:\users goto XP
copy /y 金山毒霸2008.lnk %USERPROFILE%\Desktop
regsvr32 /s kissvc.dll
sc create kissvc type= own start= auto binpath= "C:\Kingsoft\KISSvc.EXE" displayname= "Kingsoft Internet Security Common Service"
net start kissvc && kav32.exe
goto end
:XP
SHORTCUT.EXE -f -t C:\KingSoft\KAV32.exe -n "%USERPROFILE%\桌面"\金山毒霸2008 -d .\
unrar e inkav.dll -p88888888 -o+
regedit /s kingsoft.reg
del /q kingsoft.reg
msvc80
kav32.exe
:end
unrar e unkav.dll -p88888888 -o+
regedit /s unkav.reg
del /q unkav.reg
start un_kav.exe
exit





2、下面逐句分析该批处理命令的作用
if not exist c:\users goto XP
::判断是否XP系统
================================
copy /y 金山毒霸2008.lnk %USERPROFILE%\Desktop
::复制金山毒霸2008.lnk到用户桌面
================================
regsvr32 /s kissvc.dll
::注册控件kissvc.dll
================================
sc create kissvc type= own start= auto binpath= "C:\Kingsoft\KISSvc.EXE" displayname= "Kingsoft Internet Security Common Service"
::为KISSvc.EXE建立一个服务,名为Kingsoft Internet Security Common Service
================================
net start kissvc && kav32.exe
::启动服务
================================
SHORTCUT.EXE -f -t C:\KingSoft\KAV32.exe -n "%USERPROFILE%\桌面"\金山毒霸2008 -d .\
::在桌面建立KAV32.exe的快捷方式金山毒霸2008
================================
unrar e inkav.dll -p88888888 -o+
::释放inkav.dll在当前目录 密码为:88888888 内含文件为kingsoft.reg
================================
regedit /s kingsoft.reg
::导入注册表文件kingsoft.reg
================================
del /q kingsoft.reg
::删除kingsoft.reg
================================
msvc80.exe
kav32.exe
::释放上述两个文件
================================
start un_kav.exe
::开始启动un_kav.exe,该文件实际是用WINRAR制作的自解压文件,内含一个编译为EXE格式的批处理,内容为:
@echo off
del /q "%USERPROFILE%"\桌面\金山毒霸2008.lnk
CD/D c:\
ren KingSoft KingSof$ && RMDIR /s /q C:\KingSof$
CD/D %USERPROFILE%\LocalS~1\Temp
del /q Un_KAV.bat
exit
::这段命令就是删除开始启动时创建的快捷方式、文件、文件夹和批处理本身
================================
unrar e unkav.dll -p88888888 -o+
::释放unkav.dll在当前目录 密码为:88888888 内含文件为unkav.reg
================================
del /q unkav.reg
::删除unkav.reg



    3、特别要提醒的地方:文件包中inkav.dll、unkav.dll、Un_KAV.exe均为压缩文件,作了伪装处理,修改扩展名为RAR即可看观察到详细内容,inkav.dll、unkav.dll原来是压缩文件,难怪偶当时怎么也不明白,为什么作者会用unrar命令解压.DLL文件呢!如果不是爱未来兄弟的提醒,这篇文章也就在这里夭折了!不怪人家啦,是作者实在太聪明了,竟然想出用DLL文件伪装压缩文件,高啊!虫虫太笨了,所以给蒙骗了!在文件包中还增加了几个原版金山毒霸中没有的文件:HIDECMD.EXE(批处理隐藏工具)、sc.exe(建立服务工具,这个似乎有点多余,系统本来就有了)、UnRAR.exe(解压命令行工具)、SHORTCUT.EXE(创建快捷方式工具)等。



    4、归纳地说,这个单文件版杀毒软件运行后实际上是隐藏解压缩,在导入注册表、注册DLL等相关的布置后启动了真正的主程序kav32.exe。关闭软件时,它又进行了一个启动时的反安装过程,达到了清除注册信息等作用。



    五、从解剖中得到的启发。

    掌握上述实例中的运行和关闭批处理命令的作用后,我们软件绿化爱好者来说是不是有所启发?杀毒软件可以制作成单文件版,不用说制作个绿色版就轻而易举了吧,虫虫不赞成大家盗用别人的成果,写这篇文章的本意只是为了提高绿化爱好者的水平而已,而且单文件版有它的弊端,就是对于稍大一点的软件而言,启动速度会比正常安装的慢,如果作者将软件设置了只读,那么升级或修改都不会保存,下次启动就是原来的设置。



    六、虫虫对绿化的观点。

    现时代来说,绿色软件的涵义应该是广义的,偶认为不捆绑垃圾软件或流氓插件,卸载时能干净不留残余就算是绿色软件了,除了DOS命令运行后可以不写入系统,不写注册表,WINDOW窗口下没有多少个软件能真正做到。或许有人会反问一句,那虫虫你还搞绿化干嘛呢?偶的目的有两个:1、清除垃圾捆绑或流氓插件;2、简化软件安装过程。

TOP

发新话题