首页 / 资讯中心 / 文章详情

REA ASAR完整性校验:如何检测被篡改的Electron应用包(完整指南)

REA ASAR完整性校验:如何检测被篡改的Electron应用包(完整指南) ★ FEATURED ARTICLE
REA ASAR完整性校验如何检测被篡改的Electron应用包完整指南【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/reaREA 是一款开源的逆向工程 Agent 工具内置 ASAR 完整性校验能力可以逐条核对 Electron 应用包中每个文件的 SHA-256 声明值与实际字节帮你快速发现被篡改、注入或替换过的app.asar应用包并且全程不执行任何应用代码安全、快速、免费。为什么 Electron 应用包容易被篡改Electron 应用如大量桌面客户端会把全部前端代码、资源文件打成一个ASAR 归档通常是app.asar。由于 ASAR 本质上只是文件清单 拼接的字节流攻击者只需修改其中一个 JS 文件的几个字节就能悄悄注入恶意逻辑而用户肉眼完全看不出变化。常见的篡改场景有 3 类清单未动、内容被改文件头声明的 SHA-256 还在但实际字节已被替换解包文件被换ASAR 外的.asar.unpacked伴生文件常存放原生插件.node被调包包体整体被重打包归档大小或头部结构发生变化。要可靠地检测这些问题核心思路只有一条把声明的哈希和实际的哈希逐条比对。这正是 REA 的 ASAR 完整性校验所做的事情。REA 如何执行 ASAR 完整性校验REA 的 ASAR 读取器 AsarArtifactReader.ts 在校验过程中做了多层防线普通用户无需了解细节但知道原理会更安心逐条读取 Electron 完整性元数据ASAR 头部的文件元数据中每个文件条目可携带integrity字段算法为 SHA256。REA 会在清单阶段提取每个条目的声明哈希AsarArtifactReader.ts。按声明范围精确读取边读边算哈希读取任何文件前REA 会先校验该条目在归档中的偏移和长度是否越界再按字节范围流式读取并计算实际 SHA-256最后与声明值比对。任何不一致都会被标记为integrity类型失败并给出逻辑路径、声明值、计算值 AsarArtifactReader.ts。unpacked 伴生文件同样受检很多应用把原生模块放在archive.unpacked目录。REA 明确规定unpacked 只是存放方式不是免检通行证——这些伴生字节同样要和归档声明的完整性值做哈希比对且读取时会防符号链接逃逸 AsarArtifactReader.ts。防止边读边被换的时间差攻击打开文件后 REA 会再次检查容器大小和文件 inode如果在清单与读取之间包体被二次替换会被判定为完整性失败而不是静默通过 AsarArtifactReader.ts。新手一键操作步骤3 步完成检测第 1 步安装 REA先按官方安装文档完成环境配置含 Hopper / Ghidra 等可选引擎安装说明installation.mdCLI 总览cli.md第 2 步对 ASAR 包执行分析拿到目标应用目录后把其中的app.asar或解包目录直接交给 REArea analyze /absolute/path/to/apps/app.asar --json通用rea analyze命令会自动为.asar文件选择 JavaScript 应用静态分析工作流返回应用图、Electron 边界摘要以及完整性校验结果无需启动浏览器或任何 Electron 进程。也可以用专用命令显式指定目标rea analyze-javascript-application /absolute/path/to/apps/app.asar --json详见javascript-artifact-reconstruction.md第 3 步读懂完整性结论当某个文件声明值与实际值不符时结果中会包含逻辑路径包内哪个文件出了问题声明 SHA-256 vs 计算 SHA-256两个哈希值并列呈现是否 unpacked 条目判断问题出在包内还是伴生目录。默认策略下任何不一致都会直接返回失败。如果你希望记录不一致但继续分析其余文件可以在请求中显式选择integrity_policy: record-and-continue这样已校验通过的文件仍可继续分析而篡改记录不会丢失见 mcp-contracts.md 的完整性处理章节。两种典型结果怎么看结果状态含义建议动作全部一致包体与声明的完整性元数据相符无篡改证据存档本次 SHA-256 作为基线出现integrity失败声明哈希与实际字节矛盾包被改动过定位逻辑路径对照官方渠道重新获取安装包hash_status: unavailable声明了 unpacked 伴生文件但字节缺失缺失字节被记为 unknown而非已验证需补齐文件再验值得注意的细节伴生文件缺失时REA 会继续分析包内嵌入的 JavaScript同时把缺失的原生/资源字节如实记为未知项——既不假装通过也不假装文件不存在见 javascript-artifact-reconstruction.md。进阶用源码理解校验细节如果你对实现感兴趣以下模块值得浏览ASAR 读取与哈希校验核心AsarArtifactReader.ts流式读取时的字节数与哈希验证AsarEntryStream.ts清单扫描中的完整性矛盾记录scanCanonical.ts完整性策略fail / record-and-continuepolicy.ts常见问题 FAQ问校验需要运行目标应用吗不需要。整个流程是纯静态的读字节、算哈希、比对照明。REA 的重建路径从不使用eval、Function或 DOM也不会执行应用的引导代码对可疑样本非常安全。问普通用户没有哈希工具能用 REA 吗可以。一条rea analyze命令即可完成结果里直接给出声明值与实际值的差异不需要你手动算 SHA-256。问结果可以保存和对比吗可以。CLI 支持--json输出与证据导入/导出rea evidence-import/rea compare适合把官方包和可疑包的结果并列对比详见 cli.md。总结检测被篡改的 Electron 应用包本质上就是声明哈希 vs 实际哈希的逐条核对。REA 的 ASAR 完整性校验把这件事做成了开箱即用的一步命令逐条校验包内文件与.asar.unpacked伴生文件、防止读取期间的二次替换、缺失文件如实标记为未知。无论你是安全研究员还是只是想确认下载的安装包没被动手脚都值得一试。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站