explaingit

tylerha97/awesome-reversing

4,491Audience · developerComplexity · 1/5Setup · easy

TLDR

A curated index of books, courses, tools, and practice platforms for learning reverse engineering, the skill of figuring out how compiled programs work without access to their source code.

Mindmap

mindmap
  root((awesome-reversing))
    Learning resources
      Books
      Courses
      YouTube channels
    Practice
      Challenge platforms
      CTF resources
    Tools
      Disassemblers
      Decompilers
      Debuggers
      Hex editors
    Specializations
      Malware analysis
      Android analysis
      YARA rules
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Find books and courses to start learning how to analyze compiled programs and binary files.

USE CASE 2

Discover disassemblers and decompilers like Ghidra or IDA Pro to analyze software without source code.

USE CASE 3

Find practice platforms with reverse engineering challenges to build skills hands-on.

USE CASE 4

Look up specialized tools for analyzing Android apps, malware, or binary file formats.

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

This repository is a curated list of resources for people learning or practicing reverse engineering. Reverse engineering, in the software context, means taking a compiled program (one where the human-readable source code is not available) and figuring out how it works by analyzing the machine code or binary file. This is used in security research, malware analysis, and software compatibility work. The list is organized into categories, each pointing to external resources. These categories include books on topics like malware analysis, memory forensics, and exploit development, online courses and video tutorials, YouTube channels focused on binary analysis and malware, and practice platforms where you can work through reverse engineering challenges. On the tooling side, the list covers: hex editors for inspecting raw binary files, tools for analyzing binary file formats, disassemblers and decompilers (programs that convert machine code back into readable form, including well-known tools like Ghidra, IDA Pro, and Radare), dynamic analysis tools for watching a program's behavior while it runs, debugging tools, and specialized tools for Android app analysis and document analysis. There are also sections on YARA, a pattern-matching tool used to identify malware, and on scripting resources for automating analysis tasks. The repository contains no original content of its own beyond the list structure. It is a reference index pointing outward to books, websites, courses, and tool projects maintained elsewhere. There is no installation or usage section because the repository itself is just a collection of links.

Copy-paste prompts

Prompt 1
I want to learn reverse engineering from scratch. Based on the awesome-reversing list, suggest a learning path starting with free tools and beginner-friendly resources, then progressing to Ghidra and binary analysis.
Prompt 2
I need to analyze a suspicious executable file for malware. Which tools from the awesome-reversing collection should I use for static analysis versus dynamic analysis?
Prompt 3
I want to practice reverse engineering challenges online. Which platforms in the awesome-reversing list have beginner-friendly binary challenges?
Open on GitHub → Explain another repo

← tylerha97 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.