返回列表 回复 发帖

安装程序 Repack 攻略 之 CAB 篇

某些情况下我们需要对软件的安装程序包进行修改,替换其中的部分文件,也就是所谓 Repack。
本文讨论采用.CAB压缩包的安装程序的拆解打包,主要是搜集工具,使用方法除了Install Shield的高版本描述稍多外,其他均为图形界面程序,所以描述相对简略,也没有截图(主要是因为我比较懒*^_^*)。
以下内容均系本人曰常实践(Repack过的软件有Symantec Ghost 7.5 中文版、Dr.eye 2005 专业版、智能狂拼III.3 专业版等),草草归纳,不当之处,敬请指正。
CAB 格式分类
·LZCAB 采用LZX编码压缩的CAB包,一般见于 Freeware
·MSCAB 微软格式的CAB包,常见于微软的程序,Symantec Ghost 7.5 安装程序也采用此格式。
·ISCAB InstallShield制作的安装包中使用,特征是同时存在一个.hdr文件
LZCAB 拆解
·解压
使用WinRAR即可解压
·压缩
使用CabPack打包,Compression Options选择 LZX
MSCAB 拆解
·解压
使用WinRAR即可解压
·压缩
使用CabPack打包,Compression Options选择 MSZIP
ISCAB 拆解
InstallShield 的数据包一般格式为 data1.cab,同时有一个 data1.hdr,用于描述文件分组定义,如果文件较多,还会存在一个 data2.cab ,实际上是分卷压缩包。
ISCAB 6.0 以下的版本可以使用 ZIPSCAN 解压,也可以使用 WinPack 进行文件的提取和替换、添加。
高版本的 ISCAB 可使用 InstallShield 中提供的命令行工具进行操作,以InstallShield X为例,安装InstallShield X后,从安装目录下的.\system中提取以下文件:
  1. ISCAB.exe
  2. ISTools.dll
  3. MediaBuild40.dll
复制代码
之后可以脱离 InstallShield 运行。
* 为省去安装 InstallShield 的麻烦,我已将提取的文件打包为 iscabX.zip 作为附件上传。
·首先要提取安装包结构信息,使用命令行
ISCAB data1.cab -lx -iCAB.INI
将信息输出到 CAB.INI 文件,大致如以下的格式:
  1. [ISCAB Info]
  2. Product=ISCAB
  3. Version=2.0
  4. [Dat Files]
  5. File1="Setup.dll"
复制代码
...
·如果要从包中移除某些文件或者替换文件(也要先移除,然后再重新加入),应编辑导出的 CAB.INI 文件,仅保留头部描述段([ISCAB Info])和要移除的文件描述(注意,文件所在的组描述应保留,如 [Dat Files]),将编辑后的文件另存为 DEL.INI,使用命令行
ISCAB data1.cab -r -iDEL.INI
·如果要向包中添加文件,应将相应文件放置在当前目录下,同时和 data1.cab 同目录下的 setup.inx,setup.ini 等文件都必须存在。编辑导出的 CAB.INI 文件,仅保留头部描述段([ISCAB Info])和要加入的文件描述(注意,文件所在的组描述应保留,如 [Dat Files]),将编辑后的文件另存为 ADD.INI,使用命令行
ISCAB data1.cab -a -iADD.INI
好了,安装文件打包完成了,就像“原装”的一样,简单吧?
感谢Baidu,Google,Dreams8给我这次机会!
还要感谢我的爸爸妈妈!
HOHO
感谢似水!其实,MSCAB的打包,可以也用Winace实现,或者系统自带的makecab实现,而且以上这些压缩算法都可以用Universal Extractor 来解包(其实是调用7Z的引擎)。
这也是打包工具?```

回复 3# 的帖子

InstallShield是著名的大型商业软件打包工具;这里讨论的是解包和重新打包的问题。
由于我没有权上传超250K的附件,只能传一个可下附件的地址:

http://wjhen.3322.org/ipb/index.php?showtopic=476

请大家见谅!!!
虚心学习 努力提高,认真回答,共同进步!!
返回列表