Skip to content

Instantly share code, notes, and snippets.

@alexander-hanel
Last active May 1, 2024 03:02
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexander-hanel/dad761bdfa3b810ab210da9ae1b383fe to your computer and use it in GitHub Desktop.
Save alexander-hanel/dad761bdfa3b810ab210da9ae1b383fe to your computer and use it in GitHub Desktop.
Recommended resources for learning reverse engineering (emphasis on malware analysis)

Computer Architecture

Assembly Language

Check out the first two books but download the Intel Software Manuals and use as references.

  • Assembly Language Step by Step
    • Easy introduction to Assembly Language
  • Assembly Language for X86 Processors by Kip Irvine
    • Well written and probably the best book on Assembly Language.
    • Buy an older used edition. New version are super expensive.
  • Low-Level Programming
    • Dense but excellent book on C, Assembly and Linux
  • Intel® 64 and IA-32 Architectures Software Developer Manuals
    • Reference for looking up instructions.
  • xchg rax,rax
    • Borderline Assembly Language riddle book.

Do not read The Art of Assembly Language. It is not about Assembly Language but High Level Assembly (HLA).

Reverse Engineering Books

  • Practical Malware Analysis: A Hands-On Guide to Dissecting Malicious Software
    • Pick this book up after reading two Assembly Language books.
  • Reversing: Secrets of Reverse Engineering
  • Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
  • Practical Binary Analysis
  • Surreptitious Software
  • The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler

Tools

  • IDA
    • Free version is excellent for learning.
  • Ghidra
  • VMware or VirtualBox
  • x64dbg
  • SysInternals Suite
  • Binary Ninja

Courses

Classes I would recommend in order.

  • Binary Literacy: Systematic Static Reverse Engineering by Rolf Rolles
  • Reverse Engineering Malware by Nicolas Brulez
  • Botnet Takeover Attacks For Reverse Engineers by Brett Stone-Gross and Tillmann Werner
  • Windows Internals for Reverse Engineers by Alex Ionescu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment