ReVa/skills/binary-triage/SKILL.md
Performs initial binary triage by surveying memory layout, strings, imports/exports, and functions to quickly understand what a binary does and identify suspicious behavior. Use when first examining a binary, when user asks to triage/survey/analyze a program, or wants an overview before deeper reverse engineering.
npx skillsauth add cyberkaida/reverse-engineering-assistant binary-triageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
We are triaging a binary to quickly understand what it does. This is an initial survey, not deep analysis. Our goal is to:
Follow this systematic workflow using ReVa's MCP tools:
get-current-program to see the active programlist-project-files to see available programs in the projectprogramPath (e.g., "/Hatchery.exe") for use in subsequent toolsget-memory-blocks to understand the binary structure.text - executable code.data - initialized data.rodata - read-only data (strings, constants).bss - uninitialized dataget-strings-count to see total string countget-strings with pagination (100-200 strings at a time)get-symbols-count with includeExternal=true to count importsget-symbols with includeExternal=true and filterDefaultNames=trueget-function-count with filterDefaultNames=true to count named functionsget-function-count with filterDefaultNames=false to count all functionsget-functions with filterDefaultNames=true to list named functionsentry, start, _startmain, WinMain, DllMain, _mainfind-cross-references with direction="to" and includeContext=truefind-cross-references with direction="to" and includeContext=trueget-decompilation on entry point or main function
limit=30 to get ~30 lines initiallyincludeIncomingReferences=true to see callersincludeReferenceContext=true for context snippetsget-decompilation on 1-2 suspicious functions identified in Step 6
limit=20-30 for quick overviewTodoWrite tool to create an actionable task list with items like:
Present triage findings to the user in this structured format:
[Bulleted list of red flags discovered, prioritized by severity]
[Present the task list created in Step 8]
includeContext=true for code snippets.tools
Write and run Python (PyGhidra) code inside the Ghidra session that ReVa's MCP server is already attached to, using the five ReVa scripting tools — `run-script`, `list-scripts`, `read-script`, `write-script`, `edit-script`. Use this whenever the user asks to execute Python against the current program, reach for the Ghidra Flat API directly, write a custom analysis pass, automate something the other ReVa tools don't expose, or persist a `.py` script in Ghidra's scripts directory. Also use when an existing ReVa MCP tool can't do what's needed and the right answer is "drop into PyGhidra for one call." Do NOT use this skill for plain ReVa tool calls that already have a dedicated MCP tool (use that tool instead); do NOT use it to build standalone Python programs that run pyghidra in their own process (the run-script tool runs *inside* the ReVa-hosted Ghidra).
testing
Performs focused, depth-first investigation of specific reverse engineering questions through iterative analysis and database improvement. Answers questions like "What does this function do?", "Does this use crypto?", "What's the C2 address?", "Fix types in this function". Makes incremental improvements (renaming, retyping, commenting) to aid understanding. Returns evidence-based answers with new investigation threads. Use after binary-triage for investigating specific suspicious areas or when user asks focused questions about binary behavior.
development
Solve CTF reverse engineering challenges using systematic analysis to find flags, keys, or passwords. Use for crackmes, binary bombs, key validators, obfuscated code, algorithm recovery, or any challenge requiring program comprehension to extract hidden information.
development
Solve CTF binary exploitation challenges by discovering and exploiting memory corruption vulnerabilities to read flags. Use for buffer overflows, format strings, heap exploits, ROP challenges, or any pwn/exploitation task.