Assembly Mastery For Ethical Hacking & Penetration Testing
Published 10/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 14.28 GB | Duration: 24h 19m
Published 10/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 14.28 GB | Duration: 24h 19m
Mastering low-level programming for advanced exploitation and penetration testing
What you'll learn
The course will provide an introduction to Assembly Language programming, including the syntax and structure of Assembly Language code.
Students will learn about the internal workings of a computer system, including the CPU, registers, memory management, and other components.
Understanding Reverse Engineering: Students will learn how to reverse engineer programs and understand how they work using Assembly Language.
By the end of the course, students will have gained a deep understanding of Assembly Language programming
Requirements
C programming
linux basics
Description
Assembly language programming for hackers is a specialized skill set that combines the knowledge of computer architecture and low-level programming with the creativity and resourcefulness of a hacker. Assembly language is a low-level programming language that is used to write software that interacts directly with a computer's hardware. It is a powerful tool for hackers who need to perform intricate and precise operations on a system, especially when higher-level languages are not sufficient or efficient enough.Hackers who specialize in assembly language programming are often able to perform tasks that are impossible or extremely difficult with other programming languages. For example, they can write code that directly manipulates a system's memory or registers, which can be critical for certain types of hacks such as exploiting buffer overflow vulnerabilities. Assembly language programming can also be used for reverse engineering, where hackers analyze and understand the inner workings of a system by examining its assembly code.However, assembly language programming requires a deep understanding of computer architecture and low-level programming concepts. Hackers who specialize in this area must be familiar with the instruction set of the specific computer or processor they are targeting, as well as be able to write code that is optimized for performance and efficiency. Despite its complexity, assembly language programming remains an essential skill for hackers who want to push the boundaries of what is possible with computers and systems.
Overview
Section 1: Introduction
Lecture 1 Who can join this course & what skills needed for this course
Section 2: Building the basics for assembly language programming
Lecture 2 Computer system working and the CPU role
Lecture 3 Internal components of the CPU
Lecture 4 What are the registers inside the CPU ?
Lecture 5 Flags of the CPU
Lecture 6 Flag Structure of the CPU
Lecture 7 Flags working in CPU
Lecture 8 Program's memory layout in the computer system
Lecture 9 How to view the stack of a program
Section 3: Hello World in Assembly
Lecture 10 Structure of the assembly program
Lecture 11 System calls Before Hello World in Assembly
Lecture 12 Writing our first Hello World program in assembly
Lecture 13 Compiling an assembly program in gcc
Lecture 14 Debugging our assembly program
Lecture 15 Using C library functions in assembly program
Section 4: Moving Data
Lecture 16 Defining the data in data section in assembly program
Lecture 17 Using static symbols in assembly programs
Lecture 18 How to define and use data in the bss section
Lecture 19 Moving data in Assembly programming
Lecture 20 Practical Demonstration of moving data in assembly
Lecture 21 More advanced data movements in assembly
Lecture 22 Accessing and moving indexed values in assembly
Lecture 23 Direct and indirect addressing in assembly
Lecture 24 Practical example of direct and indirect addressing in assembly
Lecture 25 Concept of indirect address pointer
Lecture 26 Accessing indexed memory locations in assembly
Lecture 27 How to create a stack frame in assembly
Lecture 28 Adding and removing data on stack in assembly
Lecture 29 Data exchange instructions in assembly
Lecture 30 Setting and clearing the flag bits Carry Flag
Lecture 31 Setting and clearning the Overflow Flag in assembly
Lecture 32 Setting and clearing the Parity Flag in assembly
Lecture 33 Setting and clearing the Sign Flag in assembly
Lecture 34 Setting and clearing the Zero Flag in assembly
Section 5: Controlling Execution flow in assembly
Lecture 35 Understanding EIP register in assembly
Lecture 36 Jump instruction in assembly
Lecture 37 what is the work of call instruction in assembly
Lecture 38 Conditional jump in indepth in assembly
Lecture 39 Using Zero flag as a conditional jump in assembly
Lecture 40 Using Overflow flag as conditional jump in assembly
Lecture 41 Using Parity flag as a conditional jump in assembly
Section 6: Using numbers in assembly programming
Lecture 42 Types of numbers which are used in assembly programming
Lecture 43 What are signed and unsigned integers and how unsigned integers are stored
Lecture 44 how unsigned integers are stored in memory
Lecture 45 Using unsigned integers in assembly program
Lecture 46 Concept of how a CPU stores the numbers in memory
Lecture 47 Practical demonstration of how CPU stores numbers in memory
Lecture 48 How to use signed numbers in assembly program
Lecture 49 SIMD registers concept in assembly
Lecture 50 MMX registers in assembly
Lecture 51 Using mmx registers in assembly to move integers
Lecture 52 Understanding SSE registers
Lecture 53 Using SSE registers in assembly
Lecture 54 What are BCD data types
Lecture 55 Storing BCD data types in memory
Lecture 56 How floating point numbers are moved
Lecture 57 Storing floating point numbers into memory
Lecture 58 Storing multiple float values at once
Section 7: Basic math functions in assembly
Lecture 59 Adding numbers in assembly
Lecture 60 Dealing with negative numbers in assembly
Lecture 61 Concept of detecting carry in addition operation
Lecture 62 Writing assembly program for detecting carry flag in addition operation
Lecture 63 Understanding overflow concept in addition arithmetic
Lecture 64 Practical demonstration of overflow in addition instruction in assembly
Lecture 65 Detecting overflow in signed integers addition in assembly
Lecture 66 Concept of add carry instruction in assembly
Lecture 67 Using ADC instruction in assembly
Lecture 68 How binary subtraction works
Lecture 69 Using sub instruction in assembly program
Lecture 70 Increment and decrement instruction in assembly
Lecture 71 Multiplication of two unsigned numbers in assembly
Lecture 72 Different ways of multiplications of signed numbers in assembly
Lecture 73 How division works in assembly
Lecture 74 Bit shifting in assembly programming
Lecture 75 Rotating bits in assembly programming
Lecture 76 Logical operations in assembly
Lecture 77 Using OR, AND and XOR logical operations in assembly programming
Section 8: Working with Strings
Lecture 78 How strings are moved in assembly ?
Lecture 79 Direction flag in string movement in assembly
Lecture 80 Movement of ESI and EDI pointers when DF flag is set in assembly program
Lecture 81 How REP instruction works in strings in assembly program
Lecture 82 Basics of comparing strings in assembly
Lecture 83 How big strings are compared with REP instruction in assembly
Lecture 84 LODS and STOS instructions in string movment in assembly programming
Lecture 85 Basic concept of how we can encrypt a string in assembly
Lecture 86 Encrypting a string in assembly program
Lecture 87 How to decrypt the encrypted string in assembly
Section 9: Using functions in assembly programming
Lecture 88 How to define a function in assembly programming
Lecture 89 Using a function in assembly programming
Lecture 90 Passing input values to functions in assembly
Lecture 91 what are function prolog and epilog with stack frame ?
Lecture 92 Creating function prolog and epilog in assembly programming
Lecture 93 Accessing function parameters using stack data
Lecture 94 Accessing stack data in our function in assembly
Lecture 95 How to use seperate function files in assembly
Lecture 96 Finding program input parameters on stack
Ethical Hackers,Pentesters,Computer Science Students,Malware analysts,Programmers,anyone who wants to learn something new in Computer science