مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
آشنایی با فرمت ELF در لینوکس
این دوره جامع شما را گام به گام از طریق آموزشهای ویدیویی جذاب راهنمایی میکند و تمام مفاهیم و موضوعات ضروری برای درک فرمت اجرایی لینوکس: ELF را به شما میآموزد.
ELF فرمت استاندارد فایلهای اجرایی، کد شیء، کتابخانههای اشتراکی و core dump ها در سیستمهای عامل شبه یونیکس است. در این دوره، پیچیدگیهای ELF را کاوش میکنیم و ساختار، بخشها، هدرها و مکانیزمهای پیوند پویا را بررسی میکنیم.
در این دوره چه چیزهایی یاد خواهید گرفت
آشنایی با جزئیات درونی فایل ELF
درک مراحل مختلف فرآیند کامپایل (پیش پردازش، کامپایل، اسمبل، لینک)
درک کد ماشین یا کد عملیاتی (opcode)
نوشتن کد اسمبلی ARM و اجرای آن بر روی QEMU
درک سینتکس کد اسمبلی (Label، instruction، comment، assembler directives)
بخشهای مختلف: .text، .data، .bss
مشاهده رجیسترهای ARM در رابط مانیتور QEMU
دستورالعملهای اسمبلر (.byte، .asciiz، .ascii، .align، .global، .text، .data)
مشاهده جدول نمادها و درک حل نماد
درک نقش اسمبلر و لینکر
عملیات جابجایی انجام شده توسط لینکر (ادغام بخشها و جایگذاری بخشها)
اسکریپت لینکر چیست و نوشتن یک فایل اسکریپت لینکر ساده و استفاده از آن در حین کامپایل
آدرسهای زمان اجرا و آدرسهای زمان بارگذاری
ایجاد بخشها از اسکریپت لینکر
نوشتن کد راهاندازی برای کپی دادهها در RAM، bss و مقداردهی اولیه پشته
درک هدر ELF با دستور readelf
چه اتفاقی میافتد اگر بایت اول فایل ELF را تغییر دهیم؟
تولید core dump و تایید هدر ELF
درک اعضای مختلف هدر ELF
تغییر اعضای مختلف هدر ELF
درک اینکه چه کسی main() را فرا میخواند با استفاده از gdb و _start()
نوشتن هدر ELF از کد C
بخشها در مقابل سگمنتها
نمای لینکر و لودر از فایل ELF
دستورات مختلف readelf (readelf -h، readelf -WS، readelf -Wl، readelf -a..)
درک فیلدهای مختلف هدر بخش و هدر برنامه
دستور dumpelf برای تخلیه ساختارهای ELF در فرمت ساختار C
نوشتن کد C برای چاپ برخی فیلدهای هدر بخش ELF
چه اتفاقی میافتد وقتی یک برنامه فضای کاربری را با اطلاعات اشکالزدایی (-g) درون یک فایل ELF کامپایل میکنیم؟
استفاده از دستور 'size' برای دریافت اندازه بخشهای text، data و bss
درک عمیقتر جدول نمادها و اتفاقاتی که هنگام اجرای دستور 'strip' میافتد
نوشتن یک فایل اجرایی ELF بسیار حداقلی با اندازه کمتر از 200 کیلوبایت
هیچ ریسکی هم وجود ندارد!
این دوره با ضمانت بازگشت وجه 30 روزه ارائه میشود. اگر از دوره راضی نبودید، پول خود را پس خواهید گرفت.
پس منتظر چه هستید، همین الان ثبت نام کنید و قدم بعدی را برای تبدیل شدن به یک متخصص در فرمت فایل ELF بردارید.
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه
Introduction
فرمت اجرایی و قابل پیوند
Executable and Linkable Format
چرا جزئیات ELF را یاد بگیریم
Why Learn Details of ELF
فرآیند کامپایل
Compilation Process
تغییر یک کاراکتر در فایل ELF
Changing one character in ELF file
برنامهنویسی Bare Metal برای ARM
Bare Metal Arm Programming
راهاندازی آزمایشگاه ARM
Setting Up ARM Lab
کد ماشین
Machine Code
اجرای دستورالعملهای ماشین
Executing Machine Instructions
مجموعه دستورالعمل
Instruction Set
مقدمهای بر اسمبلی
Introduction to Assembly
برنامه اسمبلی برای نوشتن در رجیسترها
Assembly Program to write to registers
تولید فایلهای باینری
Generating Binary Files
رابط مانیتور QEMU
QEMU Monitor Interface
برنامههای اسمبلی برای جمع آرایه
Assembly Programs for sum of an array
برنامه اسمبلی برای طول یک رشته
Assembly Program for Length of a string
حل نماد
Symbol Resolution
ادغام بخشها
Section Merging
قرارگیری بخشها
Section Placement
اسکریپت لینکر
Linker Script
نمونه اسکریپت لینکر
Example of Linker Script
نمونه داده در RAM
Example of Data in RAM
مشخص کردن آدرسهای بارگذاری
Specifying Load Addresses
کد راهاندازی برای کپی کردن داده در RAM
Startup code for copying data into RAM
مدیریت استثناها
Handling Exceptions
پیادهسازی راهاندازی C
C startup implementation
بهروزرسانی کد راهاندازی برای استفاده از کد C
Updating startup code for using C Code
سربرگ ELF
ELF Header
ساختار فایل ELF
Structure of an ELF file
دستورالعملهای ماشین در فایل ELF
Machine Instructions in ELF File
سربرگ ELF
ELF Header
شناسایی ELF
ELF Identification
سایر اعضای سربرگ ELF
Other members in ELF Header
تولید فایلهای Coredump
Generating Coredump files
چه اتفاقی میافتد وقتی نسخه ELF را تغییر دهیم
What happens when we change ELF Version
چه اتفاقی میافتد وقتی نسخه معماری را تغییر دهیم
What happens when we change Architecture Version
چه اتفاقی میافتد وقتی فیلد e_entry را تغییر دهیم
What happens when we change e_entry field
نقطه توقف در _start
Breakpoint at _start
چه کسی _start را فراخوانی میکند
Who calls _start
برنامه C بدون main
C program Without main
نوشتن سربرگ ELF از فایل C
Writing ELF Header from C File
ARM ELF
ARM ELF
بخشهای ELF
ELF Section
مقدمهای بر بخشها و سگمنتها
Introduction to Sections and Segments
بخشهای ELF
ELF Sections
جدول سربرگ بخش
Section Header Table
دستور dumpelf
dumpelf command
بخشهای متداول در فایل ELF
Common Sections in an ELF File
اشکالزدایی بخشها
Debugging Sections
اندازههای بخش
Section Sizes
دستور strings
Strings command
بخشهای نماد
Symbol Sections
دستور strip
Strip Command
بخشهای strip شده
Strip Sections
نحوه اضافه کردن بخش در فایل ELF
How to add sections in an ELF File
سربرگهای برنامه ELF
ELF Program Headers
مقدمهای بر سربرگهای برنامه
Introduction to Program Headers
ساختار سربرگ برنامه
Structure of Program Header
اختلاف اندازه BSS در فایل و حافظه
BSS Size differences on file and memory
نحوه بارگذاری پردازش توسط کرنل
How Kernel loads a process
چه اتفاقی میافتد اگر یک بیت را در سربرگ برنامه تغییر دهم
What happens if I modify a bit in Program Header
فایل حداقل ELF
Minimal ELF File
مقدمهای بر حداقل ELF
Introduction to Minimal ELF
نمایش ASLR
ASLR Demonstration
سگمنتها و بخشها در باینری ایستا
Segments and Sections in static binary
کاهش اندازه با نوشتن اسمبلی
Reducing size by writing assembly
فایل حداقل ELF در C
MInimal ELF file in C
یادداشتها
Notes
نمایش نظرات