某些情况下我们需要对软件的安装程序包进行修改,替换其中的部分文件,也就是所谓 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
好了,安装文件打包完成了,就像“原装”的一样,简单吧?
分享到:
相关推荐
在Java开发中,Spring框架是不可或缺的一部分,它提供了一种模块化、可扩展的方式来构建应用程序。在使用Spring框架时,有时会遇到导入源码或运行项目时出现类找不到的错误,这通常是因为缺少了必要的依赖库。在这个...
标题中的"spring-cglib-repack-3.2.5.jar"和"spring-objenesis-repack-2.6.jar"是两个与Spring框架相关的库文件,它们主要用于Spring框架的内部实现,尤其是针对Java对象的创建和代理机制。下面将详细解释这两个库的...
·安装GitHub下载新版的spring源码到本地·下载Gradle之后通过“gradle cleanIdea eclipse”命令将spring源码转换成可导入eclipse的工程·导入足够的spring工程之后,会发现spring-core下缺少spring-cglib-repack-...
Spring框架是Java开发中不可或缺的一部分,它提供了丰富的功能来简化企业级应用的开发。...通过了解这两个库的作用,开发者可以更深入地理解Spring的工作原理,从而更好地利用其功能并优化应用程序。
在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了全面的基础设施支持,使得开发者可以更轻松地创建企业级应用。在深入理解`spring-cglib-repack-3.2.4.jar`和`spring-objenesis-repack-2.5.1.jar`...
在Spring框架中,CGlib被用作动态代理的实现之一。当目标对象不支持接口时(即,它只是一个普通的Java类),Spring会利用CGlib创建目标对象的子类,并在子类中拦截方法调用,这样就能实现AOP(面向切面编程)的功能...
1. 体积优化:terert的Repack版本通过去除不必要的组件和语言包,使得安装文件更小巧,节省硬盘空间。 2. 稳定性和兼容性:经过terert的优化,该版本在不同系统环境下运行更稳定,兼容各种硬件配置。 3. 额外功能:...
"spring-cglib-repack-3.2.5.jar"、"spring-objenesis-repack-2.6.jar"和"spring-objenesis-repack-2.5.1.jar"这三个文件是Spring源码阅读环境中常用的依赖包,它们各自承担着不同的功能。 首先,我们来看"CGLIB"...
当我们在研究或编译Spring 4.0的源码时,可能会遇到一些依赖问题,其中"spring-cglib-repack-3.1.jar"和"spring-objenesis-repack-2.1.jar"是两个关键的jar包,它们在源码编译过程中起着至关重要的作用。本文将详细...
在深入探讨Spring框架及其相关组件之前,我们先来理解一下标题和描述中提到的两个关键组件:`spring-cglib-repack-3.2.6` 和 `spring-objenesis-repack-2.6`。这两个jar包是Spring框架在进行某些功能实现时所依赖的...
在Spring中,动态代理是实现AOP(面向切面编程)的核心技术之一。CGLIB和Java的内置JDK动态代理是两种常用的动态代理方式。当目标类实现了接口时,Spring会选择JDK动态代理,通过反射机制创建代理对象;反之,如果...
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一种模块化、面向接口的编程模型。在本场景中,我们关注的是两个特定的jar包——"spring-cglib-repack-3.2.5.jar" 和 "spring-objenesis-repack-2.5.1....
然而,有时候在导入Spring项目时,可能会遇到一些问题,例如标题中提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个jar包的缺失。这些jar包对于Spring框架的正常运行至关重要,因为...
repack-bootimg.pl 重新打包Andorid boot image.
而`spring-cglib-repack-3.2.5.jar`和`spring-objenesis-repack-2.6.jar`这两个文件是Spring框架中两个重要的依赖包,它们分别涉及到CGlib和Objenesis两个库,这两个库在Spring中的作用不可小觑。 **CGlib(Code ...
在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了全面的基础设施支持,使得开发者可以更高效地构建企业级应用。在Spring框架的运作过程中,有时会遇到由于类加载器或依赖冲突导致的问题,特别是...
在IT行业中,构建Java应用程序时,我们经常使用构建工具来自动化构建过程,如Maven或Gradle。本主题聚焦于使用Gradle构建Spring源码工程,特别是与`Spring-chlib-repack-3.2`相关的知识。这个特殊版本的Spring库是...
在Spring框架中,`spring-objenesis-repack-2.1.jar`和`spring-cglib-repack-3.1.jar`是两个关键的依赖库,它们在Spring的内部工作原理和功能扩展中扮演着重要角色。让我们深入探讨这两个库以及它们与Spring 4的关系...
不过,需要注意的是,升级库版本时要确保与现有的应用程序和其他依赖库兼容,避免引入新的问题。 在实际开发中,理解Spring如何使用Objenesis和CGLIB是非常重要的。Objenesis有助于在测试和特定场景下高效地创建...
- 安装并配置Maven或Gradle。 - 在命令行中导航到源码根目录。 - 运行构建命令,如`mvn clean install`或`gradle build`。 - 如果遇到类路径错误,确保已经添加了spring-cglib-repack-3.2.0.jar和spring-...