binary-analysis-patterns

Reconstruct program logic from assembly and decompiled output.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/Jhabbig/Habbig --skill binary-analysis-patterns-jhabbig
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: binary-analysis-patterns
Source: https://github.com/Jhabbig/Habbig/tree/main/.claude/plugins/wshobson/reverse-engineering/skills/binary-analysis-patterns
Command: npx skills add https://github.com/Jhabbig/Habbig --skill binary-analysis-patterns-jhabbig

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you make sense of compiled programs by turning raw assembly, decompiler output, and low-level patterns into understandable logic, making reverse engineering faster and more reliable.

Core Features & Use Cases

  • Disassembly Guidance: Recognize prologues, epilogues, calling conventions, and instruction-level patterns across common architectures.
  • Control Flow Reconstruction: Identify branches, loops, switches, and other execution structures from optimized machine code.
  • Data Structure Recovery: Infer arrays, structs, linked lists, and variable types from memory access patterns.
  • Decompiler Support: Improve analysis in tools like Ghidra and IDA with practical heuristics, scripting patterns, and naming strategies.
  • Use Case: If you receive an unknown executable, this Skill can help you triage imports, trace functions, recover arguments, and document likely behavior with higher confidence.

Quick Start

Use the binary-analysis-patterns skill to analyze this function, identify its calling convention and control flow, and summarize the recovered logic in plain English.

Frequently Asked Questions about binary-analysis-patterns

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

FAQPage Schema
How do I reconstruct program logic from disassembly and decompiled output?

Recovering control flow from optimized machine code involves identifying branches, loops, and switches within the assembly. You map these execution structures by tracing jumps and comparing addresses against known compiler patterns for conditional logic and iteration.

Does this binary analysis approach work with both x86-64 and ARM architectures?

Yes, this static reverse engineering workflow applies directly to both x86-64 and ARM architectures. It recognizes architecture-specific prologues, epilogues, and instruction-level patterns to help you accurately trace functions and infer behavior across different compiled binaries.

How do I infer data structures and variable types from memory access patterns?

Inferring data structures from memory access patterns requires analyzing how assembly instructions load and store data. You can identify arrays, structs, and linked lists by tracking offset calculations and pointer dereferences to recover the original variable types.

What is the best way to speed up manual reverse engineering in tools like Ghidra?

To speed up manual reverse engineering in Ghidra, you should apply practical heuristics, scripting patterns, and naming strategies. These decompiler support techniques help you quickly triage imports, trace functions, and document likely behavior with higher confidence.

Why does decompiled output sometimes misinterpret optimized machine code?

Decompiled output often misinterprets optimized machine code because aggressive compiler optimizations obscure standard prologues, inline functions, and control flow structures. Decompiler-specific heuristics are required to correct these misinterpretations and accurately recover the underlying logic.