- Crash Course Computer Science
- Start here.
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).
- 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
- IDA
- Free version is excellent for learning.
- Ghidra
- VMware or VirtualBox
- x64dbg
- SysInternals Suite
- Binary Ninja
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