逆向工具:asar
asar
是 Electron 框架中广泛使用的归档工具,专门用于将应用程序的源代码和资源文件打包成单个 .asar
归档文件。这种格式在 Electron 应用分发中非常常见,因为它能保持文件结构完整,同时提升加载效率和安全性(避免直接暴露源代码)。
核心功能
-
打包文件为
.asar
将多个文件和目录合并为单个.asar
文件,保持原始目录结构。 -
解包
.asar
文件
提取归档内容到本地目录,便于调试或修改。 -
列出归档内容
查看.asar
文件内的文件列表,无需解包。 -
与 Electron 深度集成
Electron 运行时可直接读取.asar
文件,如同访问普通目录。
安装方法
通过 npm 全局安装:
npm install -g asar
基础用法
1. 打包文件/目录为 .asar
asar pack <输入目录> <输出文件.asar>
示例:将 app
目录打包为 app.asar
asar pack ./app ./app.asar
2. 解包 .asar
文件
asar extract <输入文件.asar> <输出目录>
示例:解压 app.asar
到 app_unpacked
目录
asar extract app.asar ./app_unpacked
3. 列出 .asar
文件内容
asar list <输入文件.asar>
示例:查看 app.asar
内的文件列表
asar list app.asar
高级选项
选项 | 说明 |
---|---|
--exclude |
排除指定文件/目录(支持通配符) |
--unpack-dir |
指定某些目录不打包进 .asar (直接保留为外部文件) |
--ordering |
指定文件顺序的配置文件(优化加载顺序) |
示例:打包时排除 node_modules
和 tests
目录
asar pack app app.asar --exclude "{node_modules,tests}/**"
适用场景
- Electron 应用分发:默认打包方式,减少文件数量并隐藏源码。
-
部分更新:结合
--unpack-dir
将频繁变动的文件(如图片)保留在外部。 -
调试应用:解包官方应用的
.asar
文件进行逆向分析(需注意法律风险)。
注意事项
-
路径敏感
打包时需确保相对路径正确,避免运行时文件引用错误。 -
并非加密
.asar
仅是归档文件,内容可被解包,敏感数据需额外加密。 -
性能优化
大文件或深层目录可能影响打包速度,建议拆分或使用--unpack-dir
。
与其他工具对比
工具 | 特点 | 适用场景 |
---|---|---|
asar |
保持目录结构,Electron 原生支持 | Electron 应用 |
zip /tar |
通用压缩,无结构优化 | 普通文件归档 |
appimage |
直接生成可执行文件 | Linux 应用分发 |
常见问题
Q1: 如何查看 .asar
文件内容是否完整?
asar list app.asar | less
Q2: 打包后 Electron 应用无法启动?
检查是否排除了关键文件(如 package.json
),或路径引用错误。
Q3: 能否编辑 .asar
文件内容?
需解包 → 修改 → 重新打包,无法直接编辑。
- «
- 1
- »