YoVDO

Learning Assembly Language

Offered By: LinkedIn Learning

Tags

Assembly Language Courses Data Structures Courses Memory Management Courses Low-level Programming Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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
1. Preparing Your Assembler Environment
  • Introduction to assembly language
  • Setting up your development environment
  • Setting up GoAsm in the IDE
  • Developing an Enigma-like file encryptor
2. Coding in Assembler: I
  • 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
3. Coding in Assembler: II
  • 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
4. Completing the Enigmatic Encryptor
  • 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
5. Security Issues in Assembler
  • Writing a vulnerable assembler program
  • Taking control flow
  • Executing code from the data section
6. Using Assembly Language in Other Languages
  • Calling assembler from other languages
  • Using NASM
  • Calling assembler routines from C
  • Executing assembler in Python
Conclusion
  • What's next

Taught by

Malcolm Shore

Related Courses

Heterogeneous Parallel Programming
University 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