A curated list of awesome reverse engineering resources to make you better!
Managed by Reversing.ID for the reversing community.
Software Reverse Engineering focus on code, related data, and architecture which build a complete software.
The goals:
- Recover lost information, or to make documentation.
- Detect side effects (bugs, backdoor, vulnerabilities)
- Synthesis higher abstraction.
- Facilitate reuse.
In most case, the target of Software Reversing is code in compiled form (native or intermediate), either executable or libraries.
- Resources
- Static Analysis
- Dynamic Analysis
- Automation & Frameworks
- Code Protection & Anti-Analysis
- Visualization & Misc
- MCP Servers
- Tool Scripting & Plugins
Reversing Concept
- Reverse Engineering for Beginners
- Practical Reverse Engineering
- Reversing: Secrets of Reverse Engineering
- Practical Binary Analysis
Tools
Assembly and languages
Malware Analysis
- Practical Malware Analysis
- Learning Malware Analysis
- Malware Analyst's Cookbook
- Rootkits and Bootkits
Specific topic on Software Reverse Engineering
- Next Generation debugger for reverse engineering
- Behind Enemy Lines Reverse Engineering C++ in Modern Ages
- Overcoming Java Vulnerabilities
- Reverse engineering tools review
- Intercepting DLL libraries calls. API hooking in practice
- Windows Hot Patching Mechanism Explained
- How to write a CrackMe for a CTF competition
- Anti reverse engineering. Malware vs Antivirus Software
- Code of destruction – malware analysis
- Polymorphic Encryption Algorithms
- Reversing reading - coming soon.
Reverse Engineering Courses
- Lenas Reversing for Newbies
- Open Security Training
- Dr. Fu's Malware Analysis
- Binary Auditing Course
- TiGa's Video Tutorials
- Legend of Random
- Practical Malware Analysis
- Modern Binary Exploitation
- RPISEC Malware Course
- begin.re
- RE101 + RE102
- ARM Assembly Basics
- Offensive and Defensive Android Reversing
Binary Analysis Channels
- OALabs
- MalwareTech
- GynvaelEN
- VirusBtn
- Intro to WinDBG
- hasherzade
- Colin Hardy
- MalwareAnalysisHedgehog
- LiveOverflow
Practice Reverse Engineering
Crackmes and reversing challenges
- Reversing.ID Crackmes Repository
- Crackmes.one
- OSX Crackmes
- ESET Challenges
- Flare-on Challenges
- Github CTF Archives
- Reverse Engineering Challenges
- xorpd Advanced Assembly Exercises
- CrackMy.App
Malware samples and information sharing
Learning Assembly
- Low-level Code Reference
- Assembly code size optimization tricks
- When and how to use an assembler. Assembly programming basics
Intermediate Representation
Hex editor lets you view/edit the binary data of a file.
Multi/cross platform
Windows
Mac OS X
File information and format identifier
Executable detector
Executable explorer
Dependency check
- DependencyWalker
- slid - statically linked library detector.
Format parser and modification
- ImHex - explore, edit, and represent binary structure with C++-like pattern language.
- Kaitai Struct - develop format parsers by declarative approach.
- LIEF - Library to Instrument Executable Formats, easily parse, modify and abstract many file formats.
- QuickBMS - easily extract and modify file format with support of encryption, compressions, obfuscation, and other algorithms.
Java bytecode editor
Native (x86 / x64 / ARM)
- Ghidra
- IDA Pro
- Binary Ninja
- Relyze Desktop
- Radare2 // Cutter
- Hopper
- fREedom
- Retdec
- Snowman
- objdump
- Medusa
- Plasma
- Capstone - lightweight multi-platform, multi-architecture disassembly framework based on LLVM.
- distorm3 - lightweight library for disassembling binary stream.
- zydis - fast and lightweight x86/x86-64 disassembler library.
Android / DEX
- JEB2 - eclipse-based integrated reverse engineering platform for analyzing various parts of Android application components.
- jadx - DEX to Java decompiler
.NET
AutoIT
Cocos2d-x / Game Binary
- reverse - static analysis and XXTEA key extraction tool for Cocos2d-x apps.
Dart / Flutter
- unflutter - static analyzer for Flutter/Dart AOT snapshots, recovers function names, class layouts, and generates Ghidra/IDA metadata.
Delphi
Ethereum (EVM / Solidity)
- evmdis - EVM disassembler by static analysis on the bytecode.
- pyevmasm - assembler and disassembler library for EVM (Ethereum Virtual Machine).
Flash
- JPEXS Flash Decompiler - open source SWF decompiler and editor, convert SWF to FLA, edit ActionScript, replace resources (images, sounds, texts, fonts).
- Flare - extract all scripts from SWF.
Java
- Bytecode Viewer - aggregate of various tools.
- Procyon
- CFR
- FernFlower
- Krakatau
- Luyten
JavaScript
- spidermonkey-dumper - decode and disassemble SpiderMonkey .jsc bytecode from Cocos2d-x games.
Lua
- UnLuac - decompiler for Lua 5.0 - 5.4 and require debugging information (non-stripped).
- LuaDec - decompiler based on luadec 5.0.x and LuaDec51.
Python
- uncompyle6
- decompile3 - reworking and refactoring of
uncompyle6which focus on Python 3.7+ - pycdc - disassembler and decompiler written in C++.
- dis - built-in python disassembler.
- pyfalcon - cross-version Python disassembler written in Rust.
- pycdas - disassembler written in C++.
WebAssembly (WASM)
- WebAssembly Binary Toolkit (wabt) - official toolkit for disassemble and decompile WebAssembly.
- Re:Wasm
Multi/cross platform
Windows
Linux
Virtual Machine Introspection
Hypervisor debugger
- HyperDbg - minimalistic hypervisor with hardware-assisted virtualization to debug kernel.
Python source code/bytecode debuggers
- pdb - built-in python interactive source debugger.
- python3-trepan - gdb-like debugger supports both source code and bytecode debugging.
GDB enrichment
OllyDbg variants
Graphic debugger
Native
- DynamoRIO - runtime code manipulation system that supports code transformation on any part of program.
- Frida - scriptable DBI toolkit for cross-platform target.
- Pin
- QBDI - modular, cross-platform, and cross-architecture DBI framework backed by LLVM.
.NET
- Hawkeye2 - view, edit, analyze, and invoke (almost) any object from .net applications.
- UnityDoorstop - execute managed assemblies inside Unity as early as possible.
Android
- ArtHook - self-contained, dependency-free ART method hooking for Android 8-15.
- unicorn
- libemu
- pegasus
- galago - ARM64 emulation for XXTEA key extraction from Cocos2d-x native libraries.
Network simulation
Packet capture
Process
Tracer
- API Monitor
- Process Monitor
- Studio
- fibratus - explore and trace windows kernel.
- TCPView
- CDA: Code Dynamic Analysis
Sandbox
Misc
- Objective-See Utilities
- XCode Instruments - XCode Instruments for Monitoring Files and Processes User Guide
- dtrace script for Mac - sudo dtruss = strace dtrace recipes
- fs_usage - report system calls and page faults related to filesystem activity in real-time. File I/O: fs_usage -w -f filesystem
- dmesg - display the system message buffer.
- Mira - Runtime protection analysis platform for third-party Android and iOS apps, enabling AI to use host-app-side shell, Java, Native, and Frida capabilities for environment risk detection and hardening validation.
- Angr - python framework for analyzing binaries, combines both static and dynamic symbolic (concolic) analysis.
- Triton - dynamic binary analysis (DBA) framework.
- BAP - suite of utilities and libraries that enable analysis of programs in their machine representations.
- BitBlaze
- PANDA - Platform for Architecture-Neutral Dynamic Analysis, built on QEMU system emulator, analyze code in runtime.
- BARF
- S2E - platform for in-vivo analysis of software systems.
- miasm - analyze / modify / generate binary program with python.
- soot - java optimization framework.
Symbolic Execution
- KLEE - dynamic symbolic execution engine built on top of the LLVM compiler infrastructure.
- manticore - symbolic execution tool for analysis of smart contracts and binaries.
- Kite - conflict-driven symbolic execution tool (proof of concept).
- jCUTE - Java Concolic Unit Testing Engine, automatically generate unit tests for Java programs.
- ExpoSE - dynamic symbolic execution engine for JavaScript.
- ESILSolve - python symbolic execution framework using r2 and ESIL.
Binary Lifting
- McSema - framework for lifting x86, amd64, and aarch64 program binaries to LLVM bitcode.
Theorem Provers & Solvers
Native
AutoIt scripts
Native
- LLVM Deobfuscator
- SATURN - software deobfuscation framework based on LLVM.
.NET
Java
Javascript
PHP
Python
- bonedensity - deobfuscator for PyArmor.
- Hyperion-deobfuscator - deobfuscator for Hyperion.
String extraction
Android
- FUU - [F]aster [U]niversal [U]npacker.
- TitanEngine
Import reconstructor
Data-type reconstructor
- ReClassEx
- ReClass.NET - port of ReClass to .NET.
Android DEX dumper
- eBPFDexDumper - dump DEX from memory using eBPF hooking on Android.
- eBPFDexDumper-rs - alternative of dumping DEX from memory using eBPF (written in Rust).
See also Format Reverse Engineering.
Office Doc and Macro
- bingrep - grep through binaries.
- Assembly REPL - native raw assembly, LLVM IR, C, C++, and Objective-C REPLs for macOS and Linux.
MCP (Model Context Protocol) servers for integrating reversing tools with LLM workflows.
- ida-headless-mcp - headless IDA Pro binary analysis via MCP, enables LLM-driven reversing workflows.
- GhidraMCP
- LLDB - official native MCP support as of June 2025, plus community implementations.
- GDB MCP Server - multiple implementations providing comprehensive debugging capabilities.
- frida-mcp - MCP server for Frida with process management, script injection, and real-time instrumentation.
- WireMCP - Wireshark MCP server with threat detection capabilities.
- IDA Python Src - source code for IDAPython plugin, enable python script running in IDA Pro.
References
- IDC Functions Doc
- Using IDAPython to Make your Life Easier
- Introduction to IDA Python
- The Beginner's Guide to IDA Python
- IDA Plugin Contest
Script collection
- fireeye/flare-ida - multiple IDA plugins and IDAPython scripts by FLARE team.
- devttys0/ida - collection of IDAPython plugins/scripts/modules.
- onehawt IDA Plugin List - list of ida scripts (IDC / IDAPython), links to many repository.
Script collection