binary-diff

Migrate symbols and reverse-engineering results across binary versions using LLM-based diffing.

7|4|Updated Jun 22, 2026
One-click install
npx skills add https://github.com/dbx0/skills --skill binary-diff-dbx0
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: binary-diff
Source: https://github.com/dbx0/skills/tree/main/skills/binary-re-pwn/reverse-engineering/binary-diff
Command: npx skills add https://github.com/dbx0/skills --skill binary-diff-dbx0

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyyaml, httpx, and includes references (resource) components.

What problem does it solve? When a binary is updated and its symbols or PDB files are unavailable, previously completed reverse-engineering work is lost, forcing analysts to redo hours of manual analysis. This Skill migrates function names, global variables, vtable offsets, and struct members from an old, symbolized build to a new, stripped build at very low cost. ## Core Features & Use Cases - LLM-Based Structured Comparison: Compares disassembly and pseudocode of matching functions between two versions using a fixed prompt template, returning a strict YAML mapping of five symbol types (calls, vcalls, function pointers, globals, struct offsets). - Batch Symbol Migration: Applies parsed YAML results back into the new-version IDA database via rename and comment operations, then iterates using migrated functions as new anchors. - Anchor Selection Strategy: Guides selection of reliable anchors (exported functions, string references, constants) to bootstrap the comparison between versions. - Use Case: You have full symbols for ntoskrnl.exe build 10.0.26100.2000 but Microsoft pulled the PDB for build 10.0.26100.2605. Use this Skill to derive the new addresses of non-exported functions like PspSetCreateProcessNotifyRoutine in minutes instead of re-reversing the kernel. ## Quick Start Ask the agent to migrate the symbols from your old IDB to the new binary version using the binary-diff workflow, starting from a shared exported function as the anchor.

Frequently Asked Questions about binary-diff

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate symbols to a new binary version without a PDB?

Export disassembly and pseudocode of matching anchor functions from both versions in IDA, then have an LLM compare them with a fixed prompt template. The returned YAML maps old symbol names to new addresses, which you batch-apply to the new IDB.

How does LLM binary diffing compare to BinDiff or Diaphora?

BinDiff and Diaphora use structural graph matching and can fail when code changes significantly between versions. LLM comparison reasons about code semantics, achieving high accuracy at roughly 1 RMB per 200 functions, though results need manual spot-checking.

Which LLM should I use for binary symbol migration?

DeepSeek V3 is recommended for small-to-medium functions under 200 lines due to very low cost. Switch to GPT-4o or Claude for very large functions over 500 lines or when DeepSeek results are inaccurate.

What are good anchor functions for cross-version binary comparison?

Exported functions are the most reliable anchors since names stay stable across versions. String references and unique constants also work well, while raw code patterns are less reliable because addresses change completely.

What are the limitations of LLM-based binary diffing?

The LLM is not 100 percent accurate, so key symbols require manual verification. Very large functions over 1000 lines of disassembly exceed context limits and must be split, and a wrong anchor match invalidates everything downstream.