X86 Assembly Programming

X86 Assembly Programming

X86 Assembly Programming

Learn How to Master Assembly Language

Language: english

Note: 3.6/5 (11 notes) 3,814 students

Instructor(s): Lucas Mayrhofer

Last update: 2022-02-26

What you’ll learn

  • X86 Assembly Language
  • Intel 8086 and 80386 Architectures
  • Stack Overflow Attacks

 

Requirements

  • Linux Command Line

 

Description

During this class you will learn X86 Assembly Language, the 8086 and 80386 Intel Architectures, and everything you need to know about the Stack:  What is the Stack ? What are procedure calls and how procedure Calls are using the Stack to operate? How to allocate C data structures in Memory ? And How Hackers use code vulnerabilities to operate Stack Overflow Exploits and how to protect your code against such attacks. What are SSE Instructions and how to use them ? This is the ideal class to start learning X86 Assembly, understand how compilation works and how your computer compiles and executes C code. During the class we will also review multiple code examples and debug them using Gnu Debugger GDB debugging tool. The compilation process will be reviewed and we will go in details into the disassembled code to see how it works. All major X86 Instructions types will be explained, as for example: jump instructions, arithmetic instructions, mov instructions and more. The end of the class will be dedicated to stack overflow attacks, and how to prevent vulnerable code to be exploited by attackers. Requirements for the class is a working linux system. We will go through the steps of how to install gdb and start turning C code into assembly code for debugging. All major GDB commands will be listed so that a comprehensive view of GDB is given. 

 

Who this course is for

  • Electrical Engineering students
  • Computer Science students
  • Anyone who wants to learn about Assembly Programing and Intel Architectures

 

Course content

  • Introduction
    • Introduction
    • Historic Background of X86 Intel Processors
    • Turning C into Object Code
  • Intel Computer Architectures
    • The 8086 Processor
    • The 80386 Processor
    • Integer Registers (IA32)
    • Processor State (IA32)
    • Conditions Codes
    • Byte Ordering
  • Jump Instructions
    • The different Jump Instructions
    • Example Use of a Jump Instruction
  • Data Movement Instructions
    • The mov Instruction
    • Memory Addressing Modes
    • Address Computation Instruction
  • The Gnu Debugger (GDB)
    • Basic GDB Commands
    • Example Use Cases of GDB
  • Arithmetic Instructions
    • Basic Arithmetics
    • Arithmetic Expression Example
    • Floating Point Instructions
  • Memory Allocation of C data structures
    • Array Allocation
    • Structure Allocation
    • IA32 Linux Memory Layout
    • Operating Modes
  • Stack Instructions
    • What is the Stack?
    • Push and Pop Instructions
    • Procedure Call
    • Procedure Return
    • Linux Stack Frame
    • Register Saving Conventions
  • SSE
    • What is SSE ?
    • SSE Registers
    • SSE Instructions
  • Stack Overflow Exploits
    • Vulnerable Code
    • Buffer Overflow: Stack Example
    • Buffer Overflow Exploit

 

X86 Assembly ProgrammingX86 Assembly Programming

Time remaining or 227 enrolls left

 

Don’t miss any coupons by joining our Telegram group 

Udemy Coupon Code 100% off | Udemy Free Course | Udemy offer | Course with certificate