Welcome to a series of articles that will take you on a captivating journey into the heart of x86 assembly, demystifying its secrets, and equipping you with the essential knowledge needed to excel in the field of cybersecurity.
The information presented in this series of articles on x86 assembly has been compiled from a variety of reputable sources, including textbooks, online tutorials, and educational resources. I am not the original creator of the topics covered in these articles. Instead, my aim is to distill and share the knowledge I've acquired from these sources in a coherent and accessible manner.
It is essential to acknowledge the contributions of the individuals and institutions that have dedicated their expertise and time to making this knowledge available to the public. Without their efforts, this series would not be possible.
Throughout the articles, I will strive to provide proper citations and references to the original sources wherever applicable. However, please note that while I have made every effort to ensure the accuracy and reliability of the information presented, there may be occasional errors or omissions. Therefore, I encourage readers to consult the primary sources and conduct further research for a comprehensive understanding of the topics discussed.
I hope you find this series informative and valuable in your journey to explore x86 assembly and computer architecture.
Who is Our Target Audience?
Our target audience is diverse. Whether you're a student looking to deepen your understanding of computer architecture, an OSED candidate preparing for a challenging certification, or a CTF enthusiast seeking to sharpen your skills, these articles will guide you step by step. We'll start with the fundamentals and gradually progress to more advanced topics, ensuring that everyone, regardless of their starting point, can embark on this exciting educational journey.
In this series, we'll employ an approach that avoids heavy jargon and instead focuses on clear, practical explanations. We believe that understanding complex concepts doesn't require complex language, and we aim to make x86 assembly accessible to all.
Why Learn Assembly?
- Few people know deep system security than example: network security or web application security. This dictates that the low supply will make the skill more valuable.
It's essential to reverse engineering both malicious and benign programs as a vulnerability hunter
It's also essential to writing memory corruption exploits
Gain a Better Understanding of Architecture Issues
Learning and Spending some time working at the assembly language level; provides a richer understanding of the underlying computer architecture.
This includes the basic instruction set, processor registers, memory addressing, hardware interfacing, and Input/Output.
Understanding the Tool Chain
The toolchain is the name for the process of taking code written by a human and converting it into something that the computer can directly execute.
This includes the compiler, or assembler in our case, the linker, the loader, and the debugger.
- Assembly knowledge is essential to digging deeper and understanding computer architecture in order to create more secure architecture
In order to become a good hackerman, You should be curious. More frequently, assembly is a good example of learning how computers work at low-level and why. also, it's so satisfying to learn and understand assembly.
That's it for PART 1 of this great series, see you in the next part about Computer Architecture.
Derived from Xeno Kovah's Architecture 1001:x86-64 Assembly class available at ost.fyi
x86-64 Assembly Language Programming with Ubuntu by Ed Jorgensen, Ph.D. May 2022