ReversingID/Awesome-Reversing

GitHub: ReversingID/Awesome-Reversing

Stars: 672 | Forks: 83

# Awesome Reverse Engineering [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) ## Introduction **Reverse Engineering** is the art and science of breaking something down, extracting the design and mechanics behind it, and understanding it at its basic principles — without access to the original design documentation. Reverse engineering is practiced across many disciplines: security research, malware analysis, vulnerability discovery, interoperability, archival preservation, and hardware teardowns. The skills, tools, and mental models differ significantly depending on *what* you are reversing. ### What makes this list different Most awesome lists treat reverse engineering as a single topic. This list takes a different approach: **we split by domain**. Each domain has its own targets, toolchains, and body of knowledge. A firmware analyst and a database schema archaeologist are both doing reverse engineering, but their workflows share almost nothing. This list is organized into **four domains**: | Domain | What you're reversing | Typical goals | |--------|-----------------------|---------------| | [Software](software-reversing.md) | Executables, bytecode, libraries | Vulnerability research, malware analysis, crackmes, interoperability | | [Hardware](hardware-reversing.md) | PCBs, ICs, embedded firmware | Teardowns, firmware extraction, protocol analysis, chip-level analysis | | [Format](format-reversing.md) | File formats, network protocols, game assets | Parser construction, asset extraction, format documentation | | [Database](database-reversing.md) | Flat-file, relational, and NoSQL databases | Schema recovery, data archaeology, remodelling | ## Domains ### [Software Reverse Engineering](software-reversing.md) The most well-known domain. Targets are code in compiled form — native binaries (x86, ARM, RISC-V, …) or intermediate representations (JVM bytecode, .NET IL, WASM). Core workflow involves static analysis with disassemblers/decompilers and dynamic analysis with debuggers and instrumentation frameworks. **Key tools:** IDA Pro, Ghidra, Binary Ninja, x64dbg, Frida, angr **Common use cases:** CTF challenges, malware analysis, vulnerability research, DRM analysis, game modding ### [Hardware Reverse Engineering](hardware-reversing.md) Targets physical artifacts: circuit boards, integrated circuits, and embedded systems. Analysis spans from high-level board teardowns down to silicon-level circuit tracing. Firmware extraction is a common bridge between hardware and software reversing. **Key tools:** Logic analyzers, oscilloscopes, JTAG/SWD debuggers, OpenOCD, Binwalk **Common use cases:** IoT security research, firmware extraction, protocol reverse engineering, chip decapping ### [Format Reverse Engineering](format-reversing.md) Focuses on understanding the structure and semantics of binary data — how it is laid out, compressed, encrypted, or segmented. Frequently practiced in game modding communities where proprietary asset containers and undocumented formats are the norm. **Key tools:** Hex editors (010 Editor, HexFiend), Kaitai Struct, ImHex, Wireshark **Common use cases:** Game asset extraction, protocol documentation, interoperability tooling, archive research ### [Database Reverse Engineering](database-reversing.md) Targets structured data stores — flat-file databases (SQLite, MDB), relational schemas, and NoSQL collections. The goal is often schema recovery when documentation is missing, or remodelling when migrating between systems. **Key tools:** DB schema visualizers, SQL clients, hex editors for flat-file formats **Common use cases:** Legacy system migration, undocumented DB schema recovery, forensic data archaeology ## Who is this for? - **Security researchers and pentesters** looking for tooling and technique references - **CTF players** building their reversing skill set across multiple categories - **Malware analysts** needing a structured resource on software analysis tools - **Embedded/IoT engineers** exploring hardware and firmware analysis - **Game modders and archivists** working with proprietary formats and assets - **Anyone curious** about how things work under the hood