Learning Assembly Language
Offered By: LinkedIn Learning
Course Description
Overview
This course provides a hands-on introduction to programming in the x86 assembler and shows you how it can be used to access system functions through the Windows API.
Syllabus
Introduction
- Understanding low-level programming in assembler
- What you should know
- Introduction to assembly language
- Setting up your development environment
- Setting up GoAsm in the IDE
- Developing an Enigma-like file encryptor
- Setting up a program skeleton
- Understanding registers and memory
- Data types
- Using data structures
- The move and exchange instructions
- Extended move instructions
- Logical or bitwise operators
- Arithmetic operators
- Controlling the assembler flow
- Indirect addressing and pointers
- Console Input and output
- Challenge
- Solution
- Calling subprograms
- Working with floating point
- Managing arrays
- Adding plugs to the Enigmatic encryptor
- The Windows API
- More on the Windows API
- Calling the printf external function
- Executing system commands
- Jump tables
- Reading data files
- Adding a menu and jump table to the Enigmatic encryptor
- Reading and writing the Enigmatic configuration
- Ciphering the data
- Leveraging the x64 AES instructions
- Challenge: Decryption function
- Solution: Decryption function
- Writing a vulnerable assembler program
- Taking control flow
- Executing code from the data section
- Calling assembler from other languages
- Using NASM
- Calling assembler routines from C
- Executing assembler in Python
- What's next
Taught by
Malcolm Shore
Related Courses
The Computing Technology Inside Your SmartphoneCornell University via edX Computer Architecture
Indian Institute of Technology Madras via Swayam Computation Structures 2: Computer Architecture
Massachusetts Institute of Technology via edX Product Design and Manufacturing
Indian Institute of Technology Kanpur via Swayam Foundations to Computer Systems Design
Indian Institute of Technology Madras via Swayam