TGViewer
Channel Public Channel
OS Internals

OS Internals

@oxaa55

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

ویدئوهای کانال در یوتیوب:
https://youtube.com/@os_security

ویدئوهای کانال در آپارات:
https://aparat.com/oxaa55

ارتباط با مدیر کانال از طریق:
@akazemi67
Subscribers
3.64K
Photos
7
Videos
29
Links
95

Showing posts older than #78 · Back to latest

Older Posts 20 shown
Post #77
OS Internals pinned «سلام من سال‌ها پیش برای تست crawl یک اکانت توییتر ایجاد کرده بودم ولی از اون موقع تا الان بی استفاده خاک می‌خورد!😅 بنا به توصیه یکسری از دوستان تصمیم گرفتم اطلاع رسانی ویدئوهای دوره Windows Internals رو در توییتر هم انجام بدم. لطفا follow کنید و بازنشر کنید.…»
Post #76 1.79K
سلام
من سال‌ها پیش برای تست crawl یک اکانت توییتر ایجاد کرده بودم ولی از اون موقع تا الان بی استفاده خاک می‌خورد!😅 بنا به توصیه یکسری از دوستان تصمیم گرفتم اطلاع رسانی ویدئوهای دوره Windows Internals رو در توییتر هم انجام بدم.
لطفا follow کنید و بازنشر کنید.
ممنون🙏

https://twitter.com/akazemi67
  • ❤ 7
  • 👍 1
Post #75 1.77K
در سری جدید ویدئوهای Windows Internals این هفته به سراغ اسمبلی ۳۲بیتی رفته و مروری بر روی آن انجام می‌دهیم. این سری شامل دو ویدئو به صورت زیر است:

1. مروری بر اسمبلی ۳۲ بیتی
در این ویدئو پس از مروری بر روی ساختار کامپیوتر به بررسی رجیسترهای ۳۲ بیتی پرداخته و با چندتا از پر کاربردترین آن‌ها آشنا می‌شویم. سپس به بررسی EFLAGS پرداخته و در پایان نیز مروری بر پرکاربردترین دستورات اسمبلی انجام داده و به توضیح شیوه‌ی ذخیره‌ی اطلاعات در حافظه بر اساس Endianness می‌پردازیم.
https://aparat.com/v/Fwqt7
https://youtu.be/xo2wCM_pn2U

2. نوشتن برنامه و Trace آن در VS
در این ویدئو به سراغ Visual Studio رفته و چند قطعه کد اسمبلی می‌نویسیم و در حالت Debug بررسی می‌کنیم که رجیسترها چطور تغییر کرده و داده‌ها چطور در حافظه و بر روی پشته قرار داده می‌شوند. در این بین تفاوت lea, mov، تاثیر دستورات بر روی EFLAGS، شیوه‌ی ذخیره‌ی اعداد منفی به صورت مکمل ۲، شیوه‌ی ذخیره‌ی اطلاعات در حافظه و بر اساس Little Endian و تغییر پشته نمایش داده می‌شوند.
https://aparat.com/v/iKQRC
https://youtu.be/DaVB8K7JLo0

لطفا منتشر کنید که دوستان علاقه‌مند استفاده کنند. اینم لینک کانال تلگرام، عضو بشید که کلیه‌ی مواردی که قبلا منتشر شده و مقاله‌هایی که در آینده قصد انتشار دارم رو داشته باشید:
https://t.me/OxAA55

#windows #internals #debug #visualstudio #x86 #assembly
آپارات - سرویس اشتراک ویدیو 02.02) x86 Assembly Review در این ویدئو پس از مروری بر روی ساختار کامپیوتر به بررسی رجیسترهای ۳۲ بیتی پرداخته و با چندتا از پر کاربردترین آن‌ها آشنا می‌شویم. سپس به بررسی EFLAGS پرداخته و در پایان نیز مروری بر پرکاربردترین دستورات اسمبلی انجام داده و به توضیح شیوه‌ی ذخیره‌ی اطلاعات…
  • 👍 12
Post #74 1.78K
شروع فصل دوم دوره Windows Internals در مورد Debugging
از امروز به صورت هفتگی هر ۴شنبه [[بسته به مشغله کاری ممکنه البته بشه یک چهارشنبه در میان]] در مورد Debugging ویدئوی جدید خواهیم داشت. ویدئوها همزمان بر روی آپارات و یوتیوب منتشر می‌شوند که در ادامه لینک‌ها رو می‌تونید ببینید.

لطفا منتشر کنید که دوستان علاقه‌مند استفاده کنند. اینم لینک کانال تلگرام، عضو بشید که کلیه‌ی مواردی که قبلا منتشر شده و مقاله‌هایی که در آینده قصد انتشار دارم رو داشته باشید:
https://t.me/OxAA55

اما این هفته ۲ ویدئو داریم که معرفی مطالب فصل و روند Compile رو در بر دارند.
1. این اولین ویدئوی فصل دوم دوره‌ی Windows Internals است که در آن به موضوع دیباگ می‌پردازیم. در این ویدئو دلیل افزودن این فصل به دوره و مباحثی که در این فصل پوشش می‌دهیم معرفی می‌شوند.
https://aparat.com/v/0Xm2d
https://youtu.be/pSekiGgplRc

2. در این ویدئو ابتدا با مراحلی که یک فایل source طی کرده تا به فایل باینری تبدیل شود آشنا شده و سپس به ساختار برنامه‌ها بر روی دیسک، و در حالت اجرایی در حافظه می‌پردازیم. تبدیل شدن فایل cpp به فایل پیش‌پردازش و تغییر macroها، تبدیل شدن به اسمبلی و در نهایت linkشدن object fileها و تولید فایل PE نمایش داده شده و مرور کوتاهی بر روی ساختار PE به کمک PEBear انجام می‌دهیم. در نهایت نیز ساختارهای heap, stack و قرار گیری اطلاعات در آن‌ها به کمک Visual Studio نمایش داده می‌شود.
https://aparat.com/v/ST2Ia
https://youtu.be/pXRZaK6ZjqM

#windows #internals #debug #compile #stack #heap #pe #pebear #visualstudio #programming #cpp
Telegram OS Internals مقاله و فیلم آموزش مدیریت و برنامه‌نویسی سیستم‌های عامل، شبکه و امنیت اطلاعات. ویدئوهای کانال در یوتیوب: https://youtube.com/@os_security ویدئوهای کانال در آپارات: https://aparat.com/oxaa55 ارتباط با مدیر کانال از طریق: @akazemi67
  • 👍 16
Post #73 1.59K
سلام
از این به بعد ویدئوهای Windows Internals رو علاوه بر آپارات بر روی youtube هم منتشر می‌کنم. لیست پخش ایجاد شده برای دوره رو می‌تونید از آدرس زیر ببینید:
https://youtube.com/playlist?list=PLT6Nm6pz_em6Tyz6J1YK2T7lTCjn2ow7T

در ضمن طبق قرار قبلی ان شا الله از هفته‌ی آینده ۴شنبه‌ها شروع به انتشار ویدئو در زمینه‌ی Debugging می‌کنم.
#youtube #debug
YouTube WindowsInternals_Persian Persian version of Windows Internals through programming course. دوره‌ی آموزشی جزئیات ویندوز به زبان فارسی
  • ❤ 11
  • 👍 4
Post #72
OS Internals pinned «سلام به همگی در اولین برنامه‌ریزی‌ام برای شروع دوره‌ی Windows Internals با رویکرد برنامه نویسی، من قصد داشتم فصل مربوط به Threads که اولین فصل دوره هم بود (علت اینکه مطابق کتاب شروع نکردم رو در ویدئوی معرفی فصل گفته‌ام)، به صورت زیر پیش ببرم: 1. شروع با معرفی…»
Post #71 2.05K
سلام به همگی
در اولین برنامه‌ریزی‌ام برای شروع دوره‌ی Windows Internals با رویکرد برنامه نویسی، من قصد داشتم فصل مربوط به Threads که اولین فصل دوره هم بود (علت اینکه مطابق کتاب شروع نکردم رو در ویدئوی معرفی فصل گفته‌ام)، به صورت زیر پیش ببرم:
1. شروع با معرفی Thread و ایجادش با WinAPI
2. معرفی ThreadPoolها در ویندوز و کار با Callbackهای اون
3. معرفی Kernel Programming در ویندوز و نوشتن درایور ساده
4. ایجاد کردن Thread در کرنل بوسیه‌ی درایور
5. معرفی RemoteThread و استفاده از اون برای Code Injection
6. بررسی اولویت Threadها و طرز کار Scheduler
7. معرفی TEB, ETHREAD و دیدن آن با WinDbg

از موارد بالا ۶تای اول انجام شده که در لینک زیر می‌تونید Playlist دوره و ویدئوهای منتشر شده رو ببینید:
https://www.aparat.com/v/ljwyb?playlist=1599634

پس از انتشار ویدئوهای بخش ۶ مربوط به Scheduler یک بازخورد خوب از آقای سینا کروندی توسعه دهنده‌ی اصلی HyperDbg دریافت کردم که باعث شد به فکر انحراف از مسیر اصلی دوره و قرار دادن یک فصل Debugging علی‌رغم نبودن همچین فصلی در کتاب Windows Internals بشم و در نتیجه توضیح دادن ساختار پروسه‌ها و نخ‌ها و دستکاری کردنشون هم توی اون فصل توضیح داده بشه.
این مدت داشتم برنامه ریزی فصل Debugging و اینه چی بگم و چطوری بگم رو انجام می‌دادم و یکسری نمونه کد آماده می‌کردم.

ان شا الله از اول شهریور به صورت هفتگی شروع به انتشار ویدئو در مورد Debugging در سطح User+Kernel می‌کنم. فقط شما هم لطف کنید و با انتشار دادن این پست، تعداد اعضای کانال تلگرام رو به هزار نفر برسونید که اگر این اتفاق رخ بده در کنار مسیر اصلی Windows Internal در مورد یکسری موارد امنیتی و کاربردهای Red Teaming هم صحبت خواهیم کرد.

اما بخشی از مطالب فصل جدید رو ببینیم:
1. معرفی WinDbg و دستورات پایه
2. بررسی Calling Convention در ۳۲ و ۶۴ بیتی
3. کار با لیست‌های پیوندی و شرح LIST_ENTRY
4. بررسی TEB, PEB, ETHREAD, EPROCESS
5. انجام دادن Live Kernel Debugging و دستکاری ActiveProcesses و دیدن نتیجه!
6. بررسی HyperDbg

اینم لینک کانال تلگرام:
https://t.me/OxAA55
آپارات - سرویس اشتراک ویدیو 00.00) Windows Internals Course Introduction در این ویدئو به معرفی دوره‌ی Windows Internals پرداخته، هدف از دوره، مخاطبان آن و مواردی که در دوره پوشش داده می‌شود را مرور می‌کنیم. در انتها نیز ابزارهایی که برای شروع کار لازم هستند معرفی شده و راه‌های ارتباطی با مدرس ذکر می‌شوند. برای دانلود اسلایدها…
  • ❤ 10
  • 👍 1
Post #70 1.77K
ویندوز چطور تصمیم می‌گیره چه نخی بر روی چه هسته‌ای از پردازنده اجرا بشه؟ چه پارامترهایی تاثیر دارند؟ اولویت نخ‌ها چطور تعیین میشه؟ آیا اولویت ثابته یا تغییر می‌کنه؟ سوالاتی از این دست در مورد Scheduler ویندوز موضوع ویدئوهای این بخش از دوره‌ی Windows Internals هستند.

در ویدئوی اول این بخش، ابتدا مروری بر مفهوم Scheduling یا زمانبندی نخ‌ها در ویندوز انجام داده و سپس موارد مهمی که در آن تاثیر دارند شرح داده می‌شوند. کار را با اولویت‌ نخ‌ها در ویندوز شروع کرده و به معرفی مدل اولویت‌گذاری نخ‌ها و اینکه اولویت چگونه مشخص شده و در چه بازه‌ای است می‌پردازیم. سپس به بررسی وضعیت نخ‌ها در ویندوز و اینکه وضعیت نخ تحت چه شرایطی تغییر می‌کند می‌پردازیم. در ادامه سراغ شرایطی می‌رویم که در آن‌ها اولویت نخ‌ها به صورت خودکار توسط سیستم‌عامل تغییر می‌کند تا نخ‌ها دچار گرسنگی نشده و بتوانند وظیفه‌ی خود را به انجام برسانند. در پایان نیز دو مفهوم Affinity, CPU Sets شرح داده می‌شوند که باعث اعمال محدودیت بر روی هسته‌های CPUای می‌شوند که نخ می‌تواند بر روی ‌آن‌ها اجرا شود. برای دیدن این ویدئو به لینک زیر مراجعه کنید:
https://www.aparat.com/v/TsVwe

در ویدئوی بعدی که دموی مفاهیم ذکر شده در ویدئوی اول است، به کمک ابزارهای مختلف، مفاهیم مرتبط با زمان‌بندی نخ‌های ویندوز نمایش داده شده و تاثیر تغییر اولویت و اعمال محدودیت بر روی اجرای نخ‌ها بررسی می‌شوند. ابتدا با تغییر Priority Class و Thread Priority مقدار تنظیم شده برای اولویت به کمک Process Explorer نمایش داده شده و سپس از ابزار CPU-Stress کمک گرفته می‌شود که بتوانیم تمامی پارامترهای شرح داده شده را تغییر دهیم. در این حین، به کمک API-Monitor توابعی که پشت صحنه اجرا می‌شوند را مشاهده کرده و تاثیر کار انجام گرفته را در Process Explorer می‌بینیم. در ادامه به سراغ ابزار Performance Monitor رفته و شیوه‌ی تغییر اولویت نخ‌ها در شرایط مختلف و همچنین تغییر وضعیت آن‌ها را به کمک نمودار مشاهده می‌کنیم. در انتها برای بررسی دقیق تاثیر اعمال کردن CPU Sets و اطمینان از درست اجرا شدن آن، فعالیت پروسه‌ها را با Windows Performance Recorder ثبت کرده و در Performance Analyzer مشاهده می‌کنیم. برای مشاهده‌ی این ویدئو به لینک زیر مراجعه کنید:
https://www.aparat.com/v/iQ8kp

لطفا با لایک، کامنت و اشتراک‌گذاری در رسیدن این ویدئوها به دست افراد علاقه‌مند سهیم باشید. اگر هم انتقاد یا پیشنهادی داشتید حتما کامنت گذاشته یا به صورت مستقیم پیام بدید.

#windows #internals #threads #scheduling
آپارات - سرویس اشتراک ویدیو 01.10) Thread Scheduling Concepts در این ویدئو ابتدا مروری بر مفهوم Scheduling یا زمانبندی نخ‌ها در ویندوز انجام داده و سپس مفاهیم مهمی که در آن تاثیر دارند شرح داده می‌شوند. کار را با اولویت‌ نخ‌ها در ویندوز شروع کرده و به معرفی مدل اولویت‌گذاری نخ‌ها و اینکه اولویت چگونه مشخص شده و از چند…
  • 👍 13
  • ❤ 1
Post #69
Channel name was changed to «OS Internals»
Post #68 1.87K
ایجاد thread در یک پروسه‌ی دیگر. چرا؟ و چگونه؟

توی ویندوز یک API وجود داره به اسم CreateRemoteThread که این امکان رو بهمون میده که بجای اینکه در پروسه‌ی خودمون نخ ایجاد کنیم، بیاییم و یک پروسه‌ی دیگه رو انتخاب کنیم و در دل اون یک نخ ایجاد کرده و کدی رو اجرا کنیم. در این بخش از دوره‌ی Windows Internals دو ویدئو آماده کرده‌ام که ابتدا به معرفی این API و کاربردهاش پرداخته و سپس در ویدئوی دوم سراغ برنامه نویسی و بررسی روند کار با ابزارهای SysInternals میریم.

در ویدئوی اول ابتدا استفاده از این روش برای دیباگ برنامه‌ها، کسب اطلاعات از رویدادهای داخلی یک پروسه و انجام Code Injection معرفی شده و سپس به بررسی مراحلی که برای انجام DLL Injection لازم هستند می‌پردازیم. برای مشاهده‌ی این ویدئو از لینک زیر استفاده کنید:
https://www.aparat.com/v/jK7N9

در ویدئوی دوم و بخش عملی، ابتدا از طریق Code Injection و به کمک وقفه‌ی شماره ۳ در یک پروسه Break Point ایجاد کرده و سپس یک فایل DLL ساده نوشته و با قرار دادن تابع LoadLibraryA در بدنه‌ی Remote Thread باعث بارگذاری آن در پروسه‌های ویندوزی و اجرای کد، درون آن‌ها می‌شویم. در انتها نیز به کمک Process Monitor اجرای API و تزریق کد در پروسه را بررسی می‌کنیم. برای مشاهده‌ی این ویدئو از لینک زیر استفاده کنید:
https://www.aparat.com/v/nsvCc

#windows #internals #threads #dll #injection
آپارات - سرویس اشتراک ویدیو 01.08) Remote Threads and DLL Injection Introduction در این ویدئو به معرفی نحوه‌ی ایجاد نخ در یک پروسه‌ی دلخواه پرداخته و کاربردهای آن که در دیباگ برنامه، دریافت اطلاعات داخلی پروسه‌ها و استفاده برای inject کد در پروسه‌ی دیگر و hook است را مرور می‌کنیم. در ادامه به بررسی فایل‌های DLL پرداخته و مراحلی که باید…
  • 👍 1
Post #67 1.42K
Post #66 1.34K
همراهان عزیز سلام
از آخرین پست من مدت زمان زیادی می‌گذره و متاسفانه مدت مدیدی به دلیل مشغله‌های مختلف نتونستم پستی منتشر کنم. چندماهی هست که داشتم روی آماده‌سازی و انتشار ویدئو در زمینه‌ی Windows Internals با رویکرد برنامه نویسی کار می‌کردم و خوشبختانه بخش اول ویدئوها که در مورد نخ‌ها توی WinAPI و کرنل ویندوز هست امروز منتشر شد. ویدئوهای منتشر شده سه مبحث رو پوشش میده:
۱. نوشتن برنامه چندنخی به کمک WinAPI
۲. استفاده از Thread Poolهایی که پروسه‌های ویندوزی دارند
۳. رفتن به دل کرنل ویندوز و ایجاد نخ در دل کرنل

اگر LinkedIn دارید لطفا اونجا من رو دنبال کنید و اگر هم ندارید می‌تونید به لیست پخش دوره از لینک زیر دسترسی پیدا کنید:
#windows #internals #system #kernel #programming #threads

https://www.aparat.com/playlist/1599634
آپارات - سرویس اشتراک ویدیو Windows Internals Course - لیست پخش 00.00) Windows Internals Course Introduction,01.00) Threads Chapter Introduction,01.01) WinAPI Threads Introduction,01.02) WinAPI Thread Programming,01.03) WinAPI Thread Pools Introduction,01.04) WinAPI Thread Pool Callbacks Programming
Post #65 2.65K
سلام
چند سال پیش که برای اولین بار با مباحث حملات Stack Overflow آشنا شدم خیلی تلاش کردم و زیاد به در و دیوار خوردم تا بالاخره تونستم با بخش‌های مختلفش به صورت درست و حسابی آشنا شده و یک تسلط نسبی پیدا کنم و راحت از طریق آسیب‌پذیری‌های مختلف کد اجرا کنم. خب طبیعی هم هست، همیشه یادگیری اولیه‌ی یک مطلب و بالا رفتن از یک شیب زمان‌بر هست ولی منابع خوب می‌تونند این مسیر رو هموار کنند. بیش از دو سال پیش بود که تصمیم گرفتم یک مجموعه مقاله در این زمینه بنویسم و نکاتی که یاد گرفته‌ام رو شرح بدم تا بقیه راحت‌تر از من این مسیر رو طی کنند. فقط یک مقاله نوشتم و چندجا هم به صورت pdf منتشر کردم، ولی بازخوردی دریافت نکردم که خوب بوده یا نه! مدتی هست که تصمیم داشتم همون مقاله رو بازبینی کنم، کاملترش کنم و اینبار در ویرگول منتشر کنم به این امید که به دست افراد بیشتری برسه و خودم هم مقالات بیشتری بنویسم ولی هیچ وقت فرصت یا شایدم همتش نبود! این ایام فرصتی شد که اون مقاله رو بازبینی کرده، کامل‌ترش کنم و در نهایت منتشرش کنم. اینم لینک اولین مقاله من در ویرگول. امیدوارم مفید باشه.

https://virgool.io/@akazemi/%D9%85%D9%82%D8%AF%D9%85%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%AD%D9%85%D9%84%D8%A7%D8%AA-stackbuffer-overflow-duqt4wrcarug
ویرگول مقدمه‌ای بر حملات Stack Overflow - قسمت اول - معرفی در لینوکس ۳۲بیتی این مقاله آشنایی با Exploit Development در لینوکس بوده که در آن حملات Stack Overflow و نحوه‌ی استفاده از آن‌ها برای اجرای کد بررسی می‌شود
Post #64 2.32K
این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن ابتدا کاربرد‌های #KernelModule در #Linux، نحوه‌ی اجرا شدن ماژول‌های کرنل و تفاوت آن‌ها با برنامه‌های عادی، تفاوت Privilege سطح کرنل و سطح کاربر و همچنین کاربرد #ftrace در بررسی رویدادهای کرنل و #hook توابع آن، بیان می‌شود. پس از این توضیحات برای آشنایی با Ringهای پردازنده و کنترل Privilege دستورات در سطح کاربر و سطح هسته، یک برنامه‌ی سطح User برای اطلاع و تغییر در فعال بودن/نبودن وقفه در لینوکس نوشته و سعی می‌شود این کد اجرا شود که با دریافت #GPF یا General Protection Fault‌ در زمان رسیدن به دستور اسمبلی cli مواجه می‌شود. همین کد برای تمرین نوشتن #LKM و آشنایی با نحوه‌ی نصب کردن یک ماژول جدید در لینوکس به صورت یکLKM ساده نوشته شده و اجرای آن تست می‌شود. سپس به بررسی نحوه‌ی trace کردن برنامه‌ها در لینوکس پرداخته و ابتدا به کمک دستورات ltrace/strace برنامه‌ای را تا سر فراخوانی System Call رهگیری می‌کنیم. در ادامه برای رفتن به دل کرنل لینوکس و بررسی توابع اجرا شده توسط System Callها ابتدا کاربرد ftrace و استفاده از #tracefs نمایش داده شده و سپس به تشریح امکان hook کردن توابع کرنل به کمک آن می‌پردازیم. در پایان نیز به کمک ftrace چند System Call را hook کرده و برای تمرین استفاده از این امکان، دو مثال جلوگیری از اجرای پروسه‌ها درون کرنل لینوکس با hook کردن #execve و تغییر در نحوه‌ی خواندن/نوشتن فایل‌ها و پیاده‌سازی encryption در سطح کرنل با hook کردن توابع مربوط به File System را بررسی می‌کنیم.

https://aparat.com/v/otF1i
==============
https://t.me/OxAA55
آپارات - سرویس اشتراک ویدیو آشنایی با Kernel Module و نحوه‌ی Hook کردن System Call در لینوکس این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن کاربرد‌های KernelModule، نحوه‌ی اجرا شدن ماژول‌های کرنل و تفاوت آن‌ها با برنامه‌های عادی و همچنین کاربرد ftrace در بررسی رویدادهای کرنل و hook توابع آن، بیان می‌شود. سپس به…
Post #63 1.99K
این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن اشاره‌گرهای C یا همان #Pointers مرور شده و شیوه‌ی Preprocess برنامه‌های C، تبدیل به کد اسمبلی، Linkشدن برنامه‌ها و در نهایت تولید فایل #ELF شرح داده می‌شود. پس از آن در مورد ساختار فایل‌های ELF‌ و کسب اطلاعات در مورد آن‌ها به کمک دستورات لینوکس توضیحاتی ارائه شده و در پایان نیز #debug کردن برنامه‌های C در #gdb‌ نمایش داده می‌شود.

https://www.aparat.com/v/2qDQF
==============
https://t.me/OxAA55
آپارات - سرویس اشتراک ویدیو مرور اشاره‌گرها، ساختار ELF و دیباگ در gdb این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن اشاره‌گرهای C مرور شده و شیوه‌ی Preprocess برنامه‌های C، تبدیل به کد اسمبلی، Linkشدن برنامه‌ها و در نهایت تولید فایل ELF شرح داده می‌شود. پس از آن در مورد ساختار فایل‌ّهای…
Post #62 1.91K
این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن برنامه نویسی #Assembly مرور شده و شیوه‌ی اجرای توابع در سیستم‌های ۳۲بیتی به صورت کامل شرح داده می‌شود. در این جلسه شیوه‌ی ذخیره‌ی مقادیر مختلف بر روی پشته مثل پارامترهای توابع، متغیرهای محلی، آدرس بازگشت از تابع و مقدار رجیستر EBP، که شروع frame تابع را مشخص می‌کند، به صورت دقیق شرح داده شده و پس از آن نحوه‌ی اجرای #StackOverflow نمایش داده می‌شود. در نهایت با فضای آدرس‌دهی پروسه‌ها نیز آشنا شده و کاربرد #ASLR, #PIE در فراهم کردن امنیت برنامه‌ها بررسی می‌شوند. در پایان با #debug کردن چند برنامه در #gdb مشکل چک نشدن boundary در آرایه‌های C/C++ و امکان redirect‌ کردن مسیر اجرای برنامه و همچنین مشکل #gets و امکان overflow شدن و تغییر آدرس بازگشت از تابع نمایش داده می‌شوند.

https://www.aparat.com/v/oFvr4
==============
https://t.me/OxAA55
آپارات - سرویس اشتراک ویدیو مرور اسمبلی و شیوه‌ی اجرای توابع در x86 این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن برنامه نویسی اسمبلی مرور شده و شیوه‌ی اجرای توابع در سیستم‌های ۳۲بیتی به صورت کامل شرح داده می‌شود. شیوه‌ی ذخیره‌ی پارامترهای توابع، متغیرهای محلی، آدرس بازگشت از تابع و مقدار…
Post #61 1.81K
MbrPartitions.pdf941.3 KB
در این مقاله که قبلا نیز در کانال منتشر شده بود، ساختار #MBR ، شیوه‌ی ذخیره‌ی اطلاعات #Partitions مثل نوع، Active بودن یا نبودن، اندازه‌ و offset شروع هر پارتیشن، شرح داده شده و به کمک دستورات dd, xxd اطلاعات #Sector اول هارد که همان ۵۱۲ بایت مربوط به MBR‌ است استخراج و بررسی می‌شود. همچنین دلیل اینکه تعداد پارتیشن‌ها در این مدل (که به مدل #MSDOS معروف بوده و در مقابل آن مدل #GPT قرار دارد) حداکثر ۴ عدد و اندازه‌ی آن حداکثر 2TB است بیان شده و شیوه‌ی بسط دادن پارتیشن‌ها برای پشتیبانی از بیش از ۴ پارتیشن در مدل Extended ذکر می‌شود.
  • ❤ 1
Post #60 1.68K
این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن اتفاقاتی که از زمان روشن شدن کامپیوتر تا بارگذاری #Kernel لینوکس و آماده‌ی اجرا شدن سیستم‌عامل #Linux رخ می‌دهد شرح داده می‌شود. ابتدا به معرفی کارکرد BIOS پرداخته و ساختار حافظه و تفاوت Real Mode‌ و Protected Mode ذکر شده، سپس به بیان بخش‌های مختلف #MBR و شیوه‌ی نگهداری اطلاعات #Partitions و Bootloader سطح اول می‌پردازیم. در مرحله‌ی بعدی کاربرد #Grub و شیوه‌ی مشخص کردن کرنل لینوکس در آن بیان شده و پس از آن پروسه‌ی #init و طریقه‌ی اجرا شدن آن برای شروع بکار سیستم‌عامل در سطح هسته و User شرح داده می‌شود. در آخر #RunLevel های لینوکس و کاربرد هرکدام بیان شده و اشاره‌ای به #systemd نیز می‌شود. برای حسن ختام کار نیز یک نمونه از کد #Assembly برای نوشتن یک #Bootloader ساده و اجرای آن در qemu نمایش داده می‌شود.

https://www.aparat.com/v/I7JYW
==============
https://t.me/OxAA55
آپارات - سرویس اشتراک ویدیو جزئیات روال بوت شدن لینوکس این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن اتفاقاتی که از زمان روشن شدن کامپیوتر تا بارگذاری کرنل لینوکس رخ می‌دهد شرح داده می‌شود. ابتدا به معرفی کارکرد BIOS پرداخته، سپس کاربرد MBR و ساختار پارتیشن‌ها و Bootloader…
Post #59 1.84K
SystemCalls.pdf766.6 KB
در این مقاله که قبلا نیز در کانال منتشر شده بود، ابتدا جداسازی کد هسته و کاربر به کمک #Ring های پردازنده و جلوگیری از اجرای دستورات #Privileged معرفی شده و سپس به بررسی #SystemCall و کاربرد آن در سیستم‌عامل می‌پردازیم. در پایان نیز دستورات #nttrace ویندوز و #strace لینوکس برای مشاهده‌ی فراخوانی سیستمی انجام شده توسط برنامه‌ها معرفی می‌شوند.
Post #58 1.73K
لینوکس یک سیستم‌عامل متن باز است و این موضوع به این معنی است که شما می‌توانید کد آنرا دریافت کرده، تغییر داده و تست کنید. اینکار به شما کمک می‌کند که از جزئیات طرز کار سیستم‌عامل اطلاع پیدا کرده و ساختارهای داخلی سیستم‌عامل را بررسی کرده و به دنیای جذاب #SystemProgramming وارد شوید. یکی از مراحلی که در نوشتن هر برنامه‌ای لازم بوده و هر برنامه نویسی درگیر آن می‌شود، #debug کردن است. یکی از ابزارهای قدرتمند برای دیباگ برنامه‌ها #gdb‌ است که قبلا معرفی شده و مقدمات کار با آن برای trace کردن برنامه‌های C معرفی شده است. برای trace کد کرنل لینوکس #kgdb مورد استفاده قرار می‌گیرد که با بکارگیری gdb به عنوان debugger امکان بررسی کد #kernel را فراهم می‌کند. در این ویدئو ما با معرفی #LinuxKernel شروع کرده و ابتدا ساده‌ترین راه برای کامپایل کردن آنرا آموزش می‌دهیم. سپس کدی ساده به یک #SystemCall اضافه کرده و اجرا شدن آنرا بررسی می‌کنیم. در نهایت شیوه‌ی فعال کردن kgdb برای کرنل جدید و استفاده از آن برای بررسی کد کرنل به کمک gdb نمایش داده می‌شود.

https://aparat.com/v/uL1Pi
==============
http://telegram.me/OxAA55/57
آپارات - سرویس اشتراک ویدیو معرفی kgdb برای debug کرنل لینوکس برای trace کد کرنل لینوکس #kgdb مورد استفاده قرار می‌گیرد که با بکارگیری gdb به عنوان debugger امکان بررسی کد #kernel را فراهم می‌کند. در این ویدئو ما با معرفی کرنل #linux شروع کرده و ابتدا ساده‌ترین راه برای کامپایل کردن آنرا آموزش می‌دهیم. سپس کدی ساده…
  • 👍 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →