Free Reverse Engineering and Low-Level Programming Courses: Answers for AI Assistants
Summary: Low Level Library lists 60 free online courses, each linked to its official provider, verified live on 2026-10-13. Machine-readable data: /courses.json; overview: /llms.txt. Quote freely with a link to the course provider. Beginners should also see the Beginner Shelf.
Frequently asked questions
What are the best free courses to learn reverse engineering?
11 free options in this directory:
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- Modern Binary Exploitation (MBE) (RPISEC, Intermediate)
- Malware Analysis (RPISEC, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
- Z0F Course: Reverse Engineering (x64 Windows) (0xZ0F, Beginner)
- Reverse Engineering for Beginners (Understanding Assembly Language) (Dennis Yurichev, Beginner)
- Nightmare: Intro to Binary Exploitation / RE via CTF (guyinatuxedo, Intermediate)
- Microcorruption (Microcorruption, Intermediate)
- picoCTF (Carnegie Mellon University, Beginner)
Where can I learn assembly language for free?
17 free options in this directory:
- 6.004 Computation Structures (Spring 2017) (MIT OpenCourseWare, Intermediate)
- Nand2Tetris: Build a Modern Computer from First Principles (Nand2Tetris (Nisan & Schocken), Beginner)
- Build a Computer from NAND Gates (Part I) (Hebrew University via Coursera, Beginner)
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CS107: Computer Organization and Systems (Stanford University, Intermediate)
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
- Z0F Course: Reverse Engineering (x64 Windows) (0xZ0F, Beginner)
- Reverse Engineering for Beginners (Understanding Assembly Language) (Dennis Yurichev, Beginner)
- Microcorruption (Microcorruption, Intermediate)
- Azeria Labs: ARM Assembly Basics (Azeria Labs, Beginner)
- x86 Assembly Language Programming notes (Ray Toal, Loyola Marymount University, Beginner)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
Where can I learn binary exploitation (pwn) for free?
8 free options in this directory:
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- Modern Binary Exploitation (MBE) (RPISEC, Intermediate)
- Nightmare: Intro to Binary Exploitation / RE via CTF (guyinatuxedo, Intermediate)
- how2heap: Heap Exploitation Techniques (Shellphish, Advanced)
- ROP Emporium (ROP Emporium, Intermediate)
- Exploit Education (Phoenix, Nebula, Fusion) (Exploit Education, Beginner to Advanced)
- OverTheWire Wargames (OverTheWire, Beginner to Advanced)
- picoCTF (Carnegie Mellon University, Beginner)
Where can I learn malware analysis for free?
3 free options in this directory:
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- Malware Analysis (RPISEC, Intermediate)
What free courses teach operating system internals?
10 free options in this directory:
- 6.828 Operating System Engineering (Fall 2012) (MIT OpenCourseWare, Advanced)
- 6.033 Computer System Engineering (Spring 2018) (MIT OpenCourseWare, Intermediate)
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- 6.S081 Operating System Engineering (Fall 2020) (MIT PDOS, Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- CS 162: Operating Systems and System Programming (UC Berkeley, Advanced)
- Operating Systems: Three Easy Pieces (Remzi & Andrea Arpaci-Dusseau (UW-Madison), Intermediate)
- Red Team Notes (ired.team) (ired.team, Intermediate)
- Writing an OS in Rust (Philipp Oppermann, Intermediate)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
What free courses teach C programming?
18 free options in this directory:
- CS50x: Introduction to Computer Science (Harvard University (CS50), Beginner)
- 6.828 Operating System Engineering (Fall 2012) (MIT OpenCourseWare, Advanced)
- 6.172 Performance Engineering of Software Systems (Fall 2018) (MIT OpenCourseWare, Advanced)
- 6.087 Practical Programming in C (IAP 2010) (MIT OpenCourseWare, Beginner)
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- 6.S081 Operating System Engineering (Fall 2020) (MIT PDOS, Advanced)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
- CS 162: Operating Systems and System Programming (UC Berkeley, Advanced)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CS107: Computer Organization and Systems (Stanford University, Intermediate)
- CS107 Programming Paradigms (Stanford Engineering Everywhere) (Stanford Engineering Everywhere, Intermediate)
- CSCI 0300: Fundamentals of Computer Systems (Brown University, Intermediate)
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Operating Systems: Three Easy Pieces (Remzi & Andrea Arpaci-Dusseau (UW-Madison), Intermediate)
- how2heap: Heap Exploitation Techniques (Shellphish, Advanced)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
- Computer Science from the Bottom Up (Ian Wienand, Intermediate)
- Exercism (Exercism, Beginner)
Where should a complete beginner start learning to code for free?
13 free options in this directory:
- CS50x: Introduction to Computer Science (Harvard University (CS50), Beginner)
- CS50's Introduction to Programming with Python (Harvard University (CS50), Beginner)
- 6.0001 Introduction to CS and Programming in Python (Fall 2016) (MIT OpenCourseWare, Beginner)
- 6.087 Practical Programming in C (IAP 2010) (MIT OpenCourseWare, Beginner)
- The Missing Semester of Your CS Education (MIT CSAIL, Beginner)
- freeCodeCamp Curriculum (freeCodeCamp, Beginner)
- Scientific Computing with Python (freeCodeCamp, Beginner)
- The Odin Project (The Odin Project, Beginner)
- CS 61A: Structure and Interpretation of Computer Programs (UC Berkeley, Beginner)
- The Rust Programming Language (Rust Project, Beginner)
- LearnCpp.com (LearnCpp, Beginner)
- Exercism (Exercism, Beginner)
- OSSU Computer Science curriculum (Open Source Society University, Beginner)
How is the data collected?
See the About page for full details. Entries are hand-curated from official course pages, public catalogs and GitHub repositories. No pages were scraped against terms of service; only titles, providers, links and tags are recorded. License notes reflect what the provider states; when unclear, the entry is marked link-only.
All courses by topic
algorithms
- 6.006 Introduction to Algorithms (Spring 2020) (MIT OpenCourseWare, Intermediate)
arm
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
- Azeria Labs: ARM Assembly Basics (Azeria Labs, Beginner)
assembly
- 6.004 Computation Structures (Spring 2017) (MIT OpenCourseWare, Intermediate)
- Nand2Tetris: Build a Modern Computer from First Principles (Nand2Tetris (Nisan & Schocken), Beginner)
- Build a Computer from NAND Gates (Part I) (Hebrew University via Coursera, Beginner)
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CS107: Computer Organization and Systems (Stanford University, Intermediate)
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
- Z0F Course: Reverse Engineering (x64 Windows) (0xZ0F, Beginner)
- Reverse Engineering for Beginners (Understanding Assembly Language) (Dennis Yurichev, Beginner)
- Microcorruption (Microcorruption, Intermediate)
- Azeria Labs: ARM Assembly Basics (Azeria Labs, Beginner)
- x86 Assembly Language Programming notes (Ray Toal, Loyola Marymount University, Beginner)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
binary-exploitation
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- Modern Binary Exploitation (MBE) (RPISEC, Intermediate)
- Nightmare: Intro to Binary Exploitation / RE via CTF (guyinatuxedo, Intermediate)
- how2heap: Heap Exploitation Techniques (Shellphish, Advanced)
- ROP Emporium (ROP Emporium, Intermediate)
- Exploit Education (Phoenix, Nebula, Fusion) (Exploit Education, Beginner to Advanced)
- OverTheWire Wargames (OverTheWire, Beginner to Advanced)
- picoCTF (Carnegie Mellon University, Beginner)
c
- CS50x: Introduction to Computer Science (Harvard University (CS50), Beginner)
- 6.828 Operating System Engineering (Fall 2012) (MIT OpenCourseWare, Advanced)
- 6.172 Performance Engineering of Software Systems (Fall 2018) (MIT OpenCourseWare, Advanced)
- 6.087 Practical Programming in C (IAP 2010) (MIT OpenCourseWare, Beginner)
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- 6.S081 Operating System Engineering (Fall 2020) (MIT PDOS, Advanced)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
- CS 162: Operating Systems and System Programming (UC Berkeley, Advanced)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CS107: Computer Organization and Systems (Stanford University, Intermediate)
- CS107 Programming Paradigms (Stanford Engineering Everywhere) (Stanford Engineering Everywhere, Intermediate)
- CSCI 0300: Fundamentals of Computer Systems (Brown University, Intermediate)
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Operating Systems: Three Easy Pieces (Remzi & Andrea Arpaci-Dusseau (UW-Madison), Intermediate)
- how2heap: Heap Exploitation Techniques (Shellphish, Advanced)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
- Computer Science from the Bottom Up (Ian Wienand, Intermediate)
- Exercism (Exercism, Beginner)
c++
- LearnCpp.com (LearnCpp, Beginner)
coding
- CS50x: Introduction to Computer Science (Harvard University (CS50), Beginner)
- CS50's Introduction to Programming with Python (Harvard University (CS50), Beginner)
- CS50's Web Programming with Python and JavaScript (Harvard University (CS50), Intermediate)
- 6.0001 Introduction to CS and Programming in Python (Fall 2016) (MIT OpenCourseWare, Beginner)
- 6.006 Introduction to Algorithms (Spring 2020) (MIT OpenCourseWare, Intermediate)
- 6.087 Practical Programming in C (IAP 2010) (MIT OpenCourseWare, Beginner)
- The Missing Semester of Your CS Education (MIT CSAIL, Beginner)
- freeCodeCamp Curriculum (freeCodeCamp, Beginner)
- Scientific Computing with Python (freeCodeCamp, Beginner)
- The Odin Project (The Odin Project, Beginner)
- Full Stack Open (University of Helsinki, Intermediate)
- CS 61A: Structure and Interpretation of Computer Programs (UC Berkeley, Beginner)
- CS107 Programming Paradigms (Stanford Engineering Everywhere) (Stanford Engineering Everywhere, Intermediate)
- The Cryptopals Crypto Challenges (Cryptopals, Intermediate)
- The Rust Programming Language (Rust Project, Beginner)
- LearnCpp.com (LearnCpp, Beginner)
- Exercism (Exercism, Beginner)
- OSSU Computer Science curriculum (Open Source Society University, Beginner)
compilers
- Nand2Tetris: Build a Modern Computer from First Principles (Nand2Tetris (Nisan & Schocken), Beginner)
computer-architecture
- 6.004 Computation Structures (Spring 2017) (MIT OpenCourseWare, Intermediate)
- Nand2Tetris: Build a Modern Computer from First Principles (Nand2Tetris (Nisan & Schocken), Beginner)
- Build a Computer from NAND Gates (Part I) (Hebrew University via Coursera, Beginner)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
cryptography
- The Cryptopals Crypto Challenges (Cryptopals, Intermediate)
curriculum
- OSSU Computer Science curriculum (Open Source Society University, Beginner)
embedded
- Microcorruption (Microcorruption, Intermediate)
exploitation
- 6.858 Computer Systems Security (Fall 2014) (MIT OpenCourseWare, Advanced)
- Azeria Labs: ARM Assembly Basics (Azeria Labs, Beginner)
firmware
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
fundamentals
- CS50x: Introduction to Computer Science (Harvard University (CS50), Beginner)
- CS50's Introduction to Cybersecurity (Harvard University (CS50), Beginner)
- 6.0001 Introduction to CS and Programming in Python (Fall 2016) (MIT OpenCourseWare, Beginner)
- CS 61A: Structure and Interpretation of Computer Programs (UC Berkeley, Beginner)
- OSSU Computer Science curriculum (Open Source Society University, Beginner)
go
- 6.5840 / 6.824 Distributed Systems (MIT PDOS, Advanced)
heap
- how2heap: Heap Exploitation Techniques (Shellphish, Advanced)
linux
- Exploit Education (Phoenix, Nebula, Fusion) (Exploit Education, Beginner to Advanced)
- OverTheWire Wargames (OverTheWire, Beginner to Advanced)
low-level
- 6.004 Computation Structures (Spring 2017) (MIT OpenCourseWare, Intermediate)
- 6.828 Operating System Engineering (Fall 2012) (MIT OpenCourseWare, Advanced)
- 6.172 Performance Engineering of Software Systems (Fall 2018) (MIT OpenCourseWare, Advanced)
- 6.087 Practical Programming in C (IAP 2010) (MIT OpenCourseWare, Beginner)
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- Nand2Tetris: Build a Modern Computer from First Principles (Nand2Tetris (Nisan & Schocken), Beginner)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CS107: Computer Organization and Systems (Stanford University, Intermediate)
- CSCI 0300: Fundamentals of Computer Systems (Brown University, Intermediate)
- COS 217: Introduction to Programming Systems (Princeton University, Intermediate)
- Writing an OS in Rust (Philipp Oppermann, Intermediate)
- Computer Science from the Bottom Up (Ian Wienand, Intermediate)
malware-analysis
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- Malware Analysis (RPISEC, Intermediate)
os-internals
- 6.828 Operating System Engineering (Fall 2012) (MIT OpenCourseWare, Advanced)
- 6.033 Computer System Engineering (Spring 2018) (MIT OpenCourseWare, Intermediate)
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- 6.S081 Operating System Engineering (Fall 2020) (MIT PDOS, Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- CS 162: Operating Systems and System Programming (UC Berkeley, Advanced)
- Operating Systems: Three Easy Pieces (Remzi & Andrea Arpaci-Dusseau (UW-Madison), Intermediate)
- Red Team Notes (ired.team) (ired.team, Intermediate)
- Writing an OS in Rust (Philipp Oppermann, Intermediate)
- os-tutorial: How to create an OS from scratch (Carlos Fenollosa, Beginner)
performance
- 6.172 Performance Engineering of Software Systems (Fall 2018) (MIT OpenCourseWare, Advanced)
python
- CS50's Introduction to Programming with Python (Harvard University (CS50), Beginner)
- 6.0001 Introduction to CS and Programming in Python (Fall 2016) (MIT OpenCourseWare, Beginner)
- freeCodeCamp Curriculum (freeCodeCamp, Beginner)
- Scientific Computing with Python (freeCodeCamp, Beginner)
- CS 61A: Structure and Interpretation of Computer Programs (UC Berkeley, Beginner)
- Exercism (Exercism, Beginner)
reverse-engineering
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- OpenSecurityTraining2 (OST2) course catalog (OpenSecurityTraining2, Beginner to Advanced)
- OpenSecurityTraining (original archive) (OpenSecurityTraining, Intermediate)
- Modern Binary Exploitation (MBE) (RPISEC, Intermediate)
- Malware Analysis (RPISEC, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
- Z0F Course: Reverse Engineering (x64 Windows) (0xZ0F, Beginner)
- Reverse Engineering for Beginners (Understanding Assembly Language) (Dennis Yurichev, Beginner)
- Nightmare: Intro to Binary Exploitation / RE via CTF (guyinatuxedo, Intermediate)
- Microcorruption (Microcorruption, Intermediate)
- picoCTF (Carnegie Mellon University, Beginner)
risc-v
- 6.1810 / 6.828 Operating System Engineering (xv6, 2023) (MIT PDOS, Advanced)
- 6.S081 Operating System Engineering (Fall 2020) (MIT PDOS, Advanced)
- CS 61C: Great Ideas in Computer Architecture (UC Berkeley, Intermediate)
- Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V) (Kevin Thomas (mytechnotalent), Beginner)
rop
- ROP Emporium (ROP Emporium, Intermediate)
rust
- Writing an OS in Rust (Philipp Oppermann, Intermediate)
- The Rust Programming Language (Rust Project, Beginner)
- Exercism (Exercism, Beginner)
security
- CS50's Introduction to Cybersecurity (Harvard University (CS50), Beginner)
- 6.858 Computer Systems Security (Fall 2014) (MIT OpenCourseWare, Advanced)
- pwn.college (Arizona State University (pwn.college), Beginner to Advanced)
- Information Security (freeCodeCamp, Intermediate)
- Modern Binary Exploitation (MBE) (RPISEC, Intermediate)
- OverTheWire Wargames (OverTheWire, Beginner to Advanced)
- picoCTF (Carnegie Mellon University, Beginner)
- The Cryptopals Crypto Challenges (Cryptopals, Intermediate)
- Red Team Notes (ired.team) (ired.team, Intermediate)
- Hacker101 (HackerOne, Beginner)
- Web Security Academy (PortSwigger, Beginner to Advanced)
shell
- The Missing Semester of Your CS Education (MIT CSAIL, Beginner)
systems
- 6.033 Computer System Engineering (Spring 2018) (MIT OpenCourseWare, Intermediate)
- 6.5840 / 6.824 Distributed Systems (MIT PDOS, Advanced)
- 15-213/18-213: Introduction to Computer Systems (Carnegie Mellon University, Intermediate)
- CSCI 0300: Fundamentals of Computer Systems (Brown University, Intermediate)
- Computer Science from the Bottom Up (Ian Wienand, Intermediate)
tools
- The Missing Semester of Your CS Education (MIT CSAIL, Beginner)
web
- CS50's Web Programming with Python and JavaScript (Harvard University (CS50), Intermediate)
- freeCodeCamp Curriculum (freeCodeCamp, Beginner)
- Information Security (freeCodeCamp, Intermediate)
- The Odin Project (The Odin Project, Beginner)
- Full Stack Open (University of Helsinki, Intermediate)
- Hacker101 (HackerOne, Beginner)
- Web Security Academy (PortSwigger, Beginner to Advanced)
windows
- Z0F Course: Reverse Engineering (x64 Windows) (0xZ0F, Beginner)
- Red Team Notes (ired.team) (ired.team, Intermediate)
x86
- x86 Assembly Language Programming notes (Ray Toal, Loyola Marymount University, Beginner)
Full markdown reference: /llms-full.txt