Learn the language of
your computer
Requirements
- No prior knowledge is assumed!
Description
Learn Assembly Language
The
x86 Adventures series teaches you your computer’s language – x86 Assembly
language, from scratch. No prior knowledge is assumed.
[Complete
Course]
This
is the full collection of x86 Assembly Adventures. It covers everything from
the real basics to being an independent (and tough) x86 Assembly programmer.
Main topics covered:
- The Binary System
- The x86 Architecture
- Intro to Flat Assembler
- Branching
- Signed and Bitwise Operations
- Memory
- Strings
- Subroutines and the Stack
- Reading the Manuals
- Debugging
- Dealing with Windows API
Why learn x86 Assembly Language?
- You are the kind of person who
really likes to know how things work. In this course you are going to get
solid understanding on how computer programs work from the inside.
- Become a better programmer –
Knowing how things work down there will help you take better decisions,
even as a high-level programmer. If you were always wondering what is
the stack, or what are those pointers everyone talks about, you came
to the right place.
- Write faster code – When you
really want to get the most of your processor, writing in raw Assembly is
needed. We are not going to talk about optimizations in this course,
however you will get a solid foundation so that you can continue exploring
on your own.
- You want to become a reverse
engineer or a security researcher, read the code of viruses or look for
software vulnerabilities. As most of the time the original source code
will not be available to you, solid understanding of x86 Assembly Language
is mandatory.
Course structure
The
course is made of video lectures. A lecture could be from a
presentation, or a real-world example, showing me doing stuff at the
computer.
Almost
every video lecture is accompanied by some kind of exercise (You will
be told during the lecture, don’t worry ) The exercises are
open source. They are attached here as a rar file; however, you could also get
them on GitHub. (See “About this course” video for more information).
It
is crucial that you complete the exercises. You will learn a lot from the
lectures, but it is pretty much a waste of your time and money if you don’t do
the exercises. (Or at least verify that you know how to do them, if you are
more experienced).
Course tech stack
No
prior knowledge is assumed for this course, but I do assume some things regarding
your system, so make sure that everything here describes you:
- You are using a Windows
operation system. (The course videos use Windows 7). It is recommended to
use at least Windows XP. (This means it will work perfectly on Windows 7
and Windows 10).
- You have an intel x86
processor. (If you don’t know what you have then you have x86 processor,
trust me). We study 32-bit x86, but this course will also work on 64-bit
processors.
For
the tech savvy, some more details about the tools we are going to use in this
course:
- Assembly flavor: x86 32 bits
protected mode.
- Assembler: The Flat Assembler
(FASM)
- Debugger: WinDbg.
Using Linux?
Most of the exercises were ported to Linux, however the videos show me
using windows 7. Contact me if you are not sure.
Who is the target audience?
- Absolute beginners
- Experienced programmers
- People who really want to know
how things work
- Programmers who want to improve
their skills
- Programmers who want to write
faster code
- Anyone who wants to get into
the reverse engineering or security industry
No comments:
Post a Comment