Assembly Programming and Shellcoding


Assembly Programming and Shellcoding
- متوسط
- مسیر آبی
- ۵ درس

دربارهی این دوره
این دوره به چه افرادی توصیه میشود؟
- توسعهدهندگان سیستمهای نهفته
- کارشناسان امنیت سایبری
- کارشناسان مهندسی معکوس
- تحلیلگران بد افزار
- علاقهمندان به اکسپلویت نویسی
- توسعهدهندگان بدافزار
- علاقهمندان به درک مفاهیم بسیار پایه از سیستمهای کامپیوتر
برای حضور در این دوره چه دانشهایی باید داشته باشم؟
- آشنایی با چگونگی عملکرد دقیق کامپیوتر
- آشنایی با ساختار سیستمعامل
- آشنایی با یک زبان برنامهنویسی
سرفصلهای دوره
-
Fundamental Concepts of the Machines
-
Processor Architecture
-
CISC
-
RISC
-
RISC-V
-
Processor Manufacturer
-
Intel
-
AMD
-
ARM
-
MIPS
-
CPU Operational Modes
-
Ring -3 Intel ME and AMD ASP
-
Ring -2 Intel SMM
-
Ring -1 Hypervisor
-
Ring 0 Kernel
-
Ring 1 User-mode
-
CPU Memory Addressing
-
Physical Address
-
Virtual Address
-
MMU and TLB
-
Real Mode Addressing
-
Protected Mode Addressing
-
Compilers, Assemblers, and Linkers
-
Nasm and Masm Assembler
-
LD and ML Linker
-
Objdump, Ndisasm, and Capstone
-
-
IA-32 Assembly Language
-
ELF Program Structure for use with NASM
-
PE Program Structure for use with MASM
-
CPU Registers
-
General Registers
-
X87 FPU Registers
-
MMX, SSE, SSE2, YMM Registers
-
ALU Status Register (EFLAG or RFLAG)
-
Data Types
-
BYTE
-
WORD
-
DWORD
-
QWORD
-
Data Movement Instructions
-
Arithmetic Instructions
-
Conditional Instructions
-
Conditional Jumps
-
Unconditional Jump
-
Strings and Loops
-
Interrupts, Traps, and Exceptions
-
Procedures, Prologues and Epilogues
-
Syscall structure and ABI for Linux
-
Calling standard library functions
-
-
Shellcoding on Linux
-
Introduction to the Shellcoding
-
What is Shellcode?
-
Why we need Shellcodes?
-
Why shellcode use PIC?
-
How shellcode really works?
-
Tiny Shellcode Techniques
-
-
Virtual Shellcode Development Environment
-
Shellcoding Tools
-
Linux Syscalls
-
Compiling and Extracting Shellcode
-
Techniques for Removing Bad Characters
-
Debugging Shellcode Using Various Debuggers
-
Linux Shellcode and File Descriptors
-
Locating and Manipulating Strings in Memory
-
Reusing Shellcode Blocks
-
Learn an Easier Way to Compile and Extract Shellcode
-
Linux Command Execution Shellcode
-
-
How Does a Disassembler Work?
-
What is a Binary Instrumentation?
-
Static Binary Instrumentation
-
Accurate Disassembly
-
Linear Disassembly
-
Recursive Disassembly
-
PEBIL’s Disassembly
-
Angr’s Disassembly
-
BinCFI Disassembly
-
SecondWrite Disassembly
-
Preserving Control Flow Branches
-
Fixing direct control flow branches
-
Fixing indirect control flow branches
-
Callbacks
-
Dynamic Binary Instrumentation
-
Assembly to Assembly Transformation – Case Study (PIN Tool)
-
Disassemble and Resynthesize – Case Study (Valgrind Tool) What is binary lifting in reverse engineering?
-
گواهینامهی دوره
