The two core reversing tools — IDA Pro vs Ghidra for static analysis, x64dbg vs OllyDbg for dynamic — with practical selection guidance and the typical workflow for each.
⚡ Quick Bite · 30s
Disassembly translating binary into instruction flow, debugging to inspect registers and memory states, and why static and dynamic analysis are both essential.
Watch this 30-second summary before diving into the full article. Sign in to earn 5 leaderboard points.
Two categories of tools dominate the reverse engineering workflow:
Both are needed. The disassembler gives you the map; the debugger lets you walk through it in real time.
| Feature | IDA Pro | Ghidra |
|---|---|---|
| Developer | Hex-Rays (Belgium) | NSA (open-source, 2019) |
| Cost | Free (IDA Free) / Commercial | Free |
| Decompiler | Hex-Rays (F5) — industry gold standard | Built-in — very capable |
| Scripting | IDAPython | Java, Python |
| Collaboration | Limited | Ghidra Server (multi-analyst) |
| Architecture support | Very broad | Very broad |
| Industry adoption | Standard for commercial work | Growing rapidly |
Recommendation for this course: Start with Ghidra (free, full-featured). Add IDA when an employer or project requires it. Skills transfer directly — menu locations differ, concepts are identical.
1. Open sample → auto-analysis runs
2. Navigate to entry point (Edit → Jump to Entry Point)
3. Press Space to switch to Graph View
4. Double-click CALL instructions to follow into functions
5. Press F5 for decompiled pseudocode
6. Press X on any address to see cross-references
7. Press N to rename variables and functions
8. Add comments with ; or Ins key
1. Create new project → Import file
2. Auto-analysis runs (accept defaults)
3. Open CodeBrowser
4. Navigate via Symbol Tree or search
5. Use Decompiler window alongside disassembly
6. Right-click → Edit Function Signature to rename
7. Use Bookmarks for important locations
| Feature | x64dbg | OllyDbg |
|---|---|---|
| Architecture | 32-bit (x32dbg) and 64-bit | 32-bit only |
| Status | Active development | Legacy (no updates since 2013) |
| Cost | Free, open-source | Free |
| Key features | Scylla (dump/IAT fix), scripting, plugins | Compact UI, built-in assembler |
| ScyllaHide | Yes (anti-anti-debug plugin) | Limited version |
| Use case | Modern analysis — recommended | Appears in older tutorials only |
This course uses x32dbg (the 32-bit component of x64dbg) for all practical labs. OllyDbg appears in older tutorials; avoid it for new work.
| Action | Key |
|---|---|
| Step Into (follow CALL) | F7 |
| Step Over (skip CALL) | F8 |
| Run to Cursor | F4 |
| Run (until breakpoint) | F9 |
| Set software breakpoint | F2 |
| Restart | Ctrl+F2 |
| Navigate to address | Ctrl+G |
| Toggle graph view | Space |
| Tool | Purpose |
|---|---|
| PEStudio | PE header inspection, imports, entropy, strings |
| PE-Bear | Detailed PE structure viewer with hex correlation |
| Detect It Easy (DIE) | Packer/compiler identification by signature matching |
| FLOSS | Obfuscated string extraction (stack strings, XOR loops) |
| Capa | Capability detection mapped to MITRE ATT&CK |
| CFF Explorer | PE editing and header manipulation |
Start with this stack — all free, all production-quality:
Static: Ghidra + PEStudio + DIE + FLOSS + Capa
Dynamic: x32dbg (with ScyllaHide plugin)
Network: Wireshark + FakeNet-NG
Process: Process Hacker + Procmon
Add IDA Pro when:
The skills from Ghidra transfer immediately to IDA. The interface is different; the concepts are identical.
Sign in to mark this article as read and track your progress.