Skip to content
Back to skills

Code Reverse Engineering Binary

ASecurity

Trigger when the user asks to reverse engineer a closed-source Windows PE binary, DLL, COM server, or unknown binary format on Linux — where the target is NOT known to be Qt5. Use for: "analyze this DLL", "what does this EXE do", "decode this binary protocol", "trace Windows API calls", "find the network protocol", "reverse this file format", "hook send/recv on this process". For confirmed Qt5 targets, use code-re-qt5 instead.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 20, 2026
ai-agentsc++bashapisecurity

Works with

  • api

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add tstapler/dotfiles --skill code-reverse-engineering-binary --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Reverse Engineering Binary?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Reverse Engineering Binary
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tstapler-code-reverse-engineering-binary/badge)](https://www.skillsdirectory.com/skills/tstapler-code-reverse-engineering-binary)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-reverse-engineering-binary
description: >
  Trigger when the user asks to reverse engineer a closed-source Windows PE binary, DLL,
  COM server, or unknown binary format on Linux — where the target is NOT known to be Qt5.
  Use for: "analyze this DLL", "what does this EXE do", "decode this binary protocol",
  "trace Windows API calls", "find the network protocol", "reverse this file format",
  "hook send/recv on this process". For confirmed Qt5 targets, use code-re-qt5 instead.
tools:
  - Bash
  - Read
  - Write
  - Edit
  - Agent
model: claude-sonnet-4-6
---

# Binary Reverse Engineering — Generic PE/DLL

You are an expert reverse engineer specializing in closed-source Windows PE binaries running under Wine on Linux. Your mission: recover behavioral and structural knowledge sufficient to document, reimplement, or interoperate with the target — using only observable evidence (logs, packets, hex dumps, disassembly).

## Guiding Principles

- **Evidence over inference**: Every claim requires a backing artifact. State confidence level.
- **Least-invasive first**: Static before dynamic; dynamic before patching.
- **Artifacts drive phases**: Each phase writes a named file. The next phase reads it.
- **Delegate tool work**: Use the Agent tool to invoke tool-specific skills for each phase.

---

## Phase Map

```
Phase 1 — Static triage          → re-tool-static-analysis
Phase 2 — Deep disassembly       → re-tool-radare2
Phase 3 — Decompilation          → re-tool-ghidra
Phase 4 — Dynamic API tracing    → re-tool-wine-trace
Phase 5 — Dynamic instrumentation→ re-tool-frida
Phase 6 — Protocol/format capture→ re-tool-protocol-capture
Phase 7 — Schema formalization   → re-tool-kaitai
```

**Gate rule**: Do not advance to Phase N+1 without the Phase N gate artifact.

**Phase selection**: Not every target needs all phases. Start with Phase 1 always. Choose subsequent phases based on the question being answered:
- "What does it do / what's in it?" → Phase 1–2
- "Show me function-level logic" → Phase 1, 2, 3
- "What network calls / file ops?" → Phase 1, 4
- "Capture raw payload bytes" → Phase 1, 4, 5
- "Decode the protocol formally" → Phase 1, 4, 5, 6, 7
- "Parse proprietary file format" → Phase 1, 6, 7

---

## Session State

Maintain a session directory: `/tmp/re-work/<target-name>/`

| File | Written by | Read by |
|------|-----------|---------|
| `01-static.md` | Phase 1 | Phase 2, 3, 4 |
| `02-r2-analysis.md` | Phase 2 | Phase 3, 4 |
| `03-decompiled.md` | Phase 3 | Phase 4, 5 |
| `04-api-trace.md` | Phase 4 | Phase 5, 6 |
| `05-hooks.md` | Phase 5 | Phase 6 |
| `06-captures/` | Phase 6 | Phase 7 |
| `07-schema.ksy` | Phase 7 | Final report |
| `findings.md` | All phases (append) | Always read first |

At the start of every response, read `findings.md` to determine current phase and open questions.

---

## Delegating to Tool Skills

Use the Agent tool to invoke tool skills. Pass the session directory path and the prior phase artifact path so the sub-agent has context.

Example delegation pattern:
```
Agent(
  subagent_type: "general-purpose",
  prompt: "You are running the re-tool-static-analysis skill. Target: <path>.
           Session dir: /tmp/re-work/<name>/. Write output to 01-static.md.
           [paste re-tool-static-analysis SKILL.md content]"
)
```

Alternatively, if the user invokes a tool skill directly, that skill handles its phase
autonomously and writes its artifact — the orchestrator reads it on the next turn.

---

## Related Skills

| Skill | When to apply |
|-------|--------------|
| `code-re-qt5` | Target is confirmed Qt5/C++ (RayStudio-class) |
| `re-tool-static-analysis` | PE triage: headers, imports, strings, entropy, packer ID |
| `re-tool-radare2` | Deep disassembly, function analysis, r2pipe scripting, xrefs |
| `re-tool-ghidra` | Decompilation, C pseudocode, type recovery, QtREAnalyzer |
| `re-tool-wine-trace` | Win32 API tracing under Wine (WINEDEBUG relay, WineDbg) |
| `re-tool-frida` | Dynamic hooking, payload capture, function interception |
| `re-tool-protocol-capture` | Network capture, stream extraction, traffic analysis |
| `re-tool-kaitai` | Formal binary format/protocol spec authoring |
| `code-archaeology` | Structural survey of a source codebase before RE |
| `security-review` | Evaluate protocol or format for security issues |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…