reverse-engineering-browser — 基于自定义 Brave 构建的本地优先 macOS 研究浏览器,可捕获网络流量、指纹、脚本和运行时证据,用于对 Web 应用进行逆向工程。 | Kitploit
sunghoojung/reverse-engineering-browserreverse-engineering-browser
基于自定义 Brave 构建的本地优先 macOS 研究浏览器,可捕获网络流量、指纹、脚本和运行时证据,用于对 Web 应用进行逆向工程。
581天前
逆向工程浏览器
查看指纹、请求、脚本和运行时行为背后的浏览器证据。
一款本地优先的研究浏览器和 macOS 工作区,用于检查已获授权的
网络应用程序。
v0.2.1 已发布
Origin Trace Traffic 现在拥有全宽、DevTools 风格的请求表格。路径
和主机更易阅读,并设有独立的状态、类型、方法和计时
列。实时请求跟随列表底部;向上滚动会保留
你的位置,并提供跳转到新请求的功能。选中某个请求会显示其
完整 URL,并提供复制 URL 操作。v0.2.0 的会话隐私和启动
改进仍然可用。
下载 Origin Trace v0.2.1
· 发布说明
· 完整变更日志
功能变更日志
- v0.2.1: 将实时 Traffic 重新设计为可读的全宽请求表格,
具有路径和主机层级、紧凑的请求元数据、跟随到底部
更新、新请求跳转,以及完整 URL 检查和复制功能。
v0.2.0: 添加了按会话的元数据或有界内容捕获控制、
无提示的隔离配置文件并支持显式选择启用 Keychain、经验证的浏览器
就绪状态和重试/重新启动流程、私有 Brave 诊断、
语义反混淆基准语料库,以及自动化开发者工具引导。v0.1.10: 修复了启动时 WebKit 取消竞态问题,该问题可能在
Origin Trace 从其离线外壳切换到新启动的实时工作区时
显示 NSURLErrorDomain error -999。v0.1.9: 使正常应用启动自动启动 broker、工件接收器、
调试器、分析器、回环 UI 和插桩的自定义 Brave 会话;
打包了所需的辅助程序,并添加了明确的启动失败
报告和自有清理。v0.1.8: 在 Sources 中添加了有界的 Rust/Oxc 反混淆、原始字节
来源追踪、嵌套保护、代理和自定义解码器评估、显式
JSFuck 强制转换假设,以及有界的循环/switch 分发器恢复。v0.1.7: 更新了研究界面并重新组织了高级工具、
源代码检查、请求详情、指纹识别、内存和实验。v0.1.6: 添加了更强大的源代码、内存、请求信号和分析师
工作流,并更新了原生应用打包和验证。v0.1.5: 扩展了原生研究工作流和 macOS 分发。v0.1.4: 扩展了原生指纹探测,添加了按标签页的最新优先
活动和实时标签页计数、可选启用的 Canvas 图像捕获、更清晰的队列缺口
报告,以及停止探测或清除当前会话事件的控制项。v0.1.3: 从生产应用包中移除了示例请求、事件和 Canvas 输出,
使每个会话都从真实捕获的证据开始。v0.1.2: 添加了指纹识别工作区,包含 Canvas 图像输出、
本地重放预览、捕获的绘图函数、指纹活动、事件
详情、过滤器,以及请求关联。功能
- 实时网络流量: 在全宽表格中检查请求,包含可读的
路径、主机、方法、状态码和计时;选中某个请求以检查其完整
URL、标头、请求正文和通过 CDP 捕获的响应正文。
- 标签页和域组织: 按浏览器标签页分隔流量,然后将
某个标签页缩小到特定目标域或资源类型。
- 原生浏览器证据: 记录 Canvas、WebGL、Web Audio、设备和布局 API、Permissions、Storage、WebRTC 以及
JavaScript 运行时指纹识别中的调用和属性读取,外加来自
自定义 Brave 构建的请求生命周期元数据。
- 来源追踪: 通过观察到的事件、
脚本、帧、执行上下文和捕获的工件,反向追踪某个请求的
来源。
- 源代码检查和调试: 浏览页面源代码、设置断点、
暂停和单步执行 JavaScript、检查作用域、评估监视表达式,并使用
实时控制台。
- 工件捕获: 保留网络传输和
运行时生成的 JavaScript 和 WebAssembly 的有界副本,附带哈希和来源信息,以及
明确授权的 Canvas 图像输出。
- 内存和回溯工具: 检查堆快照、活动对象、解码后的
堆栈帧,以及 VM 相关发现。
- 研究工作流: 将请求保存到集合、重放隔离
请求、运行受控实验,并保留本地分析师笔记。
- 本地和有界捕获: 证据保留在机器上。敏感的
请求标头会被脱敏,CDP 捕获中的正文上限为 128 KiB,
原生队列和工件传输有明确的限制。
- 原生静默模式: 在不需要请求和响应内容时,
运行原生证据捕获而不附加 DevTools。
如何使用
下载编译好的 macOS 应用
编译好的应用适用于 Apple silicon Mac。链接的 Brave Browser
Development 预览版早于当前的探测支持。请从本版本的源代码构建固定版本的 Brave
集成,以使用所有原生探测;下载的预览版无法演示它们。Origin Trace 不包含捆绑的
示例证据。这些应用经过临时签名但未经 Apple 公证,因此
首次启动可能需要按住 Control 键点击应用并选择 打开。v0.2.1
GitHub 发布标签未签名;其合并提交经过 GitHub 验证。
下载编译好的 Brave 应用不需要 100+ GiB 的源代码检出。
下载和解压两个应用大约需要 1 GiB,外加你希望为浏览器配置文件和捕获的会话
保留的空间。
使用现有的自定义 Brave 构建运行实时捕获
REB_CDP_NETWORK_CAPTURE=1 \
REB_BRAVE_BINARY="/path/to/Brave Browser Development.app/Contents/MacOS/Brave Browser Development" \
make live
Origin Trace 和自定义 Brave 浏览器会一起打开。在该 Brave
窗口中浏览,并在 Traffic 标签页中选择请求。关闭 Brave 以结束
会话。捕获的证据存储在 build/sessions/live/ 下。
CDP 内容捕获是显式启用的,因为它可能保留页面内容。它会脱敏
authorization、cookie、proxy-authorization 和 set-cookie 标头。流式、
缓存、内部或已被逐出的响应正文可能不可用。
指纹操作名称默认会被捕获。若要同时为此单个会话保留
HTMLCanvasElement.toDataURL() 返回的确切图像,请添加
REB_CAPTURE_CANVAS_IMAGES=1。Canvas 图像输出可能包含页面内容,因此
默认禁用,仅保留在本地会话存储中,并限制为
每张图像 2 MiB。
首次构建自定义 Brave 浏览器
这些要求仅在从源代码编译 Brave 时适用。它们不
适用于使用可下载的编译好的 Brave 应用。
- 安装了完整 Xcode 的 macOS;
- Node.js 和 pnpm;
- Python 3、C++20 编译器、zlib 和 Make;
- 至少 150 GiB 可用空间,建议 200 到 250 GiB。
准备固定版本的检出、应用集成、验证它,并构建 Brave:
./scripts/bootstrap-brave.sh --init
./scripts/sync-browser-integration.sh
make brave-doctor
make brave-probe-check
./scripts/brave-toolchain.sh build
首次完整构建可能需要数小时。后续构建是增量的,通常
会复用现有的检出和编译对象。完成后,
使用上一节中的命令启动实时捕获。
在不进行 CDP 内容捕获的情况下运行
若要在没有实时 DevTools 附加的情况下进行原生元数据和工件捕获:
REB_NATIVE_QUIET_MODE=1 \
REB_BRAVE_BINARY="/path/to/Brave Browser Development.app/Contents/MacOS/Brave Browser Development" \
make live
在原生静默模式下,源代码、断点、单步执行、监视表达式、控制台、完整 URL、标头和
正文均不可用。