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
Heterogeneous Parallel ProgrammingUniversity of Illinois at Urbana-Champaign via Coursera Advanced Operating Systems
Georgia Institute of Technology via Udacity 計算機程式設計 (Computer Programming)
National Taiwan University via Coursera Introduction to Operating Systems
Georgia Institute of Technology via Udacity Android Performance
Google via Udacity