Files
amILearningEnough/docs/resources/assembly/asm.md
2024-12-21 01:23:20 +05:30

133 lines
5.1 KiB
Markdown

# 🖥️ From Zero to Assembly Programming Master: The Binary Expedition
## Phase 1: Foundational Knowledge
### 1. Computer Architecture Understanding
#### Books
- 📘 "Computer Organization and Design" by Patterson and Hennessy
- 📘 "Computer Architecture: A Quantitative Approach" by Hennessy and Patterson
#### Online Courses
- 🌐 [Coursera: Computer Architecture](https://www.coursera.org/learn/comparch)
- 🌐 [edX: Computer Architecture Fundamentals](https://www.edx.org/course/computer-architecture)
#### Documentation & Resources
- 📄 [Intel Architecture Manuals](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)
- 📄 [AMD Developer Guides](https://developer.amd.com/resources/developer-guides-manuals/)
### 2. Number Systems and Representation
#### Books
- 📘 "Digital Design" by Morris Mano
- 📘 "Numerical Methods for Engineers" by Steven Chapra
#### Online Tutorials
- 🌐 [Binary and Hexadecimal Tutorial](https://www.electronics-tutorials.ws/binary/bin.html)
- 🌐 [Khan Academy: Binary](https://www.khanacademy.org/computing/computer-science/digital-info-2)
#### Video Resources
- 📺 Ben Eater's Digital Logic Series on YouTube
- 📺 Computerphile YouTube Channel - Number Systems Playlist
## Phase 2: Low-Level Programming Foundations
### 1. C Programming Fundamentals
#### Books
- 📘 "C Programming Absolute Beginner's Guide" by Perry and Miller
- 📘 "The C Programming Language" by Kernighan and Ritchie
#### Online Courses
- 🌐 [CS50 Introduction to Programming](https://cs50.harvard.edu/x/)
- 🌐 [Udacity: Introduction to C Programming](https://www.udacity.com/course/introduction-to-c--cd0261)
#### Practice Platforms
- 🖥️ [HackerRank C Programming](https://www.hackerrank.com/domains/c)
- 🖥️ [LeetCode C Problems](https://leetcode.com/problemset/all/?difficulty=Easy&page=1&topicSlugs=bit-manipulation)
### 2. System-Level Programming Concepts
#### Books
- 📘 "Computer Systems: A Programmer's Perspective"
- 📘 "Advanced Programming in the UNIX Environment"
#### Online Resources
- 🌐 [MIT OpenCourseWare: Computer System Engineering](https://ocw.mit.edu/courses/6-828-operating-systems-engineering-fall-2012/)
- 📄 [Linux Kernel Documentation](https://www.kernel.org/doc/)
## Phase 3: x86 Assembly Introduction
### 1. Assembly Language Basics
#### Books
- 📘 "Professional Assembly Language" by Richard Blum
- 📘 "Assembly Language Step-by-Step" by Jeff Duntemann
#### Online Tutorials
- 🌐 [NASM Tutorial Official](https://www.nasm.us/doc/)
- 🌐 [Assembly Language Programming Tutorials](https://www.assemblylanguagetuts.com/)
#### Video Courses
- 📺 Udemy: x86 Assembly Language Programming
- 📺 YouTube: "x86 Assembly Crash Course" series
### 2. Practical Assembly Programming
#### Practice Platforms
- 🖥️ [HackThisSite Assembly Challenges](https://www.hackthissite.org/)
- 🖥️ [WarGames: Bandit Challenges](https://overthewire.org/wargames/bandit/)
#### Online Coding Environments
- 🌐 [Compiler Explorer](https://godbolt.org/)
- 🌐 [Online x86 Assembler](https://www.onlinegdb.com/online_x86_assembler)
## Phase 4: Advanced Assembly Techniques
### 1. Optimization and Advanced Techniques
#### Books
- 📘 "Performance Optimization in Assembly"
- 📘 "Agner Fog's Optimization Manuals"
#### Research Resources
- 📄 [Intel Optimization Manuals](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)
- 📄 [Academic Papers on Compiler Optimization](https://scholar.google.com/scholar?q=assembly+optimization+techniques)
### 2. Specialized Domains
#### Reverse Engineering
##### Books
- 📘 "Practical Malware Analysis"
- 📘 "Practical Reverse Engineering"
##### Platforms
- 🖥️ [Crackmes](https://crackmes.one/)
- 🖥️ [Reverse Engineering Challenges](https://challenges.re/)
#### Exploit Development
##### Books
- 📘 "The Shellcoder's Handbook"
- 📘 "Practical Malware Analysis"
##### Training Platforms
- 🌐 [Offensive Security PWK Course](https://www.offensive-security.com/pwk-oscp/)
- 🌐 [VulnHub Exploit Challenges](https://www.vulnhub.com/)
## Phase 5: Mastery and Specialization
### 1. Operating System Internals
#### Books
- 📘 "Operating Systems: Three Easy Pieces"
- 📘 "Linux Kernel Development" by Robert Love
#### Online Courses
- 🌐 [MIT Operating Systems Course](https://pdos.csail.mit.edu/6.828/2018/overview.html)
- 🌐 [Linux Foundation Kernel Courses](https://training.linuxfoundation.org/training/linux-kernel-internals-and-development-lfd420/)
### 2. Advanced Specializations
#### Resources
- 📄 [Embedded Systems Programming Resources](https://www.embedded.com/)
- 📄 [Device Driver Development Guides](https://www.linuxjournal.com/content/writing-linux-device-drivers)
## Recommended Learning Communities
- 🌐 Reddit: r/ReverseEngineering
- 🌐 Stack Overflow: Assembly Language Tag
- 🌐 Discord: Reverse Engineering Servers
## Final Wisdom 🚀
1. Consistency is key
2. Practice daily
3. Build small projects
4. Contribute to open-source
5. Never stop learning
**The journey of a thousand lines of Assembly begins with a single instruction!** 💻