ResPacker¶
文件打包工具,用于整合资源文件和可执行文件,生成单文件程序。
CLI参数:
ResPacker [OPTION...] [exefile] [zipfile]
-h, --help | 打印帮助 |
--nobackup | 不生成备份文件 |
-u, --unpack | 解压模式 |
警告
由于数据长度在不同平台中定义可能有所差别,因此请务必保证打包平台和发行平台一致,否则可能出现读取错误。
文件整合¶
- 打包需要整合的资源文件为一个zip压缩包。
- 主程序中使用 内存加载 的方法加载资源。
- 使用命令
ResPacker exefile_path zipfile_path
打包文件(因为不同平台需要重新编译,因此也需要重新打包),会自动生成源程序备份文件。
文件拆分¶
- 使用命令
ResPacker -u exefile_path
即可拆分打包好的文件(需保证打包平台和拆分平台一致) - 拆分后的可执行文件为
源文件.src
,zip压缩包为源文件.zip
实现原理¶
通过在可执行文件末端附加内容的方式,将zip文件附加在可执行文件末尾(不会对可执行文件造成影响),读取时加载到内存即可。
文件格式:
[可执行文件段]
[固定识别编码"UI"] 0x55, 0x49
[zip文件段大小] 4/8字节
[zip文件段]
[可执行文件段大小] 4/8字节
读取时先读取最后的可执行文件段大小,然后跳到可执行文件段尾,验证识别编码,获得zip文件大小并读取。