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
()
Ex_Files_Learning_Assembly_Language.zip
(83 KB)