Files
reverse-engineering-anything/docs/index.md
T
5990ff0324 feat(artifacts): read WeChat mini-program wxapkg containers (#8148)
* feat(artifacts): read WeChat mini-program wxapkg containers

Add a read-only reader for plaintext wxapkg packages: the 0xBE/0xED
18-byte big-endian header, the bounded name/offset/size member table,
and verbatim member bytes at absolute carrier offsets.

- Members retain declared names, absolute offsets and sizes, so
  source_location reports real carrier positions.
- V1MMWX PC-client packages are detected as encrypted coverage with
  null member facts; extraction refuses with a typed error and no
  decryption is attempted.
- Bounded table and directory budgets are admitted before allocation;
  malformed marks, truncated tables, invalid UTF-8 names, member
  extents inside the header or beyond the file, and counts that cannot
  fit their table are typed format or limit failures.
- Member reads stream in bounded 64 KiB chunks with carrier freshness
  checks; the reader joins outstanding streams before close and bounds
  active streams and repeated member I/O.

Refs #8121.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(artifacts): bound wxapkg members to the declared data region

Normalize the two indexLength conventions before the table bounds check
and the table read. Member ranges must then lie in that declared data
region, which has to fit in the file.

Record wxapkg format metadata as not compared: header facts repeat the
package bytes, and entry source paths keep a producer root prefix.

* fix(artifacts): choose the wxapkg index after member ranges fit

Four trailing bytes made the rows-only layout end on the file and dropped
the count-inclusive layout. Keep every admitted layout until the parsed
rows and member ranges select one.

---------

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-05 00:52:20 +08:00

10 KiB

layout, hero, features
layout hero features
home
name text tagline actions
REA Reverse Engineer Anything Understand binaries, applications, and runtime behavior with one CLI and MCP server.
theme text link
brand Get started /installation
theme text link
alt View on GitHub https://github.com/morluto/rea
title details link
Investigate with your agent Connect REA to your coding agent, describe the app or feature you want to understand, and follow the evidence. /mcp-prompts
title details link
Inspect across formats Explore native binaries, JavaScript and Electron apps, .NET assemblies, Android packages, firmware, and websites. /installation
title details link
Keep the evidence Analysis runs locally and returns observations, limitations, and unknowns through the CLI and MCP. /mcp-contracts

Start with one command

npx rea-agents setup

Choose your agent, review the planned changes, and approve setup. Native binary analysis can use an existing Hopper, Ghidra, or IDA installation; static JavaScript analysis needs no native analysis engine.

For a first result from an extracted JavaScript application or ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

See installation and setup for requirements and configuration.

For runtime instrumentation, see the Frida guide.

Choose a guide

Task Guides
Identify a desktop installation Runtime candidates, evidence and follow-up files
Inspect native functions, references, or types Native binaries, Go metadata, Rust dependencies, CPython pyc files, PE certificates, PE imports, PE TLS/load config, ELF notes, Linux kernel modules, Apple IPS, Erlang BEAM, offline ELF layout, recorded crashes
Select a native provider or import format Ghidra semantics, Windows, DOS, raw bytes, GameCube DOL, MIPS, PSP, NativeAOT, IDA, Kuna, JEB
Analyze JavaScript or Electron artifacts Static analysis, tracing and comparisons, application graph, source recovery
Compare static JavaScript with runtime observations Runtime attribution, reconciliation, Electron observation, Electron fuses
Inspect assemblies, packages, or firmware Godot PCK, UnityFS, wxapkg, U-Boot uImage, .NET, Python packages, Android, APK signatures, Apktool resources, ADB acquisition, Apple, Harmony, firmware, ESP images, ESP flash images, WASM, EVM
Observe or compare a browser scenario CDP observation, scenarios, runtime evidence, historical captures
Serve recorded behavior as an agent environment Agent environments
Trace captured website source Source locations, module traces, script export
Capture and compare a command Process capture
Use CLI/MCP and retain evidence CLI, MCP contracts, agent prompts, obligation ledgers

For development, use testing, client verification, tool design, admission limits and recovery, and releasing. Reconstruction readiness describes a development conformance verifier. The 6.2 migration records that release's compatibility changes; the roadmap tracks future work.

REA inspecting a native binary in Hopper