دوره پایه آموزش زبان اسمبلی برای هکرهای قانونمند - آخرین آپدیت

دانلود Assembly Language Foundation Course for Ethical Hackers

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش برنامه نویسی سطح پایین برای تست نفوذ و اکسپلویت پیشرفته

این دوره آموزشی به شما یک مقدمه جامع از برنامه نویسی زبان اسمبلی ارائه می‌دهد، شامل دستورالعمل‌ها و ساختار کد اسمبلی.

دانشجویان در این دوره با عملکرد داخلی سیستم‌های کامپیوتری آشنا می‌شوند، از جمله CPU، ثبات‌ها، مدیریت حافظه و سایر اجزا.

درک مهندسی معکوس: دانشجویان یاد می‌گیرند چگونه برنامه‌ها را مهندسی معکوس کنند و با استفاده از زبان اسمبلی، نحوه عملکرد آن‌ها را درک کنند.

در پایان این دوره، دانشجویان درک عمیقی از برنامه نویسی زبان اسمبلی کسب خواهند کرد.

پیش‌نیازها: برنامه نویسی C و مبانی لینوکس.

برنامه نویسی زبان اسمبلی برای هکرها، مجموعه‌ای از مهارت‌های تخصصی است که دانش معماری کامپیوتر و برنامه نویسی سطح پایین را با خلاقیت و ابتکار عمل یک هکر ترکیب می‌کند. زبان اسمبلی یک زبان برنامه نویسی سطح پایین است که برای نوشتن نرم‌افزاری استفاده می‌شود که مستقیماً با سخت‌افزار رایانه تعامل دارد. این یک ابزار قدرتمند برای هکرها است که نیاز به انجام عملیات‌های پیچیده و دقیق بر روی یک سیستم دارند، به خصوص زمانی که زبان‌های سطح بالاتر به اندازه کافی کافی یا کارآمد نیستند.

هکرهایی که در برنامه نویسی زبان اسمبلی تخصص دارند، اغلب می‌توانند کارهایی را انجام دهند که با سایر زبان‌های برنامه نویسی غیرممکن یا بسیار دشوار هستند. به عنوان مثال، آنها می‌توانند کدی بنویسند که مستقیماً حافظه یا ثبات‌های یک سیستم را دستکاری کند، که می‌تواند برای انواع خاصی از هک‌ها مانند بهره‌برداری از آسیب‌پذیری‌های سرریز بافر بسیار مهم باشد. برنامه نویسی زبان اسمبلی همچنین می‌تواند برای مهندسی معکوس مورد استفاده قرار گیرد، جایی که هکرها با بررسی کد اسمبلی، عملکرد داخلی یک سیستم را تجزیه و تحلیل و درک می‌کنند.

با این حال، برنامه نویسی زبان اسمبلی نیاز به درک عمیقی از معماری کامپیوتر و مفاهیم برنامه نویسی سطح پایین دارد. هکرهایی که در این زمینه تخصص دارند، باید با مجموعه دستورالعمل‌های کامپیوتر یا پردازنده خاصی که هدف قرار می‌دهند آشنا باشند، و همچنین بتوانند کدی بنویسند که برای عملکرد و کارایی بهینه شده باشد. علی‌رغم پیچیدگی آن، برنامه نویسی زبان اسمبلی یک مهارت ضروری برای هکرهایی است که می‌خواهند مرزهای آنچه با رایانه‌ها و سیستم‌ها امکان‌پذیر است را جابجا کنند.


سرفصل ها و درس ها

مقدمه Introduction

  • چه کسانی می‌توانند در این دوره شرکت کنند و چه مهارت‌هایی برای این دوره مورد نیاز است Who can join this course & what skills needed for this course

ساختن مبانی برای برنامه نویسی زبان اسمبلی Building the basics for assembly language programming

  • نحوه کار سیستم کامپیوتری و نقش CPU Computer system working and the CPU role

  • اجزای داخلی CPU Internal components of the CPU

  • ثبات‌های داخل CPU چه هستند؟ What are the registers inside the CPU ?

  • پرچم‌های CPU Flags of the CPU

  • ساختار پرچم CPU Flag Structure of the CPU

  • نحوه کار پرچم ها در CPU Flags working in CPU

  • طرح حافظه برنامه در سیستم کامپیوتری Program's memory layout in the computer system

  • چگونه پشته یک برنامه را مشاهده کنیم How to view the stack of a program

Hello World در اسمبلی Hello World in Assembly

  • ساختار برنامه اسمبلی Structure of the assembly program

  • فراخوانی سیستم قبل از Hello World در اسمبلی System calls Before Hello World in Assembly

  • نوشتن اولین برنامه Hello World در اسمبلی Writing our first Hello World program in assembly

  • کامپایل یک برنامه اسمبلی در gcc Compiling an assembly program in gcc

  • اشکال زدایی برنامه اسمبلی ما Debugging our assembly program

  • استفاده از توابع کتابخانه C در برنامه اسمبلی Using C library functions in assembly program

انتقال داده Moving Data

  • تعریف داده ها در بخش داده در برنامه اسمبلی Defining the data in data section in assembly program

  • استفاده از نمادهای استاتیک در برنامه های اسمبلی Using static symbols in assembly programs

  • چگونه داده ها را در بخش bss تعریف و استفاده کنیم How to define and use data in the bss section

  • انتقال داده در برنامه نویسی اسمبلی Moving data in Assembly programming

  • نمایش عملی انتقال داده در اسمبلی Practical Demonstration of moving data in assembly

  • حرکت های پیشرفته تر داده در اسمبلی More advanced data movements in assembly

  • دسترسی و انتقال مقادیر اندیس دار در اسمبلی Accessing and moving indexed values in assembly

  • آدرس دهی مستقیم و غیر مستقیم در اسمبلی Direct and indirect addressing in assembly

  • مثال عملی آدرس دهی مستقیم و غیر مستقیم در اسمبلی Practical example of direct and indirect addressing in assembly

  • مفهوم اشاره گر آدرس غیر مستقیم Concept of indirect address pointer

  • دسترسی به مکان های حافظه اندیس دار در اسمبلی Accessing indexed memory locations in assembly

  • چگونه یک فریم پشته در اسمبلی ایجاد کنیم How to create a stack frame in assembly

  • اضافه و حذف داده ها از پشته در اسمبلی Adding and removing data on stack in assembly

  • دستورالعمل های تبادل داده در اسمبلی Data exchange instructions in assembly

  • تنظیم و پاک کردن بیت های پرچم Carry Flag Setting and clearing the flag bits Carry Flag

  • تنظیم و پاک کردن پرچم Overflow در اسمبلی Setting and clearning the Overflow Flag in assembly

  • تنظیم و پاک کردن پرچم Parity در اسمبلی Setting and clearing the Parity Flag in assembly

  • تنظیم و پاک کردن پرچم Sign در اسمبلی Setting and clearing the Sign Flag in assembly

  • تنظیم و پاک کردن پرچم Zero در اسمبلی Setting and clearing the Zero Flag in assembly

کنترل جریان اجرا در اسمبلی Controlling Execution flow in assembly

  • درک ثبات EIP در اسمبلی Understanding EIP register in assembly

  • دستورالعمل پرش در اسمبلی Jump instruction in assembly

  • کار دستورالعمل فراخوانی (call) در اسمبلی چیست؟ what is the work of call instruction in assembly

  • پرش شرطی به طور عمیق در اسمبلی Conditional jump in indepth in assembly

  • استفاده از پرچم Zero به عنوان یک پرش شرطی در اسمبلی Using Zero flag as a conditional jump in assembly

  • استفاده از پرچم Overflow به عنوان پرش شرطی در اسمبلی Using Overflow flag as conditional jump in assembly

  • استفاده از پرچم Parity به عنوان پرش شرطی در اسمبلی Using Parity flag as a conditional jump in assembly

استفاده از اعداد در برنامه نویسی اسمبلی Using numbers in assembly programming

  • انواع اعدادی که در برنامه نویسی اسمبلی استفاده می شوند Types of numbers which are used in assembly programming

  • اعداد صحیح علامت دار و بدون علامت چه هستند و چگونه اعداد صحیح بدون علامت ذخیره می شوند What are signed and unsigned integers and how unsigned integers are stored

  • چگونه اعداد صحیح بدون علامت در حافظه ذخیره می شوند how unsigned integers are stored in memory

  • استفاده از اعداد صحیح بدون علامت در برنامه اسمبلی Using unsigned integers in assembly program

  • مفهوم نحوه ذخیره اعداد در حافظه توسط CPU Concept of how a CPU stores the numbers in memory

  • نمایش عملی نحوه ذخیره اعداد در حافظه توسط CPU Practical demonstration of how CPU stores numbers in memory

  • نحوه استفاده از اعداد علامت دار در برنامه اسمبلی How to use signed numbers in assembly program

  • مفهوم ثبات های SIMD در اسمبلی SIMD registers concept in assembly

  • ثبات های MMX در اسمبلی MMX registers in assembly

  • استفاده از ثبات های mmx در اسمبلی برای انتقال اعداد صحیح Using mmx registers in assembly to move integers

  • درک ثبات های SSE Understanding SSE registers

  • استفاده از ثبات های SSE در اسمبلی Using SSE registers in assembly

  • انواع داده BCD چیست What are BCD data types

  • ذخیره انواع داده BCD در حافظه Storing BCD data types in memory

  • چگونه اعداد ممیز شناور منتقل می شوند How floating point numbers are moved

  • ذخیره اعداد ممیز شناور در حافظه Storing floating point numbers into memory

  • ذخیره چندین مقدار ممیز شناور به طور همزمان Storing multiple float values at once

توابع اصلی ریاضی در اسمبلی Basic math functions in assembly

  • جمع اعداد در اسمبلی Adding numbers in assembly

  • کار با اعداد منفی در اسمبلی Dealing with negative numbers in assembly

  • مفهوم تشخیص نقلی (carry) در عملیات جمع Concept of detecting carry in addition operation

  • نوشتن برنامه اسمبلی برای تشخیص پرچم نقلی (carry flag) در عملیات جمع Writing assembly program for detecting carry flag in addition operation

  • درک مفهوم سرریز (overflow) در محاسبات جمع Understanding overflow concept in addition arithmetic

  • نمایش عملی سرریز (overflow) در دستورالعمل جمع در اسمبلی Practical demonstration of overflow in addition instruction in assembly

  • تشخیص سرریز (overflow) در جمع اعداد صحیح علامت دار در اسمبلی Detecting overflow in signed integers addition in assembly

  • مفهوم دستورالعمل جمع با نقلی (add carry) در اسمبلی Concept of add carry instruction in assembly

  • استفاده از دستورالعمل ADC در اسمبلی Using ADC instruction in assembly

  • نحوه عملکرد تفریق باینری How binary subtraction works

  • استفاده از دستورالعمل sub در برنامه اسمبلی Using sub instruction in assembly program

  • دستورالعمل های افزایش و کاهش در اسمبلی Increment and decrement instruction in assembly

  • ضرب دو عدد بدون علامت در اسمبلی Multiplication of two unsigned numbers in assembly

  • روش های مختلف ضرب اعداد علامت دار در اسمبلی Different ways of multiplications of signed numbers in assembly

  • نحوه کار تقسیم در اسمبلی How division works in assembly

  • انتقال بیت در برنامه نویسی اسمبلی Bit shifting in assembly programming

  • چرخاندن بیت ها در برنامه نویسی اسمبلی Rotating bits in assembly programming

  • عملیات منطقی در اسمبلی Logical operations in assembly

  • استفاده از عملیات منطقی OR، AND و XOR در برنامه نویسی اسمبلی Using OR, AND and XOR logical operations in assembly programming

کار با رشته ها Working with Strings

  • رشته ها چگونه در اسمبلی منتقل می شوند؟ How strings are moved in assembly ?

  • پرچم جهت (direction flag) در انتقال رشته در اسمبلی Direction flag in string movement in assembly

  • حرکت اشاره گرهای ESI و EDI هنگام تنظیم پرچم DF در برنامه اسمبلی Movement of ESI and EDI pointers when DF flag is set in assembly program

  • دستورالعمل REP چگونه در رشته ها در برنامه اسمبلی کار می کند How REP instruction works in strings in assembly program

  • مبانی مقایسه رشته ها در اسمبلی Basics of comparing strings in assembly

  • چگونه رشته های بزرگ با دستورالعمل REP در اسمبلی مقایسه می شوند How big strings are compared with REP instruction in assembly

  • دستورالعمل های LODS و STOS در حرکت رشته در برنامه نویسی اسمبلی LODS and STOS instructions in string movment in assembly programming

  • مفهوم اساسی نحوه رمزگذاری یک رشته در اسمبلی Basic concept of how we can encrypt a string in assembly

  • رمزگذاری یک رشته در برنامه اسمبلی Encrypting a string in assembly program

  • نحوه رمزگشایی رشته رمزگذاری شده در اسمبلی How to decrypt the encrypted string in assembly

استفاده از توابع در برنامه نویسی اسمبلی Using functions in assembly programming

  • نحوه تعریف یک تابع در برنامه نویسی اسمبلی How to define a function in assembly programming

  • استفاده از یک تابع در برنامه نویسی اسمبلی Using a function in assembly programming

  • انتقال مقادیر ورودی به توابع در اسمبلی Passing input values to functions in assembly

  • پیش درآمد و پایان توابع (prolog and epilog) با فریم پشته چیست؟ what are function prolog and epilog with stack frame ?

  • ایجاد پیش درآمد و پایان توابع (function prolog and epilog) در برنامه نویسی اسمبلی Creating function prolog and epilog in assembly programming

  • دسترسی به پارامترهای تابع با استفاده از داده های پشته Accessing function parameters using stack data

  • دسترسی به داده های پشته در تابع خود در اسمبلی Accessing stack data in our function in assembly

  • نحوه استفاده از فایل های تابع جداگانه در اسمبلی How to use seperate function files in assembly

  • یافتن پارامترهای ورودی برنامه در پشته Finding program input parameters on stack

استفاده از فراخوانی های سیستم در برنامه نویسی اسمبلی Using system calls in assembly programming

  • نحوه استفاده از فراخوانی های سیستم در اسمبلی - اصول اولیه How to use system calls in assembly - the basics

  • قوانین استفاده از فراخوانی های سیستم در اسمبلی Rules for using system calls in assembly

  • استفاده از فراخوانی های سیستم write و exit در اسمبلی Using write and exit system calls in assembly

  • مقدار بازگشتی یک فراخوانی سیستم Return value of a system call

  • یافتن مقدار بازگشتی فراخوانی سیستم exit Finding exit system call return value

  • استفاده از فراخوانی سیستم getpid در اسمبلی برای دریافت شناسه فرآیند برنامه Using getpid system call in assembly to get the process id of program

  • استفاده از فراخوانی سیستم getuid در اسمبلی برای دریافت شناسه کاربری فعلی یک کاربر Using getuid system call in assembly to get the current user id of a user

  • نحوه مدیریت مقادیر بازگشتی پیشرفته یک فراخوانی سیستم How to handle advanced return values of a system call

برنامه نویسی اسمبلی درون خطی Inline assembly programming

  • برنامه نویسی اسمبلی درون خطی چیست What is an inline assembly programming

  • استفاده از syscall write برای چاپ با استفاده از اسمبلی درون خطی Using write syscall to print using inline assembly

  • چاپ مقادیر ثبات با استفاده از برنامه نویسی اسمبلی درون خطی Printing register values using inline assembly programming

نمایش نظرات

دوره پایه آموزش زبان اسمبلی برای هکرهای قانونمند
جزییات دوره
27 hours
107
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
849
4.6 از 5
دارد
دارد
دارد
Swapnil Singh
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Swapnil Singh Swapnil Singh

برنامه نویس و محقق امنیت سایبری