Special offers now — see discounted courses.
day
:
hour
:
min
:
sec
See special offers
Learning Assembly Language

Learning Assembly Language

3h 5mBeginner2021-01-26

Authors

Malcolm Shore

Malcolm Shore

Cybersecurity Expert, Former Director of GCSB

Course details

In this course, instructor Malcolm Shore offers you a hands-on introduction to programming in both the 32 bit and 64 bit x86 assembler and shows how you can use it to access system functions through the Windows API. First, Malcolm shows you how to install and test the GoAsm assembler, the Easy Code IDE, and the x64 debugger. He explains how to build a complex data structure and how to manipulate constants, registers, and main memory. He shows you how to write and call subprograms and how to manipulate information as an array. Then Malcolm goes into the Windows API and how to use it. He describes how to run a system command from inside an assembler program, as well as how to code and use jump tables. Next, he steps you through how to use what you’ve learned to complete an enigmatic encryptor. After showing you how to resolve some security issues in the assembler, Malcolm concludes with several examples of how you can run assembly code from another language with assembler subprograms.

Skills covered

Programming FoundationsPythonLearningOpen SourceSoftware Development

Concepts

0. Introduction

  • 01 - Understanding low-level programming in assembler
  • 02 - What you should know

1. Preparing Your Assembler Environment

  • 03 - Introduction to assembly language
  • 04 - Setting up your development environment
  • 05 - Setting up GoAsm in the IDE
  • 06 - Developing an Enigma-like file encryptor

2. Coding in Assembler - I

  • 07 - Setting up a program skeleton
  • 08 - Understanding registers and memory
  • 09 - Data types
  • 10 - Using data structures
  • 11 - The move and exchange instructions
  • 12 - Extended move instructions
  • 13 - Logical or bitwise operators
  • 14 - Arithmetic operators
  • 15 - Controlling the assembler flow
  • 16 - Indirect addressing and pointers
  • 17 - Console Input and output
  • 18 - Challenge
  • 19 - Solution

3. Coding in Assembler - II

  • 20 - Calling subprograms
  • 21 - Working with floating point
  • 22 - Managing arrays
  • 23 - Adding plugs to the Enigmatic encryptor
  • 24 - The Windows API
  • 25 - More on the Windows API
  • 26 - Calling the printf external function
  • 27 - Executing system commands
  • 28 - Jump tables
  • 29 - Reading data files

4. Completing the Enigmatic Encryptor

  • 30 - Adding a menu and jump table to the Enigmatic encryptor
  • 31 - Reading and writing the Enigmatic configuration
  • 32 - Ciphering the data
  • 33 - Leveraging the x64 AES instructions
  • 34 - Challenge - Decryption function
  • 35 - Solution - Decryption function

5. Security Issues in Assembler

  • 36 - Writing a vulnerable assembler program
  • 37 - Taking control flow
  • 38 - Executing code from the data section

6. Using Assembly Language in Other Languages

  • 39 - Calling assembler from other languages
  • 40 - Using NASM
  • 41 - Calling assembler routines from C
  • 42 - Executing assembler in Python

Conclusion

  • 43 - What's next

Related courses

Related learn paths

About us

LyndaKade is a leading learning platform that helps people learn business, software, technology, and creative skills to achieve personal and professional goals.

Phone numberAparat ChannelTelegram SupportTelegram ChannelInstagram Page

All rights to this site belong to LyndaKade.

Terms of Service|Privacy Policy

نماد الکترونیک enamad در صورت اتصال با آی‌پی داخل کشور، نمایش داده خواهد شد.
logo-samandehi - لوگو ساماندهی
zarinpal
zibal