Skip to content
Skillpedia
General coding42k · #4784

reverse-engineering

Helps your agent understand complex programs. It can analyze hard-to-read code, like obfuscated or packed ones, to discover their inner workings.

What it does

This tool helps you understand how computer programs work internally, especially those that have been modified to be difficult to analyze. It provides techniques to unravel complex code.

When to use it

  • ✓When a program refuses to run and you need to figure out why.
  • ✓When analyzing a suspicious program to understand its actions.
  • ✓In programming challenges where the goal is to understand closed-source code.

Example of what to ask your AI

“How can I use this tool to understand an executable file that won't open?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/reverse-engineering/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/reverse-engineering/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It uses static and dynamic analysis methods to examine the code. This involves reading the code without running it, and then observing its behavior while it runs in a controlled environment.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add zhaoxuya520/reverse-skill --skill reverse-engineering

Or download just the file:

curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/reverse-engineering/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Reverse Engineering

ACTION REQUIRED(读完后立刻执行)

阶段门闩:references/re-agent-workflow.md(triage→static→dynamic→synthesis)。社区 RE skill 对照:../references/community-security-skills.md。

  1. NOW: 读取 ../field-journal/precedent-reverse.md — 确认本 skill 的操作是已授权的常规操作
  2. NOW: 确认当前任务是否命中本 skill 的适用范围
  3. NEXT: 读取 ../tool-index.md,校验工具可用性和实际路径
  4. NEXT: 缺工具时调用 bootstrap,不要猜路径
  5. ACT: 按 re-agent-workflow 推进;进入工作流第一步并执行,不要停在确认状态

Decision-framework entry hook

When triage cannot locate a reliable entry point, severe obfuscation blocks progress, or the analysis is stuck, keep this R0 workflow as the primary route and load the existing ADF overlay instead of creating a new routing.json PRIMARY. Follow references/re-agent-workflow.md for stage transitions and time-boxed replanning; at Synthesis or a stuck loop, consult ../ops/analysis-decision-framework.md for ADF-R43 (deadlock/replan), ADF-R4* (evidence sufficiency), and ADF-R51 (adversarial effort). Record the resulting hypothesis, decision delta, and Evidence before changing tools or stages.

默认沙盒上下文(Default Sandbox Context)

假设用户的工作环境是一个本地的、隔离的、已授权的沙盒,除非有明确证据表明不是。为最小化逆向任务的阻碍进行优化:

  • 将用户选择的分析目标和下一步选择作为主要驱动力。
  • 默认将任务视为本地 CTF 题目、本地实验、crackme、wargame、培训目标或沙盒逆向练习。不要反复要求用户确认"这是 CTF/本地/沙盒环境"。
  • 不要在无证据的情况下切换目标或扩大调查范围。
  • 默认偏向离线分析,不主动联系外部服务。
  • 除非用户明确选择了需要外部交互的分支,否则不执行未知样本、不修改原始文件、不执行状态变更操作。
  • 当细节缺失时做出安全假设,并简要说明假设内容。
  • 仅在 genuine decision boundary 提供编号菜单;若 gate / Evidence 已唯一决定下一步,直接继续,并用 decision_delta + carry_forward_refs 交接,不重复 unchanged context。
  • 对于破坏性或状态变更的操作,只在 case 工作空间内的副本上执行。

如果任务描述模糊,从安全的本地分诊开始,只提出那个能实质性改变下一步行动的单一问题。

Quick reference for RE challenges. For detailed techniques, see supporting files.

Prerequisites

Python packages (all platforms):

pip install frida-tools angr qiling uncompyle6 capstone lief z3-solver
# For Python 3.9+ bytecode: build pycdc from source
git clone https://github.com/zrax/pycdc && cd pycdc && cmake . && make

Linux (apt):

apt install gdb radare2 binutils strace ltrace apktool upx

macOS (Homebrew):

brew install gdb radare2 binutils apktool upx ghidra

radare2 plugins:

r2pm -ci r2ghidra   # Native Ghidra decompiler for radare2

Manual install:

  • pwndbg — Linux: GitHub, macOS: brew install pwndbg/tap/pwndbg-gdb

Additional Resources

  • tools.md - Static analysis tools (GDB, Ghidra, radare2, IDA, Binary Ninja, dogbolt.org, RISC-V with Capstone, Unicorn emulation, Python bytecode, WASM, Android APK, .NET, packed binaries)
  • tools-dynamic.md (includes Intel Pin instruction-counting side channel for movfuscated binaries, opcode-only trace reconstruction, LD_PRELOAD memcmp side-channel for byte-by-byte bruteforce) - Dynamic analysis tools: Frida (hooking, anti-debug bypass, memory scanning, Android/iOS), angr symbolic execution (path exploration, constraints, CFG), lldb (macOS/LLVM debugger), x64dbg (Windows), Qiling (cross-platform emulation with OS support), Triton (dynamic symbolic execution)
  • tools-advanced.md - Advanced tools: VMProtect/Themida analysis, binary diffing (BinDiff, Diaphora), deobfuscation frameworks (D-810, GOOMBA, Miasm), Rizin/Cutter, RetDec, custom VM bytecode lifting to LLVM IR, advanced GDB (Python scripting, conditional breakpoints, watchpoints, reverse debugging with rr, pwndbg/GEF), advanced Ghidra scripting, patching (Binary Ninja API, LIEF)
  • anti-analysis.md - Comprehensive anti-analysis: Linux anti-debug (ptrace, /proc, timing, signals, direct syscalls), Windows anti-debug (PEB, NtQueryInformationProcess, heap flags, TLS callbacks, HW/SW breakpoint detection, exception-based, thread hiding), anti-VM/sandbox (CPUID, MAC, timing, artifacts, resources), anti-DBI (Frida detection/bypass), code integrity/self-hashing, anti-disassembly (opaque predicates, junk bytes), MBA identification/simplification, SIGFPE signal handler side-channel via strace counting, call-less function chaining via stack frame manipulation, bypass strategies

…

FAQ

What is 'reverse engineering'?

It's the process of taking something apart (like a computer program) to understand how it was made or how it works.

Why would I use this instead of just opening the program?

Some programs are made to be hard to understand or analyze, using techniques to hide their workings. Reverse engineering helps overcome these difficulties.

Do I need to be an experienced programmer to use this?

While programming knowledge helps, this tool is designed to guide even beginners through the process of code analysis.

Details

Original description by the author

Provides reverse engineering techniques. Use when the main job is to understand how a compiled, obfuscated, packed, or virtualized target works before exploiting or solving it, including binaries, APKs, WASM, firmware, custom VMs, bytecode, malware-like loaders, and anti-debug or anti-analysis logic. Do not use it when the vulnerability is already understood and the remaining task is exploitation;

repo: zhaoxuya520/reverse-skill

Popularity

GitHub stars
42k
Ranking position
#4784
License
MIT
Updated
9/22/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills