小提示
★固定压缩是RAR、ACE文件存储时使用的一种特殊模式(ZIP不支持)。使用该模式进行文件压缩,当文件中有多个相同的文件时,只保留一份,而且会将所有的文件作为一个整体对待,这样压缩比自然能比普通模式大一些。
★当然这种压缩模式也有它的弊端:当你要更新使用该模式压缩的RAR包(例如往里面添加新的文件)、释放压缩包中的部分文件时,所耗费的时间比普通的压缩模式多得多,而且如果压缩包中的某个文件损坏,往往造成所有文件都无法释放。
3.使用最佳的字典文件:在“默认设置压缩选项”窗口中切换到“高级”选项卡,单击“压缩”按钮,在弹出窗口的“常规压缩栏”选择“字典文件”的大小为最大的“4096KB”(见图4),增加字典文件的大小会提高WinRAR的压缩率,不过会增加压缩时的系统资源占用及降低压缩的速度。
4.不使用恢复记录:在“默认设置压缩选项”窗口中确保不勾选“设置恢复记录”。
(Just Do It答案:在FAT32文件系统(小于32GB的分区)和NTFS文件系统中,一个簇为4K,也就是4096字节。所以,当压缩后文件占用空间小于这个数字时,都会占用4096字节空间。就算我们的文件中有5000个单词,原文件尺寸已经远远超过4096字节,由于数据格式的规律性非常强,字典中只有“压缩”这一个单词,所以压缩率非常高,就算有1万个单词,占用空间也不会超过4K。)
第6课:你真的用好WinRAR了吗?
■ 讲师:福建 柳坚
WinRAR虽然在国外一直没能取代WinZip的地位(看看国外软件下载站点的下载排行就知道了^_^),但在国内却是绝对的压缩软件霸主。很多朋友每天都要使用无数遍WinRAR来压缩、解压缩文件。不过且慢,在你“娴熟”的操作背后是否还有一些不为人知的技巧呢?第5课中我们已经介绍了在WinRAR中获得最高的压缩比的方法了,下面笔者再列举几个心得技巧。其实看似稀松平常的软件,里面包含的学问还挺多的。
实例1:在压缩文件的右键菜单中加入“解压至上一层文件夹”
在安装完WinRAR后,在压缩文件的右键菜单中会多出“释放文件”、“释放至这里”等菜单选项,但如果想将该压缩文件直接解压缩到上一层文件夹呢?
打开注册表编辑器,找[HKEY_CLASSES_ROOT
\*\shell],在其下新建一个“项”,命名为“解压至上一层文件夹”,再在“解压至上一层文件夹”项下新建一个名为“command”的项。
在右边窗口中单击“默认”,将其值修改为“C:\\Program Files\\WinRAR\\WinRAR.exe x -av- -o- -cfg- -ibck -ILOGrar.log -y \"%1\" ..\\”(其中所有字符均在英文状态下输入,如果你的WinRAR安装目录不是C:\Program Files\WinRAR,需做相应改动)。按F5刷新注册表并退出后,大家右击一个压缩文件就可以看到效果了(见图5)。
实例2:掌握rarfiles.lst文件中的“学问”,获得更高的压缩效率
在WinRAR的安装文件夹中,我们能够找到一个名为rarfiles.lst的文件。很多用户不知道这个文件到底有什么作用,下面就一起来看看其中到底有什么“秘密”。
在第5课中提到了采用“固定压缩”模式可以让WinRAR获得更高的压缩比。固实压缩文件是RAR的一种特殊压缩方式存储的压缩文件,它把压缩文件中的全部文件都当成一个连续数据流来看待。固实压缩文件只支持RAR、ACE格式的压缩文件,ZIP压缩文件永远是非固实的。分卷和自解压文件(SFX)也可以被做成固实格式。
一般说来,文件在固实压缩时是以其扩展名排序的,例如DOC文件就排列在TXT文件之前。但我们也可以使用特殊的文件来自行设定文件排列的顺序,这个文件便是rarfiles.lst。WinRAR已经提供了该文件,并且也排定了当固实压缩文件创建时的默认文件顺序,我们只要修改rarfiles.lst的文件列表便可以告诉WinRAR在添加文件到固实压缩文件时的排列顺序了。例如将包含相似信息的文件(即类似的文件)在压缩文件中归为一组,将需要频繁访问的文件放置在开始位置都可以有效地提高固实压缩率和压缩的速度。
rarfiles.lst文件的内容可以包含文件名、通配符和特别的项目——$default。下面是一个简单的示例:
file_id.diz
readme.*
*.doc
*.txt
*.exe
$default
*.mp3
*.rm
*.rar
从上面这个rarfiles.lst文件可以看到,如果按照默认的扩展名排序规则,可执行文件(*.exe)应该排列在文本文件(*.txt)之前,但通过修改rarfiles.lst,我们便按照自己的意愿将文本文件放在了靠前的位置。这对经常处理大量TXT文档的朋友会提高不少效率。
实例3:让自解压完成后顺序执行两个或多个EXE文件
先制作自解压文件,在WinRAR的“高级自解压选项”窗口中的“解压后运行”栏目中输入第一次需要执行的文件名,例如1.exe。
压缩完成后,用WinRAR打开刚生成的自解压文件,选择“命令→显示信息”,在注释框便可以在已经添加的“SETUP=1.exe”下面再加一行类似于“SETUP=2.exe”(见图6)。确认后,该自解压文件在释放后便会执行1.exe、2.exe两个文件了。
第7课:另类压缩——加壳压缩法和NTFS压缩
■ 讲师:北京 softer 盆盆
一、加壳压缩法
通常情况下我们使用WinZip、WinRAR等工具来压缩文件,不过对于Windows下的EXE、DLL文件,我们还可以采用对其加壳的办法达到压缩的目的。使用“加壳”这种方法压缩后的EXE、DLL文件不需要任何工具来解压,且拥有比较高的压缩比。为了让大家更清楚其中的原理,在实战之前我们首先来了解一些基本的常识。
1.什么是“壳”?
在自然界中,对壳这东西大家应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等。同样,在一些电脑软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是便于理解的命名方式。
2.“加壳”后的程序是如何运行的?
“加壳”其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,并在文件头中加入一段指令,告诉CPU怎样才能解压自己。加壳是由专门的加壳软件来实现的。当我们运行加了壳的程序时,用户执行的实际上是这个外壳程序,而这个外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交还给解开后的真正的程序。由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,只要执行起来没有变化就好。
有些人可能会担心这些解压缩的工作会给程序带来额外的运行时间,但实际上所有的可执行文件都要读到内存中去执行,文件小了,从计算机硬盘上读到内存的时间自然也少了,两下相抵,实际上用户并不会感觉程序慢了多少。
3.什么情况下可以对程序加壳来减少它的体积呢?
首先它必须要是一个可执行文件(EXE、COM、SCR)或DLL、OCX文件,然后要保证它是一个独立的文件,而不是一个文件包或者压缩包。例如我们常用到一些软件虽然它的安装程序也是EXE,但由于它是一个文件压缩包,运行后会调用Windows Installer,所以不能对它进行加壳压缩,即使能够完成加壳过程,所获得的程序执行时会发生错误。
实例:压缩QQ安装目录
很多朋友将QQ、Foxmail等常用软件放到U盘中随身携带,我们可以利用“加壳”的方法将这些软件的安装目录“减肥”,以使U盘中容纳更多的文件。加壳压缩后跟压缩前的使用完全一样,步骤如下:
首先选择一个加壳工具,这里选用的是UPX,下载安装后运行UPX,软件主界面(见图7)。
切换到“选项”标签,单击“多文件压缩”按钮打开“多文件压缩”窗口,这里可以对多个文件进行批量压缩,单击“浏览”按钮,选择QQ的安装目录。
在下拉列表中选择“*.dll(动态链接库)”,单击“扫描”按钮对整个目录进行扫描,这时候UPX会列出QQ安装目录中的所有DLL文件,单击“压缩”按钮即可开始加壳过程(见图8)。由于压缩的文件比较多,所以需要大家耐心等待。
再选择下拉列表中的“*.exe(可执行文件)”,同样依次单击“扫描”、“压缩”,再对QQ安装目录中的EXE文件进行加壳压缩。压缩完毕后查看QQ安装目录的属性,发现文件大小已经由原来的20.8MB压缩为11.7MB,减小了将近一半!