Skip to content

Binary Diff Symbol Migration

Migrates function names from an old binary version to a new one using LLM comparison

Stars
43,969
Licence
MIT
Files
2 files

What it does

This skill teaches an AI agent how to move reverse-engineering labels (function names, global variable names, struct offsets) from an old version of a compiled program to a new version that has lost its symbols. The agent exports disassembly and pseudocode from both versions, asks an LLM to match functions using a fixed prompt template, and receives the matches as YAML that can be applied to the new version through IDA Pro tools. It also explains when to use this approach versus traditional diff tools like BinDiff or Diaphora.

Great for

  • Reverse engineers who already named functions in an old build and need them in an updated build
  • Researchers recovering symbols for a kernel or driver when newer debug symbols are unavailable
  • Security analysts tracking where protected functions moved after a software update

Skip it if

  • Starting a reverse-engineering project from scratch, since it assumes an existing labelled old version (use an IDA or radare2 skill instead)
  • Comparing two unrelated binaries, where traditional tools or manual analysis are more suitable
  • Use against software you are not authorised to analyse, since the skill itself says to first check an authorisation record it references but does not include

Try asking

  • “Migrate the 200 named functions from my v1.0 build of this program to the v1.1 binary in IDA”
  • “My ntoskrnl.exe PDB is missing for build 26100.2605; help me locate PspSetCreateProcessNotifyRoutine using the older symbols”
  • “Build a batch workflow that sends each function pair to an LLM and collects YAML symbol mappings”
Step-by-step guide: how to use Binary Diff Symbol MigrationInstall, first run, examples, tips and FAQs

Install in 3 steps

  1. 1

    Download the skill

    The ZIP contains the 2 original files, the MIT licence and an attribution note.

    binary-diff.zip
  2. 2

    Add it to your agent

    Claude Code (all projects)

    mkdir -p ~/.claude/skills && unzip binary-diff.zip -d ~/.claude/skills/

    Claude Code / Agent SDK (this project only)

    mkdir -p .claude/skills && unzip binary-diff.zip -d .claude/skills/

    Claude apps (web/desktop): Settings → Capabilities → Skills → Upload skill, and choose the ZIP.

  3. 3

    Ask for the task

    No special command needed — the agent reads the skill's description and loads it when your request matches. Try one of the prompts above.

Get better results

  • Start with exported functions or string references as anchors, since their names and strings are the most reliable matches, and migrate in small batches of one function per LLM call
  • Review the YAML output before applying renames to the new IDB, because LLM matches can be wrong and cached results should be checked
  • Note that the skill instructs the agent to read referenced files and proceed without confirmation; review those referenced files and keep a human in the loop for sensitive targets

What's inside

  • references/prompt-template.md
  • SKILL.md

Redistributed unmodified from zhaoxuya520/reverse-skill under the MIT licence. The assessment was drafted with AI from the skill's files on 2026-10-29. Skills can instruct your agent to run code — read SKILL.md and any scripts before installing.