某些情况下我们需要对软件的安装程序包进行修改,替换其中的部分文件,也就是所谓 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中提取以下文件:

代码 (双击代码复制到粘贴板)

ISCAB.exe
ISTools.dll
MediaBuild40.dll(MediaUI.dll)

之后可以脱离 InstallShield 运行。

* 为省去安装 InstallShield 的麻烦,我已将提取的文件打包为 iscabX.zip 作为附件上传。

·首先要提取安装包结构信息,使用命令行


ISCAB data1.cab -lx -iCAB.INI

将信息输出到 CAB.INI 文件,大致如以下的格式:

代码 (双击代码复制到粘贴板)

[ISCAB Info]
Product=ISCAB
Version=2.0
[Dat Files]
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

好了,安装文件打包完成了,就像“原装”的一样,简单吧?

安装程序 Repack 攻略 之 CAB 篇相关推荐

  1. 安装程序 Repack 攻略 之 MSI 篇(IS版)

    本文主要讨论使用 InstallShield 进行 MSI 安装包的修改封装,要查看如何使用微软提供的开发工具进行此操作,请查看此贴: [原创]安装程序 Repack 攻略 之 MSI 篇(MS版) ...

  2. 安装程序 Repack 攻略 之 MSI 篇

    安装程序 Repack 攻略 之 MSI 篇 本文主要讨论使用微软的开发工具 orca 和 msidb 进行 MSI 安装包的修改封装. 下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 R ...

  3. 基于DCMTK的DICOM相关程序编写攻略

    2008年09月10日 星期三 15:35 基于DCMTK的DICOM相关程序编写攻略 前言: 由于现在的医学影像设备的图像存储和传输正在逐渐向DICOM标准靠拢,在我们进行医学图像处理的过程中,经常 ...

  4. VS2015编译TensorFlow C++程序完全攻略

    VS2015编译TensorFlow C++程序完全攻略 本文参考和综合了多篇网络博客文章,加以自己的实践,最终终于在windows环境下,编译出可以用于C++程序调用tensorflow API的程 ...

  5. Py之curses:curses库的简介、使用、安装方法详细攻略

    Py之curses:curses库的简介.使用.安装方法详细攻略 目录 curses库简介 curses库安装 T1.直接命令法 T2.下载whl法 curses库的使用方法 curses库简介 cu ...

  6. Longhorn安装使用全攻略(下)(转)

    Longhorn安装使用全攻略(下)(转)[@more@] 微软Windows图形和游戏负责人Lester,在接受Gamespot访问的时候表示,微软下一代操作系统Longhorn将原生支持XNA开发 ...

  7. Lattice ddr3教程全攻略之仿真篇

    Lattice ddr3教程全攻略之仿真篇 对于这部分,首先建议安装好diamond3.1,modelsim se 10.1a这两个软件,如果想仔细分析DDR3的IP部分,可仔细阅读DDR3 SDRA ...

  8. python curses_Py之curses:curses库的简介、使用、安装方法详细攻略

    Py之curses:curses库的简介.使用.安装方法详细攻略 目录 curses库简介 curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 ...

  9. 计算机配置方案2018,写给设计师的电脑配置攻略之PS篇 2018-08-15

    写给设计师的电脑配置攻略之PS篇 对于设计师而言,电脑是吃饭的工具,如果工具不趁手,势必事倍功半.我相信大多数准备入行或已经工作多年的设计师,都明白这个道理.但是,大多数人对于怎么选配适合设计.适合自 ...

最新文章

  1. 基于实体模型开发主题管理简析
  2. MySQL常见面试题解析
  3. 矩阵相乘原理与C实现(实矩阵)
  4. 基于AgileEAS.NET SOA 平台SAAS架构技术的开源分销ERP系统-SmartERP.NET下载配置说明
  5. C++ STL容器——序列式容器(array、vector、deque、list)
  6. 对Bootloader(引导加载程序)的几点理解
  7. div内的button的click会触发两次(防止事件冒泡)
  8. mysql数据库优化课程---13、mysql基础操作
  9. 斐波那契数列 在实际问题上的变种
  10. 【转】dx11 devicecontext-map
  11. oracle crs 0184,ORACLE-RAC启动失败:CRS-0184: Cannot communicate with the CRS daem
  12. 接口自动化-接口测试初介
  13. Win 10 搭建 EasyDarwin 流服务器
  14. 基于minio及tus断点续传及断点下载解决方案
  15. 【数据结构实验】队列的应用
  16. 关于gitlab报错 would clobber existing tag 的解决办法
  17. 小srf的游戏 题解
  18. nginx-quic
  19. Hebutgo 7.21 git使用(alicode)
  20. 2ASK、2FSK、2PSK、2DPSK、4ASK、4FSK、4PSK、4DPSK、QPSK,以及4QAM、16QAM和MSK、GMSK这些调制和解调过程

热门文章

  1. HTML经典绝对定位图片
  2. 实战项目:Boost搜索引擎
  3. 剪映导出帧率选多少_视频发朋友圈更清晰的四点小技巧
  4. 由浅入深讲二叉树4种遍历算法的由来
  5. android手势_您可能不知道的七个Android手势
  6. startx 及xinit 介绍(经典)
  7. js: 字符(字母) 与 ASCII码 转换方法
  8. 内存测试软件 ddr4,RAMCHECK LX DDR4 PRO/DDR3 内存测试仪
  9. cad剖切线的快捷键_Auto CAD2017剖切符号快捷键是什么呢?
  10. Python数据处理(三)——美国西雅图自行车流量可视化