话题逆向工具 › asar

逆向工具:asar

asarElectron 框架中广泛使用的归档工具,专门用于将应用程序的源代码和资源文件打包成单个 .asar 归档文件。这种格式在 Electron 应用分发中非常常见,因为它能保持文件结构完整,同时提升加载效率和安全性(避免直接暴露源代码)。


核心功能

  1. 打包文件为 .asar
    将多个文件和目录合并为单个 .asar 文件,保持原始目录结构。
  2. 解包 .asar 文件
    提取归档内容到本地目录,便于调试或修改。
  3. 列出归档内容
    查看 .asar 文件内的文件列表,无需解包。
  4. 与 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.asarapp_unpacked 目录

asar extract app.asar ./app_unpacked

3. 列出 .asar 文件内容

asar list <输入文件.asar>

示例:查看 app.asar 内的文件列表

asar list app.asar

高级选项

选项 说明
--exclude 排除指定文件/目录(支持通配符)
--unpack-dir 指定某些目录不打包进 .asar(直接保留为外部文件)
--ordering 指定文件顺序的配置文件(优化加载顺序)

示例:打包时排除 node_modulestests 目录

asar pack app app.asar --exclude "{node_modules,tests}/**"

适用场景

  • Electron 应用分发:默认打包方式,减少文件数量并隐藏源码。
  • 部分更新:结合 --unpack-dir 将频繁变动的文件(如图片)保留在外部。
  • 调试应用:解包官方应用的 .asar 文件进行逆向分析(需注意法律风险)。

注意事项

  1. 路径敏感
    打包时需确保相对路径正确,避免运行时文件引用错误。
  2. 并非加密
    .asar 仅是归档文件,内容可被解包,敏感数据需额外加密。
  3. 性能优化
    大文件或深层目录可能影响打包速度,建议拆分或使用 --unpack-dir

与其他工具对比

工具 特点 适用场景
asar 保持目录结构,Electron 原生支持 Electron 应用
zip/tar 通用压缩,无结构优化 普通文件归档
appimage 直接生成可执行文件 Linux 应用分发

常见问题

Q1: 如何查看 .asar 文件内容是否完整?

asar list app.asar | less

Q2: 打包后 Electron 应用无法启动?
检查是否排除了关键文件(如 package.json),或路径引用错误。

Q3: 能否编辑 .asar 文件内容?
需解包 → 修改 → 重新打包,无法直接编辑。

  • «
  • 1
  • »

Home - Wiki
Copyright © 2011-2025 iteam. Current version is 2.142.0. UTC+08:00, 2025-02-21 07:07
浙ICP备14020137号-1 $Map of visitor$