Source profileQuality 98/100

brucesongs/kali-claw/skills/binary-reverse/SKILL.md

binary-reverse

Binary reverse engineering covers the complete chain from static analysis, dynamic debugging, to vulnerability discovery, exploit development, and malware analysis.

Source repository stars
65
Declared platforms
2
Static risk flags
1
Last source update
2026-08-19
Source checked
2026-08-25

Decision brief

What it does: where it fits

Supplementary Files: - payloads.md — Command and payload collection organized by 10 major phases (binary identification, radare2 analysis, GDB debugging, buffer overflow, shellcode, ROP chain, ret2libc, format string, r2pipe scripting, firmware extraction) - test-cases.md — Stru…

Best for

  • CTF Pwn / Reverse Challenges - Analyze challenge binaries, discover vulnerabilities, and construct exploits to capture flags
  • Malware Analysis - Static and dynamic analysis of viruses, trojans, and rootkits; extract IoCs and understand attack behavior
  • Firmware Security Audit - Use binwalk to extract embedded device firmware, reverse engineer closed-source components

Not for

  • A frequent mistake in binary exploitation is relying solely on decompiler output without cross-referencing assembly — decompilers often misrepresent pointer arithmetic, union types, and optimized loops. Another common e…

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeDeclaredSource recordInstall path and trigger
CursorDeclaredSource recordInstall path and trigger
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/brucesongs/kali-claw --skill "skills/binary-reverse"
Safe inspection promptEditorial

Inspect the Agent Skill "binary-reverse" from https://github.com/brucesongs/kali-claw/blob/a3205f5484ca8fec9fd809f3c16fe41fbc6ac87e/skills/binary-reverse/SKILL.md at commit a3205f5484ca8fec9fd809f3c16fe41fbc6ac87e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    1. radare2 Analysis Workflow

    Review the “1. radare2 Analysis Workflow” section in the pinned source before continuing.

    Review and apply the “1. radare2 Analysis Workflow” source section.
  2. 02

    Step 1: checksec confirms protection status

    Review the “Step 1: checksec confirms protection status” section in the pinned source before continuing.

    Review and apply the “Step 1: checksec confirms protection status” source section.
  3. 03

    Step 2: radare2 locate dangerous functions

    r2 -A binary afl | grep -E "strcpy|sprintf|gets|read" pdf @ sym.vulnerablefunction

    r2 -A binary afl | grep -E "strcpy|sprintf|gets|read" pdf @ sym.vulnerablefunction
  4. 04

    Step 3: Use pattern to calculate offset

    Review the “Step 3: Use pattern to calculate offset” section in the pinned source before continuing.

    Review and apply the “Step 3: Use pattern to calculate offset” source section.
  5. 05

    5. checksec Security Assessment and Exploitation Strategy

    Review the “5. checksec Security Assessment and Exploitation Strategy” section in the pinned source before continuing.

    Review and apply the “5. checksec Security Assessment and Exploitation Strategy” source section.

Permission review

Static risk signals and limitations

Reads files

low · line 316

The documentation asks the agent to read local files, directories, or repositories.

**Process doppelgänging**: Use Transactional NTFS to load process from rolled-back file.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score98/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars65SourceRepository attention, not individual Skill quality
Compatibility2 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
brucesongs/kali-claw
Skill path
skills/binary-reverse/SKILL.md
Commit
a3205f5484ca8fec9fd809f3c16fe41fbc6ac87e
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Skill: Binary Analysis & Reverse Engineering

Supplementary Files:

  • payloads.md — Command and payload collection organized by 10 major phases (binary identification, radare2 analysis, GDB debugging, buffer overflow, shellcode, ROP chain, ret2libc, format string, r2pipe scripting, firmware extraction)
  • test-cases.md — Structured test case templates (11 cases covering binary identification, vulnerability discovery, exploit development, defense bypass — 4 categories)

Summary

Binary Reverse skill domain covering binary analysis operations.

Tools: radare2, ghidra, objdump, gdb, checksec, ROPgadget, binwalk, readelf (+2 more)

Domain: binary-analysis

Description

Binary reverse engineering covers the complete chain from static analysis, dynamic debugging, to vulnerability discovery, exploit development, and malware analysis. The core objective is to understand the internal logic of compiled programs, identify security flaws, assess the strength of protection mechanisms, and develop reliable exploit code.

Mastering this skill requires deep understanding of CPU architectures (x86/ARM/MIPS), ELF/PE/Mach-O file formats, calling conventions, and memory layouts. The Agent has expert-level radare2 skills, including the plugin system, r2pipe scripting, automated analysis pipelines, and can comprehensively use Ghidra, GDB, checksec, ROPgadget, and other tools to complete the full process from binary identification to shellcode construction.


Use Cases

  1. CTF Pwn / Reverse Challenges - Analyze challenge binaries, discover vulnerabilities, and construct exploits to capture flags
  2. Malware Analysis - Static and dynamic analysis of viruses, trojans, and rootkits; extract IoCs and understand attack behavior
  3. Firmware Security Audit - Use binwalk to extract embedded device firmware, reverse engineer closed-source components
  4. Vulnerability Research - Analyze binary differences before and after CVE patches, reconstruct vulnerability causes and write PoCs
  5. Software Supply Chain Verification - Reverse engineer third-party closed-source dependencies, check for backdoors or unsafe behavior

Core Tools

ToolPurposeCommand Example
radare2Full-featured reverse engineering framework, static/dynamic analysis, script automationr2 -A binary && afl || pdf @ main
ghidraNSA open-source reverse engineering platform, decompiler, GUI, headless batch analysisanalyzeHeadless /tmp project binary
objdumpQuick disassembly, ELF/PE structure viewingobjdump -d -M intel binary
gdbDynamic debugger, breakpoints, registers, memory inspectiongdb ./binary && break main && run
checksecBinary security mechanism detection (NX, ASLR, Canary, PIE, RELRO)checksec --file=binary
ROPgadgetROP gadget search and chain constructionROPgadget --binary binary --ropchain
binwalkFirmware signature identification and extractionbinwalk -Me firmware.bin
readelfIn-depth ELF format analysis (section table, symbol table, relocation)readelf -a binary
stringsQuick extraction of readable strings for information gatheringstrings -n 8 binary

Methodology

Attack Chain

Binary ID           Static Analysis       Dynamic Analysis     Vulnerability Discovery
(file, checksec)  (r2 -A, objdump)     (gdb, r2 -d)        (pattern, fuzz)
     |                 |                 |               |
     v                 v                 v               v
Security Assessment  Exploit Dev         Shellcode          Report & Fix
(ASLR, Canary,     (ROP chain,         (arch adaptation,   (root cause analysis,
 NX, PIE, RELRO)   ret2libc)           encoding bypass)    hardening advice)

Phase Details:

  1. Binary Identification - Use file to determine architecture and format, checksec to assess protection mechanism strength
  2. Static Analysis - radare2 deep analysis (aaa), identify function lists, strings, cross-references, control flow
  3. Dynamic Analysis - Set breakpoints in GDB/radare2 debug mode, track register and memory state changes
  4. Vulnerability Discovery - Locate dangerous function calls (strcpy/sprintf/printf), calculate overflow offsets
  5. Exploit Development - Choose exploitation strategy based on checksec results (ROP, ret2libc, ret2plt)
  6. Shellcode - Write or adapt shellcode for the target architecture, handle bad characters and encoding

Defense Perspective

Protection MechanismFunctionBypass Approach
NX (No-eXecute)Stack/heap non-executable, prevents direct shellcode executionROP, ret2libc, ret2plt
ASLRAddress space layout randomization, different load addresses each timeInformation leakage, partial overwrite, ret2plt
Stack CanaryValidate stack canary value before function returnFormat string leak canary, byte-by-byte brute force
PIEExecutable base address randomizationInformation leak base address, partial overwrite
Full RELROGOT table read-only, prevents GOT overwritingTarget other write destinations (__malloc_hook, __free_hook)
Safe CodingReplace dangerous functions with safe alternativesEliminate strcpy/sprintf/gets calls at the source

Practical Steps

For detailed commands and payloads see payloads.md, and for the complete test checklist see test-cases.md. Below is a summary of core operations for each phase.

1. radare2 Analysis Workflow

# Quick analysis mode (recommended for daily use)
r2 -A binary              # Load and auto-analyze (equivalent to aaa)

# Deep analysis mode (complex targets)
r2 -AA binary             # Deeper auto-analysis

# Common analysis commands
afl                       # List all functions
iz                        # Extract all strings (including data segments)
pdf @ sym.main            # Disassemble main function
axt sym.imp.strcpy        # Find all cross-references to strcpy
iS                        # Section table info (.text, .data, .bss)
ii                        # Import function table
VV                        # Visual control flow graph mode

# Debug mode
r2 -d binary              # Load in debugger mode
db main                   # Set breakpoint at main
dc                        # Continue execution
dr                        # Display register state
px @ rsp                  # Inspect stack memory

2. Buffer Overflow Detection and Offset Calculation

# Step 1: checksec confirms protection status
checksec --file=binary
#    NX      : disabled    --> Shellcode executable on stack
#    Canary  : disabled    --> No stack protection
#    PIE     : disabled    --> Fixed addresses

# Step 2: radare2 locate dangerous functions
r2 -A binary
afl | grep -E "strcpy|sprintf|gets|read"
pdf @ sym.vulnerable_function
# Observe buffer size and dangerous function calls

# Step 3: Use pattern to calculate offset
# Generate unique pattern (in GDB)
gdb ./binary
pattern_create 200
run $(pattern)
# Observe crash value overwriting RIP/EIP
pattern_offset <crash_value>

3. ROP Chain Construction

# Search available gadgets
ROPgadget --binary binary --only "pop|ret"
ROPgadget --binary binary --only "int|ret"

# Auto-generate ROP chain
ROPgadget --binary binary --ropchain

# Search gadgets in radare2
r2 -A binary
/R pop rdi; ret           # Search specific gadget sequence
/R ret                    # Search ret gadget (for stack alignment)

# Common exploitation strategy selection:
# - NX disabled  --> Direct shellcode on stack
# - NX enabled, no ASLR --> ret2shellcode (BSS section)
# - NX + ASLR    --> ret2libc / ROP / ret2plt

4. radare2 Script Automation

#!/usr/bin/env python3
"""r2pipe automation script - batch vulnerability scanning"""
import r2pipe

def analyze_binary(filepath):
    r2 = r2pipe.open(filepath)
    r2.cmd("aaa")  # Deep analysis

    # Extract key information
    functions = r2.cmd("afl")
    strings = r2.cmd("iz")

    # Scan for dangerous function calls
    dangerous = ["strcpy", "sprintf", "gets", "strcat", "printf"]
    findings = []
    for func in dangerous:
        xrefs = r2.cmd(f"axt sym.imp.{func}")
        if xrefs.strip():
            findings.append({"function": func, "xrefs": xrefs})

    # Check for hidden functions (uncalled symbols)
    all_funcs = r2.cmd("afl~sym.").strip().split("\n")
    # Cross-reference analysis to find orphaned functions

    r2.quit()
    return {"file": filepath, "findings": findings, "functions": functions}

5. checksec Security Assessment and Exploitation Strategy

# Complete security assessment
checksec --file=binary --output=json

# Strategy selection based on protection combination:
# +---------+--------+--------+------------------+
# | NX      | ASLR   | Canary | Strategy          |
# +---------+--------+--------+------------------+
# | off     | off    | off    | Direct shellcode   |
# | on      | off    | off    | ret2libc           |
# | on      | on     | off    | ROP + info leak    |
# | on      | on     | on     | Leak + ROP         |
# +---------+--------+--------+------------------+

# Verify ASLR status
cat /proc/sys/kernel/randomize_va_space
# 0 = disabled, 1 = partial randomization, 2 = full randomization

# Compile unprotected binary (for practice)
gcc -o target target.c -fno-stack-protector -z execstack -no-pie

Hacker Laws

LawManifestation in Binary Reverse Engineering
First PrinciplesDo not rely on black-box tool output; understand the semantics of each assembly instruction. Understanding calling conventions is necessary to correctly trace parameters; understanding memory layout is necessary to precisely calculate offsets
Divergent Thinking FirstWhen conventional exploitation paths are blocked, seek alternative attack surfaces: GOT overwriting, __malloc_hook, .dtors, vtable hijacking, one_gadget
Trust but VerifyDecompiler output may be inaccurate; cross-validate radare2 and Ghidra results. checksec reports also need practical verification that protections are actually effective
Skill Over CredentialsCTF rankings and CVE counts reflect practical ability better than certifications. The core of binary analysis is the intuition and pattern recognition formed through extensive practice

Automation and Scripting

Automated binary analysis pipelines drastically reduce manual effort when assessing large numbers of binaries. r2pipe enables Python-driven batch scanning that can process entire firmware images or package collections, flagging dangerous function calls and missing protections automatically. Combining radare2 scripting with Ghidra headless analysis creates a powerful hybrid pipeline where radare2 handles rapid triage and Ghidra performs deep decompilation on candidates that warrant closer inspection.

Common Pitfalls

A frequent mistake in binary exploitation is relying solely on decompiler output without cross-referencing assembly — decompilers often misrepresent pointer arithmetic, union types, and optimized loops. Another common error is neglecting to verify ASLR status at runtime (not just at compile time), since some distributions disable ASLR for specific binaries via personality flags. Always confirm protection status with checksec and /proc/sys/kernel/randomize_va_space simultaneously before committing to an exploitation strategy.

Detection Methods

Identifying vulnerable binaries requires systematic pattern recognition across multiple dimensions. String analysis (strings -n 8) reveals hardcoded paths, credentials, and format strings that may be exploitable. Symbol table inspection (readelf -s, nm) exposes dangerous imported functions like strcpy, system, and sprintf. Cross-reference analysis in radare2 (axt @ sym.imp.strcpy) maps every call site, enabling prioritized review of the most dangerous functions first.

Binary Analysis Indicators (Defender Perspective)

  • Hardcoded secrets: Strings analysis revealing API keys (AKIA...), JWT tokens (eyJ...), private keys (-----BEGIN RSA PRIVATE KEY-----); use trufflehog filesystem or secretscanner.
  • Dangerous function imports: strcpy, strcat, sprintf, gets, system, popen — flagged via checksec and readelf --dyn-syms.
  • Missing protections: Binaries without RELRO, Stack Canary, NX, PIE; detected via checksec --file=binary.
  • Debug symbols retained: Production binaries with symbol table intact; expose internal function names, variable names.
  • Suspicious entropy: Sections with high entropy indicate packed / encrypted payloads; use binwalk -E binary.

Runtime / Dynamic Analysis Indicators

  • Debugging artifacts: Process attaching via ptrace; detected via /proc/<pid>/status TracerPid field.
  • Memory protection bypass: Calls to mprotect changing memory to PROT_WRITE|PROT_EXEC; signal of shellcode injection.
  • Anomalous syscalls: Process calling execve from non-shell binary; unexpected open("/etc/shadow") from non-setuid binary.
  • Library injection: LD_PRELOAD environment variable set; LD_LIBRARY_PATH modifications; detected via /proc/<pid>/maps.
  • Function hooking: PLT / GOT modifications; detected via comparing in-memory GOT to on-disk version.

Reverse Engineering Tool Detection

  • Process enumeration: Defenders detect gdb, radare2, ghidra, ida, frida-server processes running on production systems.
  • Network anomalies: Frida default port (27042); Ghidra debug bridge (18001); IDA sync ports.
  • Filesystem artifacts: /tmp/.ghidra project files; ~/.radare2_history; ~/.gdb_history containing sensitive commands.
  • Memory snapshots: Detecting gcore or procdump invocations; large memory files in /tmp.

Anti-Tamper Detection

  • Integrity monitoring: AIDE / OSSEC detecting binary modifications; hash mismatch on /usr/bin/*.
  • Code signing validation: macOS Notarization; Windows Authenticode; Linux IMA/EVM signatures.
  • Trusted boot: UEFI Secure Boot detects unsigned bootloader / kernel.
  • eBPF observability: Modern kernels with eBPF can monitor every syscall from analysis tools.

SIEM Detection Rules

  • Splunk SPL: index=linux sourcetype=auditd type=EXECVE | search a0 IN ("/usr/bin/gdb", "/usr/bin/r2", "/usr/bin/strace")
  • Sysmon Event ID 1: Process creation; alert on gdb.exe, ida.exe, x64dbg.exe on production endpoints.
  • Falco rule: Launching Suspicious Reverse Engineering Tool.
  • YARA: Scan filesystem for known RE tool signatures (frida-server, gdbserver).

Defense Evasion Techniques

Anti-Debugging

  • ptrace self-attach: Process attaches to itself via ptrace(PTRACE_TRACEME, 0, 0, 0); prevents gdb from attaching.
  • Timing checks: Measure time between two rdtsc instructions; debugger introduces delay.
  • INT 3 detection: Scan own code for 0xCC byte (breakpoint instruction); alert if found.
  • Hardware breakpoint detection: Check debug registers (DR0-DR7) via /proc/self/status or get_thread_area().
  • Single-step detection: Set Trap Flag (EFLAGS.TF); check if SIGTRAP handler receives unexpected signal.
  • Debug register poisoning: Set DR0 to invalid address; cause debugger to crash when continuing.

Anti-VM / Anti-Sandbox

  • MAC address check: VMware uses 00:50:56, 00:0C:29; VirtualBox uses 08:00:27; Hyper-V uses 00:15:5D.
  • CPU vendor check: cpuid instruction reveals hypervisor bit (CPUID.1:ECX[31]).
  • Timing anomalies: RDTSC inside VM shows non-monotonic or jittered timestamps.
  • Registry artifacts (Windows): HKLM\SOFTWARE\VMware, Inc.\VMware Tools; HKLM\HARDWARE\DESCRIPTION\System\BIOS (SystemManufacturer).
  • Filesystem artifacts: /proc/vz (OpenVZ); /proc/xen (Xen); /sys/class/dmi/id/product_name (VMware/VirtualBox/Hyper-V).
  • Process list check: vmtoolsd.exe (VMware); vboxservice.exe (VirtualBox); prl_tools_service.exe (Parallels).

Code Obfuscation

  • Packing: UPX, ASPack, Themida, VMProtect; detect via high-entropy sections and few imports.
  • Polymorphic code: Each execution generates different decryption key; same payload, different bytes.
  • Metamorphic code: Virus body is rewritten each generation (no static signature).
  • Control flow flattening: Replace if-else chains with switch dispatcher; defeats static analysis.
  • Junk code insertion: Insert no-op instructions (xchg eax, eax) between real instructions.
  • Opaque predicates: Conditions that always evaluate the same but are hard to statically determine.
  • String encryption: Encrypt sensitive strings; decrypt only at use; revealed via dynamic analysis only.

Anti-Instrumentation

  • Frida detection: Scan for frida-agent in /proc/self/maps; check for gum-js-loop thread; detect frida-server port (27042).
  • Hook detection: Compare function prologue in memory vs on-disk; detect inline hooks.
  • Inline syscall invocation: Use raw syscalls via syscall (x64) or int 0x80 (x86) to bypass libc hooks.
  • Self-integrity check: Compute hash of own .text section; abort if modified (defeats inline hooks).

Anti-Analysis Files

  • Anti-disassembly: Insert jmp to next instruction +垃圾 byte; confuses linear sweep disassemblers.
  • Anti-IDA patterns: Use instructions IDA handles poorly (e.g., aaa register on x86_64, BSWAP with 16-bit operand).
  • Resource section abuse: Embed misleading PE resources (icon, version info) to confuse analysts.
  • PDB path spoofing: Compile with fake PDB path (cargo build with custom debug info).

Stealth Execution

  • Process hollowing: Replace legitimate process memory with malicious code; appears as explorer.exe etc.
  • Process injection: Inject DLL / shellcode into running process via CreateRemoteThread or QueueUserAPC.
  • Reflective DLL injection: Load DLL from memory without touching disk; no file artifacts.
  • Atom bombing: Use Global Atom Table to deliver payload to other processes.
  • Process doppelgänging: Use Transactional NTFS to load process from rolled-back file.

Network C2 Stealth

  • Domain fronting: Use CDN for C2; appears as legitimate CDN traffic.
  • TLS fingerprinting: Use curl-impersonate or custom TLS stack to match Chrome / Firefox JA3 hash.
  • Protocol camouflage: C2 over DNS, ICMP, HTTPS (mimicking legitimate API calls).
  • ** beaconing jitter**: Random intervals between C2 check-ins to evade statistical detection.

Learning Resources

Supplementary files for this skill:

  • payloads.md — Complete command and payload collection (10 major phases, ready to copy and use)
  • test-cases.md — Structured test cases (11 case templates with preconditions and expected results)

Extended learning materials (guides/):

  • guides/Binary_Analysis_Reverse_Engineering_Story.md - radare2 complete learning path from beginner to expert level

Related skills:

  • skills/web-sqli/SKILL.md — SQL injection (web-side data extraction, complementary to binary reverse engineering)
  • skills/web-auth-bypass/SKILL.md — Authentication bypass (auxiliary reference when reverse engineering authentication protocols)

External resources:

Frequently asked questions

What to verify before installation and use

What does the binary-reverse source document cover?

Supplementary Files: - payloads.md — Command and payload collection organized by 10 major phases (binary identification, radare2 analysis, GDB debugging, buffer overflow, shellcode, ROP chain, ret2libc, format string, r2pipe scripting, firmware extraction) - test-cases.md — Stru…

How do I install binary-reverse?

The source record exposes this install command: npx skills add https://github.com/brucesongs/kali-claw --skill "skills/binary-reverse". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: claude code, cursor.

Which permission-related actions were detected?

Static rules flagged read-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing