data-diff

Compare data symbols against decompiled builds to reveal byte- and relocation-level divergences.

4|Updated Mar 19, 2026
One-click install
npx skills add https://github.com/freeqaz/rb3 --skill data-diff
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: data-diff
Source: https://github.com/freeqaz/rb3/tree/main/.claude/skills/data-diff
Command: npx skills add https://github.com/freeqaz/rb3 --skill data-diff

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Structured byte- and relocation-level diff of a data symbol, target vs the decompiled build. objdiff's normal output diffs code; --include-data handles data: vtables, RTTI, pointer/jump tables, string pools, and static initializers.

Core Features & Use Cases

  • Compare data symbols to find divergences slot by slot.
  • Inspect vtables, RTTI, pointer tables, and string pools to pinpoint mismatches.
  • Use with the target and decompiled build to validate data layout and initializers.

Quick Start

Run the data diff against a data symbol with the command bin/objdiff-cli diff -p . -u <unit> "<symbol>" -f json-pretty --include-data

Frequently Asked Questions about data-diff

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

FAQPage Schema
How do I find data symbol divergences in decompiled builds?

To find data symbol divergences, compare the target symbol against the decompiled build using objdiff with the --include-data flag to reveal byte- and relocation-level mismatches in vtables, RTTI, and string pools.

Can I diff vtables and RTTI structures slot by slot?

Yes, you can diff vtables and RTTI structures slot by slot by running a structured data symbol comparison to pinpoint exact layout mismatches between the target binary and the decompiled build.

What is the best way to validate static initializers during decompilation?

The best way to validate static initializers during decompilation is to inspect byte- and relocation-level divergences in the data symbol using a structured JSON diff to validate data layout accuracy.

Does objdiff work with data symbols below 100% decompilation completion?

Yes, objdiff works with data symbols below 100% by comparing the target against the decompiled build to expose remaining byte-level divergences in pointer tables and string pools.

How do I get structured JSON output for binary data analysis?

Get structured JSON output for binary data analysis by running the diff command with the -f json-pretty flag, which reads data_diff.relocations and data_diff.segments to pinpoint exact mismatches.

Why does my decompiled data layout not match the target binary?

Your decompiled data layout may not match due to byte- and relocation-level divergences in static initializers or vtables, which you can identify by comparing the target symbol against the decompiled build.