rea 入门实战6 条命令把无符号二进制追成一条证据链【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea你接手一个项目某天 CI 红了进程 SIGSEGV 退出日志只剩一行faulting offset 指向一个没人说得清来路的librender.so。没有符号表没有 core也没人愿意接手。这种局面平时会一直挂着——缺的不是耐心是一条能把猜变成证据的路径。rea 就是干这个的一个 CLI 加一个 MCP 服务AI Agent 和你用同样的命令逆向原生二进制、JavaScript/Electron 应用和 .NET 程序集背后引擎可插拔Hopper、Ghidra、IDA返回的结果分观察、推断、未解问题三层没解出来的会明说。本文按时间轴走完全流程装好、体检、选最小目标、钻进一个函数并闭环引用链。前 5 分钟装好 rea 并完成环境体检先花 30 秒定位。rea 不是反编译器不是调试器也不是 IDE。它是一层架在分析引擎之上的编排层谁干活Hopper、Ghidra、IDA和谁提问你或走 MCP 的 Agent被解耦。这也解释了它为什么每份结果都带证据契约——它不生产反编译结论它只负责把引擎的观察原样带出来。怎么装两条命令不装也能先试一把运行时要求 Node.js 22.x22.23.4、24.x24.22.1或 26.12.1包名是rea-agents。什么都不装也能先跑一次静态分析# One-off static analysis without any install npx -y rea-agentslatest analyze-javascript-application /absolute/path/to/app --json然后全局安装 CLI 并注册 MCP# Install the CLI globally, then register MCP for your agents npm install --global rea-agents npx rea-agents setupsetup 先给计划再动手列出要改的每个配置路径和备份方式你确认后才写入支持 Claude Code、Codex、Cursor、Gemini CLI 等客户端。Node、Java、Ghidra 这类外部依赖它一概不替你装。做原生分析还要指认引擎已有 Ghidra如 12.1.x就设GHIDRA_INSTALL_DIRJava 在 PATH 上就免设JAVA_HOME。怎么体检doctor 不改机器任何配置装完别急着开逆向先体检# Read-only health check with remediation per failing item rea doctor --json rea doctor --provider ghidra --jsondoctor 逐项检查宿主平台、Node 版本、引擎可执行文件纯读不写失败项后面直接跟修复命令--provider可以把范围收到单个引擎。分析桥接管取数的样子长这样引擎 GUI 照常打开操作与取数全部由桥接层代劳体检全绿下面选目标。接下来 10 分钟选一个最小目标产出第一份概览最小练手目标怎么选别拿生产二进制开刀。仓库自带一份 17 行 C 源码 scripts/fixtures/binary-layout.c两个全局变量、一个线程局部变量、一个read_values()辅助函数加main是理解符号、字符串、函数与引用的最小样本// noinline helper; its symbols survive only in the debug build __attribute__((noinline)) int read_values(const char *text) { char buffer[32]; snprintf(buffer, sizeof(buffer), %s, text); return buffer[0] stored_value tls_value common_value; }编译出调试版和 stripped 版各一份。stripped 版没有符号表是 rea 价值最明显的目标类型# Build debug and stripped copies of the repo fixture gcc -O0 -g -o hello_debug scripts/fixtures/binary-layout.c gcc -O0 -s -o hello_stripped scripts/fixtures/binary-layout.c第一条命令用 analyze 拿概览# Native overview: identity, symbols, strings, functions rea analyze /absolute/path/to/hello_stripped --provider ghidra --jsonanalyze 走binary_overview工作流。看三个字段artifact路径、SHA-256、大小。后面所有结论都锚在这上面目标字节一变身份失配缓存与引用全部作废coverage哪些分析是完整的哪些只是部分观察一眼分清unknowns列的是确实没解出来而不是被悄悄略过。limitations还会反复提示伪代码是反编译器输出不等于原始源码。概览到手下一步钻单点。15 分钟后钻进一个函数闭合引用链给 main 建一份档案# Dossier for main: entry, callers, callees, control flow rea function /absolute/path/to/hello_stripped main --provider ghidra --jsonfunction 返回的是档案dossier入口地址、调用者与被调用者、控制流图外加有界数量的 p-code 操作与 def-use 边。这一步别跳——档案是函数级的单页全貌后面反编译出来的伪代码只是其中一块。两类代码decompile 与 instructions 的边界# Pseudocode of one procedure via the decompiler rea decompile /absolute/path/to/hello_stripped 0x401146 --provider ghidra --json # Read-only assembly from the Ghidra listing, no decompiler rea instructions /absolute/path/to/hello_stripped main --provider ghidra --jsondecompile 给可读伪代码instructions 只读 Ghidra Listing 的原始指令不启动反编译器。两者的语义边界被严格分开这是它和一把梭全量反编译最大的区别——报告里每行汇编来路清楚伪代码的出处也被标注。xrefs 与 search从入口到数据闭环# References pointing at main, plus a literal string search rea xrefs /absolute/path/to/hello_stripped 0x401146 --provider ghidra --json rea search /absolute/path/to/hello_stripped source-owned --provider ghidra --jsonsearch 加--mode regex --kind procedures就能按过程名搜比如^read_。xrefs 返回有界列表调用、跳转、数据、读写等分类保留原始 ReferenceManager 类型。在这个目标上你能看到main到read_values的调用边以及source-owned字符串的落点——入口到数据证据链闭合。重复分析同一目标时给 analyze 追加--snapshot /abs/path/program.json目标字节与参数不变时直接复用缓存不重新起引擎。高频参数一张表收齐参数控制什么--json结构化输出默认终端格式是 TOON面向人读--provider ghidra显式绑定引擎不传则按确定性规则自动选择--snapshot /abs/x.json结果写入本地快照同目标同参数直接复用--kind strings\|proceduressearch 的范围--mode literal\|regexsearch 的匹配模式REA_ANALYSIS_PROVIDER默认提供方环境变量命令行--provider优先GHIDRA_HEADLESS_MAXMEM限制 Ghidra JVM 堆小内存机器设512M证据链闭了但引擎还占着资源。有更省的路。零引擎路径不启动反编译器也能静态分析不是每个目标都值得花 5 分半等 Ghidra 起来。两条轻量路径完全不碰引擎。JavaScript/Electron 静态解析就是前面那条analyze-javascript-application返回模块、导入、Electron IPC 边界及各自证据。对目录或.asar文件rea analyze在不传--provider/--snapshot时会自动路由到这条工作流。离线 ELF 布局诊断需要自带 pwntools 4.15.0、pyelftools 与 Unicorn 的隔离 Python 环境官方验证目前覆盖 Linux x64 的 ELF64# Offline ELF layout, no disassembler database REA_PWNTOOLS_PYTHON/absolute/isolated-env/bin/python \ rea inspect-binary-layout /absolute/path/to/hello_stripped --json它不启动任何反汇编器数据库直接回答这个文件里有什么节区/段布局、原始符号与重定位以及 canary、PIE、NX、RELRO 的静态推断。刚编译的hello_stripped就是它的标准练手目标字段语义见 docs/binary-diagnostics.md。下面讲翻车时怎么脱身。先学三个坑退出码与高频报错处置退出码含义0完成结果仍可能含部分证据与警告1未完成输入无效、权限、取消、超时128 N被信号 N 终止如 SIGINT 为 130现象一analyze 报capability_unavailabledetails.selection_reason是ambiguous——多个引擎都支持该目标rea 不替你选。# Diagnose the selected engine; doctor is read-only rea doctor --provider ghidra --json处置从details.candidate_ids里挑一个用--provider显式指定。现象二大二进制分析超时。Ghidra 默认启动期限 330000ms约 5.5 分钟。# Raise the Ghidra startup deadline to 15 minutes export REA_GHIDRA_STARTUP_TIMEOUT_MS900000处置期限覆盖导入、自动分析与桥接小目标小内存机器可另设GHIDRA_HEADLESS_MAXMEM压低 JVM 堆。现象三行为与预期不符疑似 bug。# Update the npm-owned CLI to the latest rea update处置错误提示 Retry once; if it continues, runrea doctor 时照做即可仓库维护着逐条审核的用户可见错误清单。下一步去哪儿第一份证据链走通了这只是最常用的 6 条命令。想继续往深处走三个方向docs/cli.md快照复用、证据导入导出、完整退出码语义docs/mcp-contracts.mdAgent 侧的会话生命周期与证据契约docs/native-investigation.md各引擎在原生目标上的能力边界。另外公开重建案例——声音定位的 pan 计算、16 位 DOS 子弹环、Electron 剪贴板桥——是你下一个能追的目标。下次 CI 再红、无符号的.so再落到你桌上顺序不变rea doctor先跑rea analyze跟上再一条引用一条引用地走。让证据先开口结论后到。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
ADS122U04与dsPIC33EP组合:工业与HVAC多路温度采集实战方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
ADS122U04+STM32L476RG:工业与HVAC精密温度采集系统设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
ADS122U04搭配STM32F407ZG:高精度多通道温度采集方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
【Java基础知识】方法与注释 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30
【Java基础知识】进制转换 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30
【Java基础知识】字面量与变量 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30
kafka--基础知识点--0 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30
如何用AI新闻雷达Horizon打造你的专属信息过滤系统 如何用AI新闻雷达Horizon打造你的专属信息过滤系统 【免费下载链接】Horizon 📡 Your own AI-powered news radar. Generates daily briefings in English & Chinese. | 用 AI 构建你专属的新闻雷达 项目地址: https://gitcode.com/GitHub_Trending/horizon39… · 2026/11/5 8:41:27
SuperSplat 新手排错指南:3D Gaussian Splat 编辑器常见 5 类坑一次讲清 SuperSplat 新手排错指南:3D Gaussian Splat 编辑器常见 5 类坑一次讲清 【免费下载链接】super-splat 3D Gaussian Splat Editor 项目地址: https://gitcode.com/gh_mirrors/su/super-splat
第一次把 SuperSplat 跑起来就卡住了?先别急着怀疑人生… · 2026/11/5 8:41:27
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38