ResPacker

文件打包工具,用于整合资源文件和可执行文件,生成单文件程序。

CLI参数:

ResPacker [OPTION...] [exefile] [zipfile]
-h, --help 打印帮助
--nobackup 不生成备份文件
-u, --unpack 解压模式

警告

由于数据长度在不同平台中定义可能有所差别,因此请务必保证打包平台和发行平台一致,否则可能出现读取错误。

文件整合

  1. 打包需要整合的资源文件为一个zip压缩包。
  2. 主程序中使用 内存加载 的方法加载资源。
  3. 使用命令 ResPacker exefile_path zipfile_path 打包文件(因为不同平台需要重新编译,因此也需要重新打包),会自动生成源程序备份文件。

文件拆分

  1. 使用命令 ResPacker -u exefile_path 即可拆分打包好的文件(需保证打包平台和拆分平台一致)
  2. 拆分后的可执行文件为 源文件.src ,zip压缩包为 源文件.zip

实现原理

通过在可执行文件末端附加内容的方式,将zip文件附加在可执行文件末尾(不会对可执行文件造成影响),读取时加载到内存即可。

文件格式:

[可执行文件段]
[固定识别编码"UI"] 0x55, 0x49
[zip文件段大小] 4/8字节
[zip文件段]
[可执行文件段大小] 4/8字节

读取时先读取最后的可执行文件段大小,然后跳到可执行文件段尾,验证识别编码,获得zip文件大小并读取。