Agent skill
state-diff
Compare two state snapshots to identify register and memory changes between two points in time
Install this agent skill to your Project
npx add-skill https://github.com/dariushoule/x64dbg-skills/tree/main/skills/state-diff
SKILL.md
state-diff
Compare two debuggee state snapshots and produce a detailed change analysis — which registers changed, which memory regions were modified, and what the changes mean.
Instructions
Follow these steps exactly:
1. Identify snapshots
List the available snapshots:
dir "${CLAUDE_PLUGIN_ROOT}\snapshots"
If there are fewer than two snapshots, tell the user they need at least two snapshots (captured via /state-snapshot) and stop.
If the user specified two snapshot paths, use those directly. Otherwise, present the available snapshots and ask the user to pick the before (earlier) and after (later) snapshots.
2. Run the diff script
Execute the diff engine:
python "${CLAUDE_PLUGIN_ROOT}\skills\state-diff\state_diff.py" --before <before_snapshot_dir> --after <after_snapshot_dir>
The script writes diff_report.json into the after-snapshot directory by default. If the user specified a custom output path, pass --output <path>.
3. Read the report
Use Read to load the generated diff_report.json.
4. Analyze and reason
Interpret the diff report for the user:
-
Register changes: Explain what each changed register suggests. For example:
- RIP/EIP advanced → instructions were executed
- RSP/ESP changed → stack grew or shrank (function calls, local variables)
- RAX/EAX changed → likely a return value or computation result
- Flag changes → comparison or arithmetic results
-
Memory changes: Explain what modified regions likely represent:
- Stack region modifications → local variables written, function arguments pushed
- Heap regions → dynamic allocations or object mutations
- Image/module regions → self-modifying code or relocations
- Look at the actual byte patterns for clues (string data, pointers, counters)
-
Synthesize a narrative: Combine register and memory observations into a coherent explanation of what the program did between the two snapshots. For example: "The program called function X, which allocated Y bytes on the stack and wrote a string to a heap buffer."
Present the analysis in a clear, structured format with the raw evidence (hex values, addresses) supporting each conclusion.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
find-oep
Smart trace-based OEP finder for packed/protected PE executables. Traces through packer stubs using intelligent stepping, anti-debug evasion, and heuristic OEP detection, then captures a state snapshot at the original entry point.
decompile
Decompile a function to C-like pseudocode using angr
state-snapshot
Capture a full debuggee state snapshot (all committed memory regions + processor state) to disk for offline analysis
yara-sigs
Scan a state snapshot's memory dumps with YARA signatures to detect packers, crypto constants, malware, and more
tracealyzer
Trace execution (into or over calls) for N steps or until a condition, then analyze the recorded instruction log
vuln-hunter
Hunt for vulnerabilities in a running debuggee by analyzing imports/exports, triaging attack surface, and iteratively testing for bugs with PoC generation.
Didn't find tool you were looking for?