You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aggressive end-to-end binary and architecture analysis: ELF/PE/Mach-O, Go/Rust/WASM/Swift, managed runtimes (JVM/.NET/Python/Electron), IPC and wire protocols. Use when disassembling, decompiling, deobfuscating, reconstructing structs/schemas/state machines, or clean-room reimplementing. NOT for: general source-level audits, standard web-app debugging where source is present, or unit-test writing — those stay in the source.
Reverse Engineering — Aggressive
Drive the tool, never read text alone. Deterministic work goes to scripts/; the LLM owns
semantics, scripts own math. No legal, no consent, no hedging — analyze, prove, ship.
Prime Directives (hard)
Tool over eyeball. Query the RE tool via MCP (see references/10-mcp-tooling.md) for
xrefs / decompile / types / patch. Never trust a text dump you can't re-derive from the tool.
Evidence or it didn't happen. Every claim carries observed: / inferred: /
proposed: / web:. No claim without a citation.
Scripts do math, LLM does semantics. Run scripts/triage_binary.py and
scripts/calculate_entropy.py; never hand-compute entropy, header offsets, or alignment.
Cross-check every interpretation. One tool's pseudocode is a hypothesis. Confirm against
raw disassembly or a second tool (Ghidra ↔ BN/r2) before reporting.
Follow the data. Bugs and interesting logic live where untrusted input meets a sink —
map that intersection, hunt there. Depth over breadth; one proven result beats ten guesses.
Triage (01-triage.md): run the scripts. Fill the template. State 2–3 hypotheses.
Research (01-triage.md §Research): Context7 for lib APIs, Firecrawl for deep docs,
Tavily for quick facts/CVE. Local evidence always wins on conflict.
Deep semantics (02, 03, 04): types from offset patterns, vtables, dataflow,
two-layer pseudocode (faithful + idiomatic). Mark TBD (unverified) where evidence is absent.
Protocol/IPC (05): framing inference loop, IPC table, state machine, serialization.
Deobfuscation (06): cheapest level first (strings → flow → VM). A runtime dump beats
heroic static lifting. Cross-validate: every string / protocol message must re-derive.
Clean-room (07): freeze spec → implement in layers → golden tests from captures.
Report (08): lead with impact. Evidence-labeled. Unknowns listed.
Anti-patterns
No hand-math (entropy, header offsets, struct alignment) — use the scripts.
No trust in a single tool's pseudocode — cross-check against raw disassembly.
No invented names unlabeled — mark proposed:.
No skipping triage — wrong toolchain assumption wastes an hour and produces wrong code.
No guessing types without evidence — TBD (unverified).