لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش مسترکلاس مهندسی معکوس: IDA، Ghidra، لینوکس و x86_64 [ویدئویی]
- آخرین آپدیت
دانلود Reverse Engineering Masterclass: IDA, Ghidra, Linux & x86_64 [Video]
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
در این دوره، شما جنبههای اصلی مهندسی معکوس و محاسبات سطح پایین (Low-level) را بررسی خواهید کرد. این مسیر با معرفی ابزارهای بنیادی مانند Ghidra و IDA آغاز میشود و مهارتهای لازم برای تحلیل کد در سطح باینری را به شما میآموزد. شما با تکنیکهای دیساسمبل (Disassembly)، دستکاری حافظه و دیباگ کردن آشنا میشوید تا بتوانید کد ماشین را درک کرده و تغییر دهید.
با پیشروی در دوره، وارد دنیای تحلیل بدافزار خواهید شد و یاد میگیرید چگونه نرمافزارهای مخرب را مهندسی معکوس کرده و آسیبپذیریهای آنها را شناسایی کنید. شما از طریق کار روی سناریوهای واقعی، راهاندازی محیطهای مجازی و استفاده از ابزارهای داخلی برای تحلیل سیستمها، تجربه عملی کسب خواهید کرد. چه تحلیل باینریهای x86_64 باشد و چه یادگیری پیچیدگیهای زبان اسمبلی، این دوره تضمین میکند که شما مهارتهای لازم برای مقابله با چالشهای مدرن امنیت سایبری را به دست آورید.
در پایان این دوره، تسلط کامل بر تکنیکهای مهندسی معکوس خواهید داشت و اعتماد به نفس لازم برای بهکارگیری آنها در پروژههای امنیتی را کسب میکنید. شما آماده خواهید بود تا با استفاده از ابزارها و تکنیکهای استاندارد صنعت، عملیات دیساسمبل، تحلیل بدافزار و دیباگینگ سطح پایین را انجام دهید.
آنچه در این دوره میآموزید:
- درک و بهکارگیری تکنیکهای مهندسی معکوس با استفاده از Ghidra و IDA.
- تحلیل و دستکاری فایلهای باینری، شامل زبان اسمبلی و معماری x86_64.
- انجام تحلیل بدافزار و کشف آسیبپذیریها در نرمافزارها.
- راهاندازی و استفاده از ابزارهای دیباگ برای تحلیل نرمافزارهای سطح پایین.
- پیمایش در کدهای دیساسمبل شده و شناسایی توابع مهم در کد.
- استفاده از ابزارهای واقعی برای بررسی و دستکاری حافظه و باینریها.
این دوره برای متخصصان IT، پژوهشگران امنیتی و توسعهدهندگانی که علاقهمند به تسلط بر مهندسی معکوس هستند، ایدهآل است. داشتن درک پایه از برنامهنویسی، بهویژه زبان C یا ++C توصیه میشود. آشنایی با لینوکس نیز مفید است اما اجباری نیست.
سرفصل ها و درس ها
مقدمهای بر مهندسی و علوم کامپیوتر
Introduction to Computer Engineering & Science
کامپیوتر چگونه ارتباط برقرار میکند
How Computer Communicates
آمادهسازی محیط توسعه
Preparing Dev Env
هنگام استفاده از کامپیوتر چه اتفاقی میافتد
What Happens When You Use a Computer
حسابهای کامپیوتری برای مبتدیان
Computer Arithmetic for Beginners
جمع در سیستم دهدهی چگونه انجام میشود
How Addition Happens in Decimal
حساب جمع در اعداد صحیح بدون علامت
Addition Arithmetic in Unsigned Integers
تفریق در سیستم دهدهی
Subtraction in Decimal
حساب تفریق در اعداد صحیح بدون علامت
Subtraction Arithmetic in Unsigned Integers
حساب تفریق در اعداد صحیح علامتدار (اعداد منفی در باینری)
Subtraction Arithmetic in Signed Integers (Negative Numbers in Binary)
جبر بول (Boolean Algebra)
Boolean Algebra
جبر بول برای محاسبات سطح پایین
Boolean Algebra for Low-Level Computing
الکترونیک
Electronics
مقدمهای بر الکترونیک برای مهندسان سختافزار ۱
Introduction to Electronics for Hardware Engineers-1
گیتهای منطقی و پیادهسازی سختافزاری آنها
Logic Gates and Their Hardware Implementation
خازنها و پیادهسازی در مدارها
Capacitors and Implementation in Circuits
چرا از سلفها در مادربرد استفاده میشود
Why Use Inductors on Motherboards at All
مصرف توان و ترانزیستورها ۱
Power Consumption and Transistors-1
ترانزیستورهای MOSFET
MOSFET Transistors
سوئیچ CMOS در پردازندهها
CMOS Switch in CPUs
مدارهای منطقی ترکیبی
Combinational Logic Circuits
مقدمهای بر مدارهای منطقی
Introduction to Logic Circuits
جمعکنندههای کامل (Full Adders)
Full Adders
گیتهای NAND و NOR
NAND and NOR
آشنایی با Ghidra
Introduction to Ghidra
درک نحوه عملکرد Ghidra و مراحل مهم دیگر
Understanding How Ghidra Works and Other Important Steps to Do
آنالایزرهای Ghidra و رابط کاربری
Ghidra Analyzers and User Interface
شخصیسازی Ghidra و نمودارها
Customizing Ghidra and Graphs
آشنایی با نوار منوی بالای Ghidra
Getting Familiar with Ghidra Top Menu Bar
مقدمهای بر محاسبات سطح پایین
Introduction to Low-Level Computing
مقدمهای بر محاسبات سطح پایین
Introduction to Low-Level Computing
از کاراکترها تا بیتها
From Characters to Bits
ساخت معماری مجموعه دستورالعملهای CPU
Creating Our Instruction Set Architecture CPU
مقدمهای بر مهندسی معکوس
Introduction to Reverse Engineering
مهندسی معکوس و تحلیل بدافزار
Reverse Engineering & Malware Analysis
۵ مرحله مهم در مهندسی معکوس و تحلیل بدافزار
5 Important Steps in Reverse Engineering and Malware Analysis
محیط مجازیسازی برای انجام پروژه
Virtualization Environment for Our Work
استفاده از ابزارهای داخلی برای تحلیل سیستم
Using Built-in Tools for System Analysis
زبان اسمبلی
Assembly Language
رجیسترها
Registers
پرچمها (Flags)
Flags
آدرسدهی حافظه و Endianness
Memory Addressing and Endianness
خواندن و درک زبان اسمبلی
Read and Understand Assembly
اوپکدها (Opcodes)
Opcodes
دستکاری حافظه
Manipulating Memory
ساخت آزمایشگاه
Creating Lab
نصب SASM
Installing SASM
دانلود Ghidra و ساختار فایلها
Downloading Ghidra and File Structure
نصب JDK در لینوکس
Installing JDK in Linux
نصب JDK در ویندوز یا مک
Installing JDK in Windows or MacOS
نوشتن اولین برنامه اسمبلی ۶۴ بیتی
Writing Our First 64-Bit Assembly Program
برنامه Hello World با Makefile
Hello World with Makefile
چرا NASM بهترین است؟ مقایسه اسمبلرها
Why NASM Is Best and Compare Assemblers
طبق سنتها: برنامه Hello World بدون Makefile
Sticking to Traditions - Hello World Program Without Makefile
دیساسمبلی و دیساسمبلر
Disassembly and Disassembler
تئوری دیساسمبلی
The Disassembly Theory
دیساسمبلی چیست؟
Disassembly - What
درک انواع دادهها
Understanding Data Types
درک معماریهای CPU و فایلهای باینری
Understanding CPU Architectures and Binaries
تبدیل دهدهی به باینری با ریاضیات پایه
Converting Decimal to Binary with Basic Math
شروع کار با Ghidra
Starting with Ghidra
باز کردن پروژه در Ghidra
Opening Project in Ghidra
کاوش در Ghidra
Discovering Ghidra
دیباگ کردن x86 64
Debugging x86-64
اجرای GDB و تنظیمات اولیه
Starting GDB and Setting Flavors
دیباگ و یافتن متغیرها در آدرسهای حافظه
Debugging and Finding Variables in Memory Addresses
یادگیری بیشتر با GDB
Learning More with GDB
تحلیل بدافزار و مهندسی معکوس با Ghidra
Malware Analysis and Reverse Engineering with Ghidra
شروع تحلیل بدافزار واقعی با Ghidra
Starting Real Malware Analysis with Ghidra
تحلیل رشتههای مشکوک با استفاده از Ghidra
Analyzing Suspicious Strings Using Ghidra
استفاده از OSINT برای مهندسی معکوس
OSINT for Reverse Engineering
تحلیل کتابخانههای مورد استفاده در بدافزار
Analyzing Libraries That Malware Uses
استخراج فایل SYS از بدافزار
Extracting SYS File from Malware
یافتن نقاط ورود و تغییر نام توابع تعریف نشده
Finding Entry Points and Changing Undefined Function Names
تحلیل باینری
Binary Analysis
تحلیل باینری و ۴ مرحله کامپایل
Analysis of Binary and 4 Stages of Compilation
پیشپردازش (Preprocessing)
Preprocessing
مرحله کامپایل (Compilation)
Compilation Phase
مرحله اسمبلی (Assembly)
Assembly Phase
مرحله لینک کردن (Linking)
Linking Phase
نوشتن دومین برنامه اسمبلی ۶۴ بیتی
Writing Our Second 64-Bit Assembly Program
کدنویسی فایل ASM
Coding ASM File
تحلیل خروجی با GDB و ساخت Makefile
Analyzing Output with GDB and Creating Makefile
نمادها، باینریهای Stripped و Not Stripped
Symbols, Stripped and Not Stripped Binaries
استفاده از READELF برای مشاهده اطلاعات نمادین
Using READELF for Viewing Symbolic Information
نمایش محتویات فایل Object
Revealing Contents of Object File
تلاش برای تحلیل فایل اجرایی باینری
Trying to Analyze Binary Executable
تئوری نحوه بارگذاری و اجرای باینری
How Binary Loads and Executes in Theory
فرمت ELF در لینوکس
Linux - ELF Format
بررسی فرمت ELF و هدر فایل اجرایی
Exploring the Executable and Linkable Format (ELF) and Executable Header
یادگیری فیلدهای ELF
Learning ELF Fields
یادگیری فیلدهای هدر برنامه ELF
Learning ELF Program Header Fields
فرمت PE در ویندوز
Windows - PE Format
مبانی فرمت PE ویندوز
Fundamentals of Windows PE Format
عملیات منطقی OR, XOR, AND
OR XOR AND
عملیات OR
OR
عملیات NOT
NOT
عملیات XOR
XOR
عملیات AND
AND
نرمافزار IDA Pro / IDA Freeware
IDA Pro / IDA Freeware
دانلود و نصب IDA Pro / IDA Freeware
Downloading and Installing IDA Pro / IDA Freeware
آشنایی با محیط IDA
Being Friends with IDA
تبهای کاربردی در IDA
Useful Tabs in IDA
دیباگر نمایش دادهها (DDD)
Data Display Debugger - DDD
توسعه یک برنامه اسمبلی برای تحلیل با DDD
Developing Another Assembly Program to Analyze with DDD
تحلیل کدهای نوشته شده قبلی
Analyzing Previously Written Code
استفاده از DDD و تحلیل مقادیر RAX
Using DDD and Analyzing RAX Values
پرشها و حلقهها (Jump and Loop)
Jump and Loop
استفاده از شرطها و پرشها
Using Conditions and Jumping
پرش در صورت برابر بودن (JE)
Jump if Equal
پرش در صورت برابر نبودن (JNE)
Jump if Not Equal
پرش در صورت بزرگتر بودن (JG)
Jump if Greater
بزرگتر یا مساوی (JGE)
Greater Than or Equal To
پرش در صورت کوچکتر بودن (JL)
Jump if Less
کوچکتر یا مساوی (JLE)
Jump if Less or Equal
پرش در صورت بالاتر بودن (JA)
Jump if Above
بالاتر یا مساوی (JAE)
Jump if Above or Equal
پرش در صورت پایینتر بودن (JB)
Jump if Below
پایینتر یا مساوی (JBE)
Jump if Below or Equal
پروژه اسمبلی با استفاده از پرش و حلقه
Assembly Project Using Jump and Loop
توسعه پروژه حلقه و ماشین حساب با اسمبلی
Developing Loop and Calculator Project with Assembly
تست پروژه
Testing Our Project
دستکاری حافظه
Memory Manipulation
پروژه EXABYTE
Project EXABYTE
تست و تحلیل پروژه با READELF و GDB
Testing and Analyzing Project with READELF and GDB
ساخت ماشین حساب با اسمبلی
Calculator with Assembly
تعریف متغیرها
Defining Variables
جمع و تفریق
Addition and Subtraction
تکمیل جزئیات نهایی
Last Decorations
توضیح کاربردی رجیسترها
Explaining Registers in Practice
اتمام بخش
Completing Section
پشته (Stack)
Stack
دستکاری پشته (Stack)
Manipulating Stack
توابع (Functions)
Functions
توسعه اولین تابع کاربردی
Developing Our First Functional Function
درک عمیقتر از توابع و متغیرهای محلی در اسمبلی
Gaining Deeper Understanding of Functions and Local Variables in Assembly
استک فریم و توابع خارجی
Stack Frame and External Functions
مبانی استک فریم و فراخوانی توابع تو در تو
Fundamentals of Stack Frame and Nested Function Calls
توسعه تابع خارجی و فراخوانی آنها
Developing Our Own External Function and Calling Them
آرگومانهای تابع و حفظ رجیسترها
FuncArg and Preserving Registers
اتمام رجیسترها!!!
Running Out of Registers!!!
همه چیز در مورد بیتها!!!
Bits Everywhere!!!
بیتها، بیتها، بیتها!!!
Bits, Bits, Bits!!!
ماکروها
Macros
ماکروها
Macros
ورودی/خروجی کنسول و فایل
Console IO and File IO
ورودی - مراقب ورودیها باشید!!
Input - BE CAREFUL with INPUT!!
ورودی - روشهای امنتر دریافت ورودی
Input - MORE SECURE INPUT
عملیات فایل (File IO)
File IO
درک مدیریت فایل در اسمبلی
Understanding File Management in Assembly
ساخت فایل در اسمبلی
Creating File in Assembly
حذف و بازنویسی فایل در اسمبلی
Deleting and Overwriting File in Assembly
باز کردن و نوشتن در فایل در اسمبلی
Opening and Writing File in Assembly
در نهایت، دستکاری فایلها در برنامه اسمبلی
Finally Manipulating Files in Assembly Program
تایفون مامدوف بنیانگذار Ocsaly، آکادمی پیشرو علوم کامپیوتر آنلاین است. تایفون با اشتیاق به توانمندسازی یادگیرندگان، دورههای تعاملی و عملی طراحی میکند که هم برای مبتدیان و هم برای متخصصان باتجربه مناسب است. رویکرد نوآورانه او یادگیری منعطف و خودگردان را با کاربردهای عملی در دنیای واقعی ترکیب میکند. به Ocsaly بپیوندید تا مهارتهای کدنویسی خود را ارتقا دهید و مسیر شغلی خود را در تکنولوژی متحول کنید.
نمایش نظرات