本地网站逆向分析:rea 用 3 条命令把网站还原成可读代码
本地网站逆向分析rea 用 3 条命令把网站还原成可读代码【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/reaHAR 和压缩后的 app.js 已在本地磁盘接下来要弄清楚点击发生时哪些代码真的运行了——且全程不向任何外部服务发送一个字节。rea 的本地逆向工作流为此准备了四类离线手段HAR 离线解剖、无执行的 bundle 静态解析、Wakaru 反混淆恢复、V8 运行时覆盖率浏览器只连接回环地址分析过程不产生出站请求。传统网站逆向的做法卡在哪里做法代价抓包代理 手工还原混淆 JS接口和渲染逻辑分属两种材料靠人脑对齐还原几千行混淆代码以小时计把流量和代码灌给云端模型每条请求、每段混淆体都成为模型厂商的输入凭据可能随之进日志魔改浏览器接管页面注入脚本改变了被观察对象本身行为证据不再可信rea 的处理方式是把四类证据放在同一台机器上分别生产再交叉核对而不是让某一步顺便替别的一步做决定。 能力全景接口、渲染、代码、执行四类证据回答的问题命令形态接口长什么样inspect-web-network-capture离线解剖 HAR / SAZ / qlog / mitm 原生格式页面凭什么这样渲染analyze-web-bundle无执行的脚本静态解析产出 chunk 边、路由与端点候选恢复出的脚本能不能读recover-javascript-sources调用者自备 Wakaru 引擎本地推导可读模块哪些代码真的执行了observe-web-executionV8 精确覆盖率 事件监听器坐标执行位置对应哪段源码trace-web-source-location经本地 source map 映射回原始位置每条能力对应的完整契约见 docs/browser-observation.md其中对analyze-web-bundle的限定写得很具体只解析选定脚本工件产出 chunk 边、路由/端点候选、厂商指纹、静态 WebMCP 声明及可选 source map 证据不执行任何脚本。最小上手命令三条命令贯穿三个阶段前置条件只有一个调试端口的浏览器由你自己启动独立 profile 目录调试端口不暴露到回环外rea 不替用户启动、持有或关闭该浏览器进程。# 阶段一发现并被动观察页面目标 rea list-browser-targets http://127.0.0.1:9222 --json # 阶段二离线解剖接口捕获 rea inspect-web-network-capture /abs/session.har har --json # 阶段三本地反混淆恢复 rea recover-javascript-sources /tmp/web/app.js /tmp/recovered --json观察窗口用--observation-ms控制默认值见各文档拿到 target 后可用inspect-web-page捕获 DOM、脚本、网络与控制台元数据。HAR 解析支持--record按生产者原始零基序号选记录可重复传入省略则返回全部。恢复输出目录必须不存在父目录需已存在。机制细读审计时拿得出来的边界三个机制各按「约束 → 命令 → 证据位置」展开代表命令集中在一个代码块rea inspect-web-network-capture /abs/session.har har --record 2 --record 0 --json rea export-web-scripts /analysis/capture.json /analysis/exported --json REA_BROWSER_EXECUTABLE/abs/chrome rea trace-web-module-imports /analysis/export/manifest.json 0 --importer-url https://example.test/app/main.js --jsonHAR 离线解剖与硬预算约束先行完整证据的预算是 32 MiB 输入、96 MiB 解码器回复、64 层嵌套三者都没有运行时开关超限直接失败不返回半截结果。请求与响应体默认不读取postData和responseBody均需显式请求HAR 仅支持 1.2 profile且解码器固定在 lockfile 里har-schema 2.0.0 draft-06 等。原生 mitm 格式的解码要求调用者自备 mitmdump 12.2.3 且限于 Linux通过REA_MITMDUMP_COMMAND指定绝对路径rea 以私有配置目录加--no-server运行它不安装任何工具。命令即上面第一行记录保留生产者的原始序号与 JSON pointer二进制字段以 base64 加 SHA-256 独立呈现数字保留 HAR 原文词素。证据位置docs/web-network-captures.md「Resource and lifecycle boundaries」一节。脚本导出与本地反混淆恢复导出环节第二行命令把保留的 Debugger 源码或场景响应字节写入一个必须不存在的目录已存在的目录或符号链接直接拒绝防止覆盖任何既有文件每个写出的文件经过摘要与持久化回读双重校验中途失败则整体回滚并报告残留路径。导出不抓取 URL、不执行 JavaScript。恢复环节接在 docs/javascript-recovery.md 之后引擎要求 Linux x64 上的 Wakaru ^1.13.0路径由REA_WAKARU_COMMAND指定rea 不安装仓库third_party/wakaru固定了一份审计过的上游源码v1.14.0Apache-2.0结果中会报告实际执行二进制的路径、SHA-256 与版本。extraction_mode分structural默认/heuristic/inspectionrewrite_level分minimal/standard默认/aggressive。模块字节经私有暂存进入独立工作区提交前还会校验源文件与引擎字节未被改动。恢复出的原始变量名与运行时等价性被标为unknown——文档不承诺逻辑等价只承诺模块结构与字节范围真实。运行时覆盖与观察权限边界observe-web-execution的默认观察窗口是 10000 ms。它开启精确覆盖率计数这会重置计数并使优化执行暂停即改变 JIT 行为取一次重置采样后关闭全程不导航、不点击、不评估应用代码、不关闭页面。结果保留函数/块范围、执行次数、带调用栈的 initiator 与精确脚本 ID 关联当is_block_coverage为 false 时分支执行状态如实报unknown而非猜测。它明确不做什么rea 对浏览器没有启动、持有、关闭权限能力清单里没有Runtime.evaluate、导航、点击、输入、下载、关页。因此捕获窗口内主帧一旦发生导航混合结果被丢弃操作返回target_changed。监听器检查inspect-web-event-listeners同样只读用原生 DOM/DOMDebugger 操作从不调用监听器或派发事件。证据位置docs/web-runtime.md 与 docs/browser-observation.md。 安全边界五条自我设限机制设计原则具体机制证据位置凭据不进结果Authorization、Proxy-Authorization、Cookie、Set-Cookie值置null并标redacted: trueURL userinfo 凭据按原始跨度整段丢弃docs/web-network-captures.md声明即整体排除--sensitive-value命中的字段整体排除并置null不用占位标记替换——占位标记会把已声明字面量重新引入结果docs/web-network-captures.md超限即失败32 MiB / 96 MiB / 64 层预算无运行时覆盖capture_timeout_ms也改不动它们无部分成功路径docs/web-network-captures.md恢复代码不被信任执行recover-javascript-sources从不执行所选或恢复出的代码导出与恢复的失败路径均回滚私有输出树docs/javascript-recovery.md、docs/website-script-export.md结论带证据等级结果附 confidenceexact/high/medium/low/unknown与 authorityobserved/inferred/unknown/unavailable及内容寻址摘要没有证据不会被静默当成不存在各命令 JSON 结果字段敏感值排除在实现层的落点是 src/application/WebNetworkCaptureService.ts敏感路径在 Evidence 中直接为空敏感摘要直接置null并附说明。适用边界适合谁不适合谁适合流量与凭据不允许出本机的研究者、审计者与合规团队需要接口HAR、渲染bundle、行为coverage三层证据可交叉核对的场景需要可复现、带摘要校验的本地分析流水线而非一次性手工翻 DevTools。不适合需要完整浏览器自动化点击、输入、导航编排的场景——rea 的观察面明确排除这些操作非 Linux 主机上解码 mitm 原生格式adapter 不支持期望反混淆结果运行时等价于原始逻辑——变量名恢复与等价性均标unknown期望 rea 代装依赖Wakaru、mitmdump、Chromium 全部由调用者自备并以绝对路径注入。回到开头那个晚上HAR 留在本地被解剖app.js 留在本地被恢复点击时哪些函数跑了由本机的覆盖率计数回答。四个阶段的每一步都留了可核对的证据与明确的失败边界网站到可读代码这条链路因此可以整体跑在一台机器上。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考