# Which Skill Module Should I Use for My Target Type in reverse-skill?

> Find the right reverse-skill module for your target type. Use the routing matrix to match intent and toolchain for optimal results.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: getting-started
- Published: 2026-08-07

---

**Use the routing matrix in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) to match your target type, user intent, and toolchain to the correct module.**

The reverse-skill repository implements a skill matrix architecture that routes every analysis request through three dimensions: target type, user intent, and toolchain. To determine which skill module you should use for your target type, you must reference the master routing table rather than guessing based on file extensions alone. This routing system ensures you always start with the most appropriate workflow for your specific reverse engineering task.

## Understanding the Skill Matrix Architecture

The routing system evaluates three dimensions before selecting a module:

1. **Target type** (e.g., APK, ELF, firmware, Wi-Fi)
2. **User intent** (decompile, dynamic hook, bypass, etc.)
3. **Toolchain** (IDA, radare2, Frida, MCP, etc.)

The authoritative mapping lives in **[`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)**, which serves as the single source of truth for module selection. According to the source code, you must match these dimensions before entering any skill module.

## Target Type to Skill Module Reference

The routing matrix maps common target types to their recommended entry modules. Consult this reference to identify your starting point:

| Target Type | Recommended Entry Module | Alternative(s) |
|-------------|-------------------------|----------------|
| APK / Android app | `apk-reverse/` (jadx + apktool) | Licensed JEB Pro; native `.so` → `ida-reverse/` or `radare2/` |
| Binary exe / dll / elf | `ida-reverse/` (IDA MCP workflow) | `radare2/` (CLI) or [`reverse-engineering/tools.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/tools.md) |
| JavaScript / Web front-end | `js-reverse/` (5-stage workflow) | `jshookmcp/` for browser-hooking |
| Firmware / IoT | `firmware-pentest/` (extract → EMBA → emulate → fuzz) | [`reverse-engineering/platforms.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/platforms.md) (static only) |
| DSL VM / custom bytecode | [`reverse-engineering/dsl-vm-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/dsl-vm-reverse/SKILL.md) | [`reverse-engineering/languages.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/languages.md) (real WASM) |
| Malware / virus sample | [`malware-analysis/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/malware-analysis/SKILL.md) (six-stage + YARA/Sigma) | `ida-reverse/` for deep dive |
| macOS / iOS | [`reverse-engineering/platforms.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/platforms.md) (Mach-O/ObjC/Swift) | `mobile-reverse/` for iOS-specific |
| Wi-Fi / wireless | `wifi-wireless/` | `attack-chain/` (close-range) |
| Windows AD / Kerberos | `windows-ad/` | `attack-chain/` (multi-stage) |

## Step-by-Step Routing Procedure

Follow this exact workflow to select your skill module:

1. **Identify the target type** based on file extension, platform, or device characteristics.
2. **Open [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)** and locate the row matching your target type.
3. **Read the "Recommended Entry"** column to determine the starting module.
4. **Open the module's [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md)** to access the detailed workflow before taking any action.

For example, when analyzing an Android APK:

```markdown
1. Target type → **APK / Android app**
2. Recommended module → `apk-reverse/`
3. Open skill guide → `apk-reverse/SKILL.md`

```

And for an ELF binary:

```markdown
1. Target type → **Binary exe/dll/elf**
2. Recommended module → `ida-reverse/`
3. Open skill guide → `ida-reverse/SKILL.md`

```

## Essential Files for Module Navigation

| File | Purpose |
|------|---------|
| [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) | Master matrix mapping **target type → skill module**; the authoritative source for routing decisions |
| `skills/<module>/SKILL.md` | Detailed, step-by-step workflow for the selected module (e.g., [`apk-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/apk-reverse/SKILL.md)) |
| [`skills/routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing_zh.md) | Chinese version of the routing matrix |
| [`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md) | Entry point for the overall router that points to [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) |
| [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md) | Lists actual tools available for each module to verify tool existence before use |

## Summary

- Always route first by checking **[`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)** before opening any skill module
- Match three dimensions: **target type**, **user intent**, and **toolchain**
- Start with the "Recommended Entry" module rather than alternatives unless you have specific licensing or technical constraints
- Read the module's **[`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md)** file before executing any reverse engineering actions
- For Mandarin speakers, **[`routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing_zh.md)** provides the complete matrix in Chinese

## Frequently Asked Questions

### What if my target type isn't listed in routing.md?

Check **[`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md)** for the overall router structure, or consult **[`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md)** to identify which tools support your file format. If the target type is truly novel, combine modules from [`reverse-engineering/platforms.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/platforms.md) and [`reverse-engineering/languages.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/reverse-engineering/languages.md) based on the underlying architecture and bytecode type.

### Can I skip the routing matrix and go directly to a skill module?

No. The routing matrix in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) is explicitly designed as the single source of truth to ensure you select the appropriate workflow for your specific combination of target type, user intent, and toolchain. Skipping this step risks using incompatible tools or missing critical analysis stages defined in the skill architecture.

### How do I handle mixed targets like APKs with native libraries?

According to the routing matrix, start with **`apk-reverse/`** for the base APK analysis using jadx and apktool. If you encounter native `.so` libraries, pivot to **`ida-reverse/`** or **`radare2/`** for the binary components, then return to the Android workflow for integration analysis.

### Where can I find the Chinese version of the routing documentation?

The repository maintains **[`skills/routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing_zh.md)**, which contains the complete skill matrix in Mandarin. This file provides identical target type mappings and module recommendations as the English [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md), ensuring non-English speakers can follow the same routing architecture.