Forwarded from کانال بایت امن
Media is too big
VIEW IN TELEGRAM
#Course #DWORD
🖥 ویدیو معرفی دوره برنامه نویسی تهاجمی مختص به تیم های قرمز
📊 بررسی کامل دوره، سرفصل ها و موضوعاتی که در هر فصل بیان خواهند شد.
⏰ آخرین بروزرسانی سرفصل ها : 18 September 2024
🖥 شهریه دوره ۱۵,۰۰۰,۰۰۰ تومان است که با ۲۰٪ تخفیف به ۱۰ نفر اول ارائه میشود.
📑 همچنین، امکان پرداخت به صورت اقساط نیز فراهم است.
🖥 نحوه شرکت در دوره :
به دلیل ظرفیت محدود کلاس، اولویت ثبتنام با دانشجویانی است که آزمون تعیین سطح را گذرانده باشند. چنانچه پیشنیازهای لازم برای شرکت در دوره را ندارید، همچنان میتوانید در دوره شرکت کنید، اما ابتدا باید این پیشنیازها را بگذرانید. جهت دریافت اطلاعات بیشتر به آیدی @YMahmoudnia پیغام بدین.
🦅 کانال بایت امن | گروه بایت امن
_
به دلیل ظرفیت محدود کلاس، اولویت ثبتنام با دانشجویانی است که آزمون تعیین سطح را گذرانده باشند. چنانچه پیشنیازهای لازم برای شرکت در دوره را ندارید، همچنان میتوانید در دوره شرکت کنید، اما ابتدا باید این پیشنیازها را بگذرانید. جهت دریافت اطلاعات بیشتر به آیدی @YMahmoudnia پیغام بدین.
_
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👎11👍3👏2
📚 تخفیف ۷۰درصدی دورهی Windows Internals and Memory Analysis برای ۲۰ نفر
🎯 چند نفری بهم پیام داده بودند و سراغ تخفیف دورهی Internal رو گرفته بودند. با صحبتی که با تیم خوب مکتبخونه داشتم قرار شد که یک تخفیف ۷۰درصدی برای ۲۰ نفر داشته باشیم.
✅ میتونید دوره رو از طریق لینک زیر مشاهده و ثبتنام کنید:
yun.ir/rx6jy2
📴 برای دریافت ۷۰ درصد تخفیف، در زمان خرید کد z03y2Lzs را وارد کنید.
#WindowsInternals #Course #Training #Maktabkhooneh
🎯 چند نفری بهم پیام داده بودند و سراغ تخفیف دورهی Internal رو گرفته بودند. با صحبتی که با تیم خوب مکتبخونه داشتم قرار شد که یک تخفیف ۷۰درصدی برای ۲۰ نفر داشته باشیم.
✅ میتونید دوره رو از طریق لینک زیر مشاهده و ثبتنام کنید:
yun.ir/rx6jy2
📴 برای دریافت ۷۰ درصد تخفیف، در زمان خرید کد z03y2Lzs را وارد کنید.
#WindowsInternals #Course #Training #Maktabkhooneh
مکتبخونه
آموزش اینترنال و تحلیل حافظه ویندوز
این دوره با هدف کنار هم قرار دادن مباحث عمیق سیستمعامل و ترکیب آن با برنامهنویسی و تحلیل حافظه منبع خوبی برای محققان امنیت در حوزههای مختلف است.
❤14🤔1
مروری بر روشهای IPC در لینوکس و تست SharedMemory
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر کرده بودم و جزئیات آنرا نمایش داده بودم.
یکی دیگر از روشهای تبادل اطلاعات بین دو پروسه، استفاده از حافظهی مشترک است که در آن فضایی در RAM در نظر گرفته شده و در فضای آدرس مجازی دو پروسه نگاشت میشود که پروسهها در آن اطلاعات مشترک خود را قرار دهند.
برای استفاده از حافظهی مشترک در لینوکس، با استفاده از shm_open درخواست ایجاد فضای مشترک را داده و پس از دریافت یک File Denoscriptor به کمک mmap حافظهی مورد نیاز را از کرنل لینوکس دریافت میکنیم.
نکتهای که باید به آن توجه کنیم این است که نوشتن چند پروسه به صورت همزمان درفضای مشترک، میتواند ناسازگاری داده ایجاد کند که با استفاده از Semaphore یا روشهای دیگر Synchronization بر اساس نیاز، باید بین پروسهها هماهنگی ایجاد نمود.
در این ویدئو، پس از مرور کوتاهی بر روشهای مختلف IPC به بررسی عمیقتر روش Shared Memory پرداخته و یک کد ساده برای تست آن میزنیم.
لینک ویدئو در یوتیوب:
https://youtu.be/exhJs3RDnN8
لینک ویدئو در آپارات:
https://aparat.com/v/gskav3t
#ShortLinuxInternals #linux #internals #programming #processes #ipc #sharedmemory
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر کرده بودم و جزئیات آنرا نمایش داده بودم.
یکی دیگر از روشهای تبادل اطلاعات بین دو پروسه، استفاده از حافظهی مشترک است که در آن فضایی در RAM در نظر گرفته شده و در فضای آدرس مجازی دو پروسه نگاشت میشود که پروسهها در آن اطلاعات مشترک خود را قرار دهند.
برای استفاده از حافظهی مشترک در لینوکس، با استفاده از shm_open درخواست ایجاد فضای مشترک را داده و پس از دریافت یک File Denoscriptor به کمک mmap حافظهی مورد نیاز را از کرنل لینوکس دریافت میکنیم.
نکتهای که باید به آن توجه کنیم این است که نوشتن چند پروسه به صورت همزمان درفضای مشترک، میتواند ناسازگاری داده ایجاد کند که با استفاده از Semaphore یا روشهای دیگر Synchronization بر اساس نیاز، باید بین پروسهها هماهنگی ایجاد نمود.
در این ویدئو، پس از مرور کوتاهی بر روشهای مختلف IPC به بررسی عمیقتر روش Shared Memory پرداخته و یک کد ساده برای تست آن میزنیم.
لینک ویدئو در یوتیوب:
https://youtu.be/exhJs3RDnN8
لینک ویدئو در آپارات:
https://aparat.com/v/gskav3t
#ShortLinuxInternals #linux #internals #programming #processes #ipc #sharedmemory
YouTube
IPC and Shared Memory in Linux [PER]
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر…
❤12👍3
شیوهی زمانبندی اجرای پروسه و نخ در لینوکس
قبل از توضیح این بخش لازمه مجدد اشاره کنم که thread/process در کرنل لینوکس با task_struct پیادهسازی شدهاند و در این پست بجای تکرار «اجرای پروسه و نخ» در لینوکس از عبارت اجرای وظیفه یا task استفاده میکنیم. با این مقدمه برسیم به اصل موضوع این پست:
یکی از وظایفی که سیستمهای عامل بر عهده دارند کنترل اجرای پروسهها/نخها بر روی پردازنده است. اینکار توسط Scheduler سیستمعامل انجام شده و ترتیب و زمان شروع اجرا و مدت زمانی که آنها حق استفاده از پردارنده را دارند مشخص میکند.
لینوکس برای مشخص کردن اولویت اجرای taskها بر روی پردازنده و مدت زمانی که میتوانند از پردازنده استفاده کنند الگوریتمهای مختلفی دارد که به آنها class یا policy زمانبندی میگوید. در هر کلاس نیز به کمک یک عدد، اولویت اجرای taskها را مشخص میکند. به عنوان مثال زمانبند پیشفرض لینوکس که در کلاس Normal قرار دارد با عنوان Completely Fair Scheduler شناخته میشود که در پیادهسازی آن از Red-Black Tree که یک درخت جستجوی دودویی Balance میباشد کمک گرفته شده است.
یک کلاس دیگری که در لینوکس وجود دارد کلاس RealTime میباشد. البته منظور از RealTime در این مورد این است که وظایف تحت یک Time Frame مشخص اجرا میشوند. در این کلاس امکان استفاده از روشهای Round-Robin یا FIFO وجود دارد.
تنظیم کردن اولویت وظایف در کلاس نرمال توسط مقدار nice مشخص میشود که عددی در بازهی منفی ۲۰ تا مثبت ۱۹ میباشد. در کرنل لینوکس مقدار نهایی اولویت برای الگوریتمهای مختلف میتواند عددی بین صفر تا ۱۳۹ باشد و موارد مختلفی مثل Boost کردن اولویت برای پاسخدهی سریعتر برنامههای گرافیکی یا وظایفی که وابستگی خاصی به آنها وجود دارد نیز در اولویت نهایی تاثیر دارند. برای داشتن مقدار تنظیم شده برای اولویت و مقداری که کرنل تصمیم میگیرد اولویت وظیفه در زمان جاری باشد فیلدهای متفاوتی در task_struct وجود دارند.
به عنوان نکتهی پایانی باید اشاره کنم که تنظیم کردن اولویت وظایف به کمک syscall ای به اسم setpriority انجام میشود که دستور renice نیز از آن استفاده میکند. به کمک دستور chrt نیز میتوان تنظیمات مربوط به کلاس RealTime را تغییر داد.
شرح کامل موارد ذکر شده، نمایش دمو از شیوهی استفاده از آنها و نمایش کد کرنل مربوط به setpriotity مواردی هستند که در این ویدئو به آنها میپردازیم. برای مشاهدهی ویدئو از لینکهای زیر استفاده کنید:
لینک ویدئو در یوتیوب:
https://youtu.be/Q6zjeE3Ad_U
لینک ویدئو در آپارات:
https://aparat.com/v/ykmy2r4
پ.ن: اگر شیوهی پیادهسازی پروسه/نخ در لینوکس و کاربرد task_struct برای شما شفاف نیست به پست زیر مراجعه کنید:
https://news.1rj.ru/str/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #processes #sheduling #tasks #task_struct #nice #priority
قبل از توضیح این بخش لازمه مجدد اشاره کنم که thread/process در کرنل لینوکس با task_struct پیادهسازی شدهاند و در این پست بجای تکرار «اجرای پروسه و نخ» در لینوکس از عبارت اجرای وظیفه یا task استفاده میکنیم. با این مقدمه برسیم به اصل موضوع این پست:
یکی از وظایفی که سیستمهای عامل بر عهده دارند کنترل اجرای پروسهها/نخها بر روی پردازنده است. اینکار توسط Scheduler سیستمعامل انجام شده و ترتیب و زمان شروع اجرا و مدت زمانی که آنها حق استفاده از پردارنده را دارند مشخص میکند.
لینوکس برای مشخص کردن اولویت اجرای taskها بر روی پردازنده و مدت زمانی که میتوانند از پردازنده استفاده کنند الگوریتمهای مختلفی دارد که به آنها class یا policy زمانبندی میگوید. در هر کلاس نیز به کمک یک عدد، اولویت اجرای taskها را مشخص میکند. به عنوان مثال زمانبند پیشفرض لینوکس که در کلاس Normal قرار دارد با عنوان Completely Fair Scheduler شناخته میشود که در پیادهسازی آن از Red-Black Tree که یک درخت جستجوی دودویی Balance میباشد کمک گرفته شده است.
یک کلاس دیگری که در لینوکس وجود دارد کلاس RealTime میباشد. البته منظور از RealTime در این مورد این است که وظایف تحت یک Time Frame مشخص اجرا میشوند. در این کلاس امکان استفاده از روشهای Round-Robin یا FIFO وجود دارد.
تنظیم کردن اولویت وظایف در کلاس نرمال توسط مقدار nice مشخص میشود که عددی در بازهی منفی ۲۰ تا مثبت ۱۹ میباشد. در کرنل لینوکس مقدار نهایی اولویت برای الگوریتمهای مختلف میتواند عددی بین صفر تا ۱۳۹ باشد و موارد مختلفی مثل Boost کردن اولویت برای پاسخدهی سریعتر برنامههای گرافیکی یا وظایفی که وابستگی خاصی به آنها وجود دارد نیز در اولویت نهایی تاثیر دارند. برای داشتن مقدار تنظیم شده برای اولویت و مقداری که کرنل تصمیم میگیرد اولویت وظیفه در زمان جاری باشد فیلدهای متفاوتی در task_struct وجود دارند.
به عنوان نکتهی پایانی باید اشاره کنم که تنظیم کردن اولویت وظایف به کمک syscall ای به اسم setpriority انجام میشود که دستور renice نیز از آن استفاده میکند. به کمک دستور chrt نیز میتوان تنظیمات مربوط به کلاس RealTime را تغییر داد.
شرح کامل موارد ذکر شده، نمایش دمو از شیوهی استفاده از آنها و نمایش کد کرنل مربوط به setpriotity مواردی هستند که در این ویدئو به آنها میپردازیم. برای مشاهدهی ویدئو از لینکهای زیر استفاده کنید:
لینک ویدئو در یوتیوب:
https://youtu.be/Q6zjeE3Ad_U
لینک ویدئو در آپارات:
https://aparat.com/v/ykmy2r4
پ.ن: اگر شیوهی پیادهسازی پروسه/نخ در لینوکس و کاربرد task_struct برای شما شفاف نیست به پست زیر مراجعه کنید:
https://news.1rj.ru/str/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #processes #sheduling #tasks #task_struct #nice #priority
YouTube
Task Scheduling in Linux [PER]
یکی از وظایفی که سیستمهای عامل بر عهده دارند کنترل اجرای پروسهها/نخها بر روی پردازنده است. اینکار توسط Scheduler سیستمعامل انجام شده و ترتیب و زمان شروع اجرا و مدت زمانی که آنها حق استفاده از پردارنده را دارند مشخص میکند.
لینوکس برای مشخص کردن اولویت…
لینوکس برای مشخص کردن اولویت…
❤13👍5
نمایش شیوهی ایجاد پروسههای اولیهی لینوکس و طرز کار آنها از روی کد کرنل
پروسهها در لینوکس یک ساختار درختی دارند و همه چیز از پروسه با PID یک شروع میشه که در توزیعهای جدید لینوکس systemd است ولی در نسخههای قدیمیتر init, upstart و چیزهای دیگری میتوانست باشد. البته یک مورد جدید و جذاب دیگه unikernel میباشد که در آن برنامههای مختلف میتوانند به عنوان PID 1 اجرا شده و در ایجاد containerهایی با وابستگی کم کاربرد دارد.
ایجاد این پروسه در تابع start_kernel از کد کرنل که در فایل init/main.c تعریف شده است انجام میشود. پروسه با PID 1 در لینوکس یک پروسهی کامل میباشد که هم user space داشته و هم kernel space و پروسههایی که این دو را داشته باشند در ساختار درختی زیر مجموعهی این پروسه میباشند.
پروسهی دومی که در تابع start_kernel ایجاد میشود دارای PID 2 میباشد و در ساختار درختی موازی این پروسه بوده و زیر مجموعهی آن نمیباشد. اسم این پروسه kthreadd میباشد و بر خلاف پروسهی PID 1 دارای user space نبوده و فقط kernel space دارد. این پروسه وظیفهی مدیریت kernel threadها را در لینوکس دارد که برای مدیریت کارهای مختلف سیستمی و انجام وظایف مختلف مربوط به کرنل و درایورها استفاده میشوند.
با شروع به کار این دو پروسه سیستمعامل به صورت کامل بالا آمده و مابقی پروسهها میتوانند تحت آنها شروع به کار کرده و سرویسدهی را انجام دهند. البته یک پروسهی دیگر نیز با PID 0 در لینوکس وجود دارد که در خروجی ps نمیتوانید آنرا مشاهده کنید ولی با استفاده از ابزارهایی مثل ftrace, ebpf امکان کسب اطلاعات از آن وجود دارد.
برای اطلاع از جزئیات بیشتری که در مورد این سه پروسه وجود دارد ویدئو را مشاهده کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/vRwfnFXex3E
لینک ویدئو در آپارات:
https://aparat.com/v/xkl8808
#ShortLinuxInternals #linux #internals #programming #processes #kernel #systemd #initd #kernelthreads
پروسهها در لینوکس یک ساختار درختی دارند و همه چیز از پروسه با PID یک شروع میشه که در توزیعهای جدید لینوکس systemd است ولی در نسخههای قدیمیتر init, upstart و چیزهای دیگری میتوانست باشد. البته یک مورد جدید و جذاب دیگه unikernel میباشد که در آن برنامههای مختلف میتوانند به عنوان PID 1 اجرا شده و در ایجاد containerهایی با وابستگی کم کاربرد دارد.
ایجاد این پروسه در تابع start_kernel از کد کرنل که در فایل init/main.c تعریف شده است انجام میشود. پروسه با PID 1 در لینوکس یک پروسهی کامل میباشد که هم user space داشته و هم kernel space و پروسههایی که این دو را داشته باشند در ساختار درختی زیر مجموعهی این پروسه میباشند.
پروسهی دومی که در تابع start_kernel ایجاد میشود دارای PID 2 میباشد و در ساختار درختی موازی این پروسه بوده و زیر مجموعهی آن نمیباشد. اسم این پروسه kthreadd میباشد و بر خلاف پروسهی PID 1 دارای user space نبوده و فقط kernel space دارد. این پروسه وظیفهی مدیریت kernel threadها را در لینوکس دارد که برای مدیریت کارهای مختلف سیستمی و انجام وظایف مختلف مربوط به کرنل و درایورها استفاده میشوند.
با شروع به کار این دو پروسه سیستمعامل به صورت کامل بالا آمده و مابقی پروسهها میتوانند تحت آنها شروع به کار کرده و سرویسدهی را انجام دهند. البته یک پروسهی دیگر نیز با PID 0 در لینوکس وجود دارد که در خروجی ps نمیتوانید آنرا مشاهده کنید ولی با استفاده از ابزارهایی مثل ftrace, ebpf امکان کسب اطلاعات از آن وجود دارد.
برای اطلاع از جزئیات بیشتری که در مورد این سه پروسه وجود دارد ویدئو را مشاهده کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/vRwfnFXex3E
لینک ویدئو در آپارات:
https://aparat.com/v/xkl8808
#ShortLinuxInternals #linux #internals #programming #processes #kernel #systemd #initd #kernelthreads
YouTube
Investigating Initial Processes in Linux (systemd, kthreadd)
پروسهها در لینوکس یک ساختار درختی دارند و همه چیز از پروسه با PID یک شروع میشه که در توزیعهای جدید لینوکس systemd است ولی در نسخههای قدیمیتر init, upstart و چیزهای دیگری میتوانست باشد. البته یک مورد جدید و جذاب دیگه unikernel میباشد که در آن برنامههای…
❤12👍3
مقدمهای بر eBPF و کاربردهای آن
هر اتفاقی در لینوکس رخ میدهد از دل کرنل رد شده و با بودن در دل کرنل میتوان از آن رخداد اطلاع پیدا کرد. مشکلی که در توسعهی کد در کرنل وجود دارد این است که پیچیدگی زیادی داشته و یک اشتباه منجر به کرش کردن سیستمعامل شده و پایداری سیستم را به خطر میاندازد.
برای کسب اطلاعات از اتفاقات مختلفی که در سیستمعامل رخ میدهند و اعمال تغییرات در بخشهای مختلف آن ابزارهای مختلفی توسعه داده شدهاند که امکان کسب اطلاعات و یا اعمال تغییرات در نقاط مشخصی از کرنل را فراهم میکنند. قبلا در پستی یکی از این ابزارها به اسم ftrace را معرفی کردهام و در این پست و ویدئو قصد معرفی ابزار دیگری به اسم eBPF را دارم که قابلیتهایی بسیار زیادی فراهم کرده و انعطاف پذیری بالایی در کسب اطلاعات و اعمال تغییرات در کرنل لینوکس را دارد.
در واقع میتوان گفت که eBPF یک زبان تعامل با کرنل لینوکس است که به کمک آن میتوان اطلاعاتی از کارکرد کرنل بدست آورده و یا در آن تغییراتی اعمال نمود. کد نوشته شده برای eBPF پس از کامپایل به یک bytecode برای کرنل ارسال شده و اگر مشکلی نداشته باشد در کرنل اجرا میشود.
برای نمونهای از کاربردهای eBPF میتوان به استفادهی اندروید برای کسب اطلاعات از میزان استفاده از شبکه، استفادهی Netflix برای کسب اطلاعات آماری از شبکه در مقیاس بزرگ، استفادهی گوگل برای پردازش بستههای شبکه و performance monitoring و یا استفادهی Cloudflare برای امنیت شبکه اشاره کرد.
در این ویدئو ابتدا eBPF معرفی شده و سپس به کمک bpftrace استفاده از آن تست میشود.
لینک ویدئو در یوتیوب:
https://youtu.be/qOqi8RPf4N0
لینک ویدئو در آپارات:
https://aparat.com/v/rxzar9f
#ShortLinuxInternals #linux #internals #programming #kernel #bpf #ebpf #tracing #bpftrace
هر اتفاقی در لینوکس رخ میدهد از دل کرنل رد شده و با بودن در دل کرنل میتوان از آن رخداد اطلاع پیدا کرد. مشکلی که در توسعهی کد در کرنل وجود دارد این است که پیچیدگی زیادی داشته و یک اشتباه منجر به کرش کردن سیستمعامل شده و پایداری سیستم را به خطر میاندازد.
برای کسب اطلاعات از اتفاقات مختلفی که در سیستمعامل رخ میدهند و اعمال تغییرات در بخشهای مختلف آن ابزارهای مختلفی توسعه داده شدهاند که امکان کسب اطلاعات و یا اعمال تغییرات در نقاط مشخصی از کرنل را فراهم میکنند. قبلا در پستی یکی از این ابزارها به اسم ftrace را معرفی کردهام و در این پست و ویدئو قصد معرفی ابزار دیگری به اسم eBPF را دارم که قابلیتهایی بسیار زیادی فراهم کرده و انعطاف پذیری بالایی در کسب اطلاعات و اعمال تغییرات در کرنل لینوکس را دارد.
در واقع میتوان گفت که eBPF یک زبان تعامل با کرنل لینوکس است که به کمک آن میتوان اطلاعاتی از کارکرد کرنل بدست آورده و یا در آن تغییراتی اعمال نمود. کد نوشته شده برای eBPF پس از کامپایل به یک bytecode برای کرنل ارسال شده و اگر مشکلی نداشته باشد در کرنل اجرا میشود.
برای نمونهای از کاربردهای eBPF میتوان به استفادهی اندروید برای کسب اطلاعات از میزان استفاده از شبکه، استفادهی Netflix برای کسب اطلاعات آماری از شبکه در مقیاس بزرگ، استفادهی گوگل برای پردازش بستههای شبکه و performance monitoring و یا استفادهی Cloudflare برای امنیت شبکه اشاره کرد.
در این ویدئو ابتدا eBPF معرفی شده و سپس به کمک bpftrace استفاده از آن تست میشود.
لینک ویدئو در یوتیوب:
https://youtu.be/qOqi8RPf4N0
لینک ویدئو در آپارات:
https://aparat.com/v/rxzar9f
#ShortLinuxInternals #linux #internals #programming #kernel #bpf #ebpf #tracing #bpftrace
YouTube
eBPF Introduction [PER]
میتوان گفت که eBPF یک زبان تعامل با کرنل لینوکس است که به کمک آن میتوان اطلاعاتی از کارکرد کرنل بدست آورده و یا در آن تغییراتی اعمال نمود. کد نوشته شده برای eBPF پس از کامپایل به یک bytecode برای کرنل ارسال شده و اگر مشکلی نداشته باشد در کرنل اجرا میشود.…
👍17❤12
مروری بر پروسههای کرنلی لینوکس
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند. در این پست و ویدئو برخی از این پروسهها معرفی شده و کاربردهای مختلف آنها شرح داده میشود.
اولین پروسه (نخ) کرنلی لینوکس kthreadd است که وظیفهی ایجاد یک interface برای ایجاد و مدیریت پروسههای کرنلی در لینوکس را داشته و همیشه با PID برابر ۲ اجرا میشود. در کد این نخ یک حلقهی بینهایت وجود دارد که از لیستی به اسم kthread_create_list اطلاعات پروسهی کرنلی که قرار است ایجاد شود را برداشته و آنرا ایجاد میکند. تمامی پروسههای کرنلی لینوکس از اینجا به بعد فرزندان kthreadd خواهند بود.
پروسهی بعدی که معرفی میکنیم migration است. از پروسهی کرنلی migration به تعداد coreهای cpu خواهیم داشت و وظیفهی آن مدیریت پروسههایی است که بر روی یک core اجرا میشوند و در صورت زیاد بودن بار بر روی یک core یک پروسه را از روی run_queue یک core بر داشته و بر روی run_queue یک core دیگر قرار میدهد.
پروسهی دیگری که در ویدئو در مورد آن صحبت شده است kcompactd است که وظیفهی آن جلوگیری از ایجاد fragmentation در حافظه و کمک به کنارهم قرار گرفتن pageهای مرتبط در حافظه است.
یک پروسهی جالب دیگر oom_reaper است که در صورتیکه سیستمعامل با کمبود حافظه مواجه شود دست به کار شده و با kill کردن یک پروسه فضای لازم را برای کار مابقی پروسهها فراهم میکند.
در ویدئو در مورد پروسههای بیشتری صحبت شده است که میتوانید با مشاهدهی آن از این پروسهها اطلاع پیدا کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/PsZ5GZhzvqE
لینک ویدئو در آپارات:
https://aparat.com/v/obt29c7
پ.ن ۱: برای اطلاع از جزئیات پروسههای ابتدایی لینوکس پست زیر را مشاهده کنید:
https://news.1rj.ru/str/OxAA55/133
پ.ن ۲: برای اطلاع از جزئیات پروسه و نخ در لینوکس پست زیر را مشاهده کنید:
https://news.1rj.ru/str/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #kernel #memory #threads #processes #kernel_threads
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند. در این پست و ویدئو برخی از این پروسهها معرفی شده و کاربردهای مختلف آنها شرح داده میشود.
اولین پروسه (نخ) کرنلی لینوکس kthreadd است که وظیفهی ایجاد یک interface برای ایجاد و مدیریت پروسههای کرنلی در لینوکس را داشته و همیشه با PID برابر ۲ اجرا میشود. در کد این نخ یک حلقهی بینهایت وجود دارد که از لیستی به اسم kthread_create_list اطلاعات پروسهی کرنلی که قرار است ایجاد شود را برداشته و آنرا ایجاد میکند. تمامی پروسههای کرنلی لینوکس از اینجا به بعد فرزندان kthreadd خواهند بود.
پروسهی بعدی که معرفی میکنیم migration است. از پروسهی کرنلی migration به تعداد coreهای cpu خواهیم داشت و وظیفهی آن مدیریت پروسههایی است که بر روی یک core اجرا میشوند و در صورت زیاد بودن بار بر روی یک core یک پروسه را از روی run_queue یک core بر داشته و بر روی run_queue یک core دیگر قرار میدهد.
پروسهی دیگری که در ویدئو در مورد آن صحبت شده است kcompactd است که وظیفهی آن جلوگیری از ایجاد fragmentation در حافظه و کمک به کنارهم قرار گرفتن pageهای مرتبط در حافظه است.
یک پروسهی جالب دیگر oom_reaper است که در صورتیکه سیستمعامل با کمبود حافظه مواجه شود دست به کار شده و با kill کردن یک پروسه فضای لازم را برای کار مابقی پروسهها فراهم میکند.
در ویدئو در مورد پروسههای بیشتری صحبت شده است که میتوانید با مشاهدهی آن از این پروسهها اطلاع پیدا کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/PsZ5GZhzvqE
لینک ویدئو در آپارات:
https://aparat.com/v/obt29c7
پ.ن ۱: برای اطلاع از جزئیات پروسههای ابتدایی لینوکس پست زیر را مشاهده کنید:
https://news.1rj.ru/str/OxAA55/133
پ.ن ۲: برای اطلاع از جزئیات پروسه و نخ در لینوکس پست زیر را مشاهده کنید:
https://news.1rj.ru/str/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #kernel #memory #threads #processes #kernel_threads
آپارات - سرویس اشتراک ویدیو
Going over Linux Kernel Threads
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند.…
👍16❤3👏3
ساعتی با حافظهی مجازی در لینوکس
یکی از کارهایی که سیستمهای عامل از جمله لینوکس انجام میدهند مدیریت حافظه و ایجاد یک لایهی Abstraction برای پروسههاست که به کمک آن هر پروسهای تصور میکند کل حافظهی موجود در سیستم، معمولا ۳ گیگ در مدل ۳۲بیتی و ۱۲۸ترابایت در مدل ۶۴بیتی، را در اختیار داشته و از اینکه واقعا چه مقداری حافظه در سیستم موجود بوده و داده بر روی RAM یا Disk ذخیره میشود اطلاعی نخواهد داشت.
دریافت حافظه از سیستمعامل و نگاشت آن در فضای آدرس دهی پروسهها نیز در واحدهایی به اسم Page و به کمک فراخوانی سیستمی mmap انجام میشود که پیشفرض مقدار 4KB داشته و از یک Page Table برای مشخص کردن اینکه چه فضایی از پروسه در کجای RAM/Disk قرار گرفته است استفاده میشود.
در این ویدئو مفاهیم مربوط به آدرسدهی مجازی Virtual Addressing در لینوکس و بخشهایی که در آن دخیل بوده شرح داده شده و به کمک چند نمونه کد مفاهیم تست میشوند.
برخی از مواردی که در مورد آنها صحبت میکنم به شرح زیر است:
• مقدمهای بر حافظه مجازی و دلیل استفاده از Virtual Addressing
• نحوه نگاشت Page و Frame
• مفهوم Page Table و نقش آن در نگاشت آدرسها
• بررسی فایل proc/iomem/ و نحوه نگاشت حافظه در RAM
• تفاوت Page Faultهای Major و Minor و نحوه مدیریت آنها
• آشنایی با Zoneهای حافظه در لینوکس
• معرفی Slab Allocator و مفهوم کشهای حافظه
• مقایسه روشهای تخصیص حافظه در کرنل kmalloc vs vmalloc
• بررسی اطلاعات در حافظه مجازی و RAM به کمک Qemu
لینک ویدئو در یوتیوب:
https://youtu.be/2bjuqRLFaHc
لینک ویدئو در آپارات:
https://aparat.com/v/xqj64rn
#ShortLinuxInternals #linux #internals #VirtualMemory #MemoryManagement #KernelProgramming #PageTable #PageFault #SlabAllocator #kmalloc #vmalloc #SystemProgramming #EmbeddedLinux
یکی از کارهایی که سیستمهای عامل از جمله لینوکس انجام میدهند مدیریت حافظه و ایجاد یک لایهی Abstraction برای پروسههاست که به کمک آن هر پروسهای تصور میکند کل حافظهی موجود در سیستم، معمولا ۳ گیگ در مدل ۳۲بیتی و ۱۲۸ترابایت در مدل ۶۴بیتی، را در اختیار داشته و از اینکه واقعا چه مقداری حافظه در سیستم موجود بوده و داده بر روی RAM یا Disk ذخیره میشود اطلاعی نخواهد داشت.
دریافت حافظه از سیستمعامل و نگاشت آن در فضای آدرس دهی پروسهها نیز در واحدهایی به اسم Page و به کمک فراخوانی سیستمی mmap انجام میشود که پیشفرض مقدار 4KB داشته و از یک Page Table برای مشخص کردن اینکه چه فضایی از پروسه در کجای RAM/Disk قرار گرفته است استفاده میشود.
در این ویدئو مفاهیم مربوط به آدرسدهی مجازی Virtual Addressing در لینوکس و بخشهایی که در آن دخیل بوده شرح داده شده و به کمک چند نمونه کد مفاهیم تست میشوند.
برخی از مواردی که در مورد آنها صحبت میکنم به شرح زیر است:
• مقدمهای بر حافظه مجازی و دلیل استفاده از Virtual Addressing
• نحوه نگاشت Page و Frame
• مفهوم Page Table و نقش آن در نگاشت آدرسها
• بررسی فایل proc/iomem/ و نحوه نگاشت حافظه در RAM
• تفاوت Page Faultهای Major و Minor و نحوه مدیریت آنها
• آشنایی با Zoneهای حافظه در لینوکس
• معرفی Slab Allocator و مفهوم کشهای حافظه
• مقایسه روشهای تخصیص حافظه در کرنل kmalloc vs vmalloc
• بررسی اطلاعات در حافظه مجازی و RAM به کمک Qemu
لینک ویدئو در یوتیوب:
https://youtu.be/2bjuqRLFaHc
لینک ویدئو در آپارات:
https://aparat.com/v/xqj64rn
#ShortLinuxInternals #linux #internals #VirtualMemory #MemoryManagement #KernelProgramming #PageTable #PageFault #SlabAllocator #kmalloc #vmalloc #SystemProgramming #EmbeddedLinux
YouTube
Virtual Memory in Linux
یکی از کارهایی که سیستمهای عامل از جمله لینوکس انجام میدهند مدیریت حافظه و ایجاد یک لایهی Abstraction برای پروسههاست که به کمک آن هر پروسهای تصور میکند کل حافظهی موجود در سیستم، معمولا ۳ گیگ در مدل ۳۲بیتی و ۱۲۸ترابایت در مدل ۶۴بیتی، را در اختیار داشته…
❤28👍4
Forwarded from کانال بایت امن
#Article #Tools
چند مقاله و ابزار درباره ساختار PE قبلاً در وبلاگ قرار داده بودم که امروز اونها رو بهروزرسانی کردم. سورسکدها و ویدیوهای دمو هم اضافه شده تا این مفاهیم بهتر قابل درک باشن و راحتتر بتونید با موضوع ساختار PE ارتباط برقرار کنید.
⬅️ بررسی و تحلیل Checksum در ساختار PE
⬅️ بررسی و تشریح DEP و ASLR در ساختار PE
⬅️ ابزار تبدیل DLL به EXE
⬅️ ابزار حذف DEP و ASLR از ساختار PE
⬅️ ابزار تصحیح Checksum در ساختار PE
🦅 کانال بایت امن | گروه بایت امن
_
چند مقاله و ابزار درباره ساختار PE قبلاً در وبلاگ قرار داده بودم که امروز اونها رو بهروزرسانی کردم. سورسکدها و ویدیوهای دمو هم اضافه شده تا این مفاهیم بهتر قابل درک باشن و راحتتر بتونید با موضوع ساختار PE ارتباط برقرار کنید.
_
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👏3👍2👎1
🎓 Foundations of Linux Reverse Engineering and Exploitation
🧠 Course Overview
🔍 Linux Internals & Assembly
• Introduction to Linux internals
• Quick review of assembly (x86 & x64)
• Understanding calling conventions
🛠️ Reverse Engineering Tools
• GDB + pwndbg
• Ghidra
• Radare2
• Metasploit Framework
• PwnTools
💥 Exploitation Techniques
• Integer Overflow
• Buffer Overflow
• Format String Vulnerabilities
• Out-of-Bounds Memory Access
🛡️ Bypassing Security Mechanisms
• NX (No eXecute)
• ASLR
• Stack Canaries
• RELRO
🐚 Shellcoding Basics
• Writing and injecting shellcodes
📦 Binary Analysis
• Binary permissions & SetUID bit
• ELF structure
• GOT / PLT concepts
📚 Return-Oriented Programming (ROP)
• ret2win
• ret2libc
• ret2csu
🎯 Real-World Practice
• Hands-on CTFs:
▪️ PicoCTF
▪️ SnappCTF
▪️ Narnia (OverTheWire)
▪️ ROP Emporium
🚀 Final Lab
Walkthrough of a real CVE and writing an exploit for it from scratch.
🧠 Course Overview
🔍 Linux Internals & Assembly
• Introduction to Linux internals
• Quick review of assembly (x86 & x64)
• Understanding calling conventions
🛠️ Reverse Engineering Tools
• GDB + pwndbg
• Ghidra
• Radare2
• Metasploit Framework
• PwnTools
💥 Exploitation Techniques
• Integer Overflow
• Buffer Overflow
• Format String Vulnerabilities
• Out-of-Bounds Memory Access
🛡️ Bypassing Security Mechanisms
• NX (No eXecute)
• ASLR
• Stack Canaries
• RELRO
🐚 Shellcoding Basics
• Writing and injecting shellcodes
📦 Binary Analysis
• Binary permissions & SetUID bit
• ELF structure
• GOT / PLT concepts
📚 Return-Oriented Programming (ROP)
• ret2win
• ret2libc
• ret2csu
🎯 Real-World Practice
• Hands-on CTFs:
▪️ PicoCTF
▪️ SnappCTF
▪️ Narnia (OverTheWire)
▪️ ROP Emporium
🚀 Final Lab
Walkthrough of a real CVE and writing an exploit for it from scratch.
❤31👍1
🔍 قابل توجه علاقهمندان به امنیت سیستمعامل و توسعه اکسپلویت در لینوکس
من همیشه به تدریس علاقهمند بودهام؛ نه صرفاً آموزش تئوری، بلکه انتقال واقعی تجربهها و درک عمیق مفاهیم فنی. از سالها پیش، تمرکزم روی internal سیستمعاملها—بهویژه ویندوز و لینوکس—و مباحث امنیتی بوده و سعی کردهام این مطالب تخصصی را به زبانی ساده، کاربردی و قابلفهم برای دیگران ارائه دهم.
🎓 حالا نوبت یک قدم جدید و متفاوت رسیده:
«دورهی Exploit Development در لینوکس»
از تحلیل آسیبپذیری واقعی گرفته تا نوشتن اکسپلویتهای عملی و کاربردی.
اما تصمیم گرفتم یک شرط خاص برای انتشار این دوره بگذارم:
🎯 اگر اعضای کانالم به ۵۰۰۰ نفر برسند، دوره را به صورت کامل و رایگان منتشر میکنم.
بیش از ۲۰ ساعت ویدئو و تمرین عملی بدون تبلیغات، بدون پرداخت هزینه—صرفاً برای اینکه دانش تخصصی، راحتتر و بیواسطه به دست کسانی برسه که واقعاً به یادگیری اهمیت میدن.
🧠 اگر شما هم به این مسیر علاقهمندید یا فکر میکنید افراد دیگری در اطرافتان هستند که این محتوا به دردشان میخورد، خوشحال میشم با معرفی کانالم به دوستانتان از این پروژه حمایت کنید.
📎 لینک کانال:
https://news.1rj.ru/str/OxAA55
✍️راستی سرفصل دوره رو هم میتونید در لینک زیر مشاهده کنید:
https://news.1rj.ru/str/OxAA55/140
من همیشه به تدریس علاقهمند بودهام؛ نه صرفاً آموزش تئوری، بلکه انتقال واقعی تجربهها و درک عمیق مفاهیم فنی. از سالها پیش، تمرکزم روی internal سیستمعاملها—بهویژه ویندوز و لینوکس—و مباحث امنیتی بوده و سعی کردهام این مطالب تخصصی را به زبانی ساده، کاربردی و قابلفهم برای دیگران ارائه دهم.
🎓 حالا نوبت یک قدم جدید و متفاوت رسیده:
«دورهی Exploit Development در لینوکس»
از تحلیل آسیبپذیری واقعی گرفته تا نوشتن اکسپلویتهای عملی و کاربردی.
اما تصمیم گرفتم یک شرط خاص برای انتشار این دوره بگذارم:
🎯 اگر اعضای کانالم به ۵۰۰۰ نفر برسند، دوره را به صورت کامل و رایگان منتشر میکنم.
بیش از ۲۰ ساعت ویدئو و تمرین عملی بدون تبلیغات، بدون پرداخت هزینه—صرفاً برای اینکه دانش تخصصی، راحتتر و بیواسطه به دست کسانی برسه که واقعاً به یادگیری اهمیت میدن.
🧠 اگر شما هم به این مسیر علاقهمندید یا فکر میکنید افراد دیگری در اطرافتان هستند که این محتوا به دردشان میخورد، خوشحال میشم با معرفی کانالم به دوستانتان از این پروژه حمایت کنید.
📎 لینک کانال:
https://news.1rj.ru/str/OxAA55
✍️راستی سرفصل دوره رو هم میتونید در لینک زیر مشاهده کنید:
https://news.1rj.ru/str/OxAA55/140
Telegram
OS Internals
مقاله و فیلم آموزش مدیریت و برنامهنویسی سیستمهای عامل، شبکه و امنیت اطلاعات.
مقالات من در ویرگول:
https://virgool.io/@akazemi
ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akazemi67
مقالات من در ویرگول:
https://virgool.io/@akazemi
ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akazemi67
👏59❤36🤔4👍3
📢 برنامهی انتشار دورهی Exploit Development در لینوکس
یکی از علاقهمندیهای اصلی من همیشه آموزش و انتقال دانش بوده—نه به عنوان یک شغل یا وظیفه، بلکه به عنوان یک انتخاب شخصی و لذت واقعی.
🎥 برای همین، تصمیم گرفتم دورهای که زمان زیادی برای آمادهسازیش گذاشتم رو بهصورت رایگان منتشر کنم.
البته در ابتدا کمی نگران بودم… نکنه چون دوره رایگانه، بعضیها فکر کنن کیفیتش پایینه؟؟🤔
📚ولی واقعیت اینه که برای هر جلسه تدریس، گاهی تا ۳ روز کامل درگیرم و زمان زیادی صرف آمادهسازی محتوا میکنم—چه در تدریس سازمانی، چه دانشگاهی و چه همین دورهی توسعهی اکسپلویت. این بود که برای انتشار دوره شرط افزایش تعداد اعضای کانال و حمایت رو گذاشتم!
🌿با تمام وجود از دوستانی که در معرفی دوره، افزایش اعضای کانال و دیده شدن پستها صمیمانه کمک کردند، ممنونم. حمایت واقعی شما انگیزهای بزرگه 🙏
🗓️ حالا نوبت اعلام برنامهی انتشار دوره رسیده:
✅ از هفتهی آخر مرداد، فارغ از تعداد اعضای کانال،
🔸 انتشار دوره شروع میشه
🔸 هر هفته، در آخر هفته، یک بخش جدید منتشر خواهد شد
🔸 اطلاعرسانی قسمتهای جدید در کانال تلگرام و لینکدین انجام میشه
💻 همچنین در تلاش هستم که مطالب دوره در قالب مقاله هم روی یک سایت منتشر بشه. در صورت آماده شدن، حتماً خبرش رو میدم.
🔥 پس آماده باشید!
از هفتهی آخر مرداد، با هم وارد دنیای توسعه اکسپلویت در لینوکس میشیم...
📎 کانال رو دنبال کنید تا هیچ بخشی رو از دست ندید!
https://news.1rj.ru/str/OxAA55
یکی از علاقهمندیهای اصلی من همیشه آموزش و انتقال دانش بوده—نه به عنوان یک شغل یا وظیفه، بلکه به عنوان یک انتخاب شخصی و لذت واقعی.
🎥 برای همین، تصمیم گرفتم دورهای که زمان زیادی برای آمادهسازیش گذاشتم رو بهصورت رایگان منتشر کنم.
البته در ابتدا کمی نگران بودم… نکنه چون دوره رایگانه، بعضیها فکر کنن کیفیتش پایینه؟؟🤔
📚ولی واقعیت اینه که برای هر جلسه تدریس، گاهی تا ۳ روز کامل درگیرم و زمان زیادی صرف آمادهسازی محتوا میکنم—چه در تدریس سازمانی، چه دانشگاهی و چه همین دورهی توسعهی اکسپلویت. این بود که برای انتشار دوره شرط افزایش تعداد اعضای کانال و حمایت رو گذاشتم!
🌿با تمام وجود از دوستانی که در معرفی دوره، افزایش اعضای کانال و دیده شدن پستها صمیمانه کمک کردند، ممنونم. حمایت واقعی شما انگیزهای بزرگه 🙏
🗓️ حالا نوبت اعلام برنامهی انتشار دوره رسیده:
✅ از هفتهی آخر مرداد، فارغ از تعداد اعضای کانال،
🔸 انتشار دوره شروع میشه
🔸 هر هفته، در آخر هفته، یک بخش جدید منتشر خواهد شد
🔸 اطلاعرسانی قسمتهای جدید در کانال تلگرام و لینکدین انجام میشه
💻 همچنین در تلاش هستم که مطالب دوره در قالب مقاله هم روی یک سایت منتشر بشه. در صورت آماده شدن، حتماً خبرش رو میدم.
🔥 پس آماده باشید!
از هفتهی آخر مرداد، با هم وارد دنیای توسعه اکسپلویت در لینوکس میشیم...
📎 کانال رو دنبال کنید تا هیچ بخشی رو از دست ندید!
https://news.1rj.ru/str/OxAA55
Telegram
OS Internals
مقاله و فیلم آموزش مدیریت و برنامهنویسی سیستمهای عامل، شبکه و امنیت اطلاعات.
مقالات من در ویرگول:
https://virgool.io/@akazemi
ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akazemi67
مقالات من در ویرگول:
https://virgool.io/@akazemi
ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akazemi67
❤130👏22👍6🤔1
OS Internals pinned «📢 برنامهی انتشار دورهی Exploit Development در لینوکس یکی از علاقهمندیهای اصلی من همیشه آموزش و انتقال دانش بوده—نه به عنوان یک شغل یا وظیفه، بلکه به عنوان یک انتخاب شخصی و لذت واقعی. 🎥 برای همین، تصمیم گرفتم دورهای که زمان زیادی برای آمادهسازیش گذاشتم…»
Media is too big
VIEW IN TELEGRAM
🎥 ویدئوی معرفی دوره Exploit Development در لینوکس
📚 توی این دوره قراره یاد بگیریم آسیبپذیریها در لینوکس چطور به وجود میان، چطور شناسایی میشن و چطور میشه ازشون استفاده کرد. قدمبهقدم جلو میریم: از آشنایی با ساختار و امنیت لینوکس، تا پیدا کردن باگها و نوشتن اکسپلویت برای اونها.
🧨 بخش مهم دوره، مهندسی معکوس برنامههای لینوکسیه؛ یعنی یاد میگیریم چطور یک فایل اجرایی رو باز کنیم، کدهاشو بخونیم و ضعفهاشو پیدا کنیم. با ابزارهایی مثل GDB، pwndbg، Ghidra، Radare2، PwnTools و چند تا ابزار دیگه کار میکنیم و در عمل میبینیم چطور میشه مکانیزمهای امنیتی مثل ASLR، Stack Canaries، NX رو دور زد.
💣 در طول دوره با انواع آسیبپذیریها مثل Buffer Overflow، Integer Overflow، Format String و چیزهای دیگه آشنا میشیم، روشهای بهرهبرداری رو یاد میگیریم و روی چالشهای CTF تمرین میکنیم.
💡در پایان هم یک پروژه عملی داریم: تحلیل یک CVE واقعی و نوشتن اکسپلویت برای اون.
⏰ هر پنجشنبه منتظر یک فصل از دوره باشید. شروع از ۵شنبه ۳۰ مرداد.
https://news.1rj.ru/str/OxAA55/140
📚 توی این دوره قراره یاد بگیریم آسیبپذیریها در لینوکس چطور به وجود میان، چطور شناسایی میشن و چطور میشه ازشون استفاده کرد. قدمبهقدم جلو میریم: از آشنایی با ساختار و امنیت لینوکس، تا پیدا کردن باگها و نوشتن اکسپلویت برای اونها.
🧨 بخش مهم دوره، مهندسی معکوس برنامههای لینوکسیه؛ یعنی یاد میگیریم چطور یک فایل اجرایی رو باز کنیم، کدهاشو بخونیم و ضعفهاشو پیدا کنیم. با ابزارهایی مثل GDB، pwndbg، Ghidra، Radare2، PwnTools و چند تا ابزار دیگه کار میکنیم و در عمل میبینیم چطور میشه مکانیزمهای امنیتی مثل ASLR، Stack Canaries، NX رو دور زد.
💣 در طول دوره با انواع آسیبپذیریها مثل Buffer Overflow، Integer Overflow، Format String و چیزهای دیگه آشنا میشیم، روشهای بهرهبرداری رو یاد میگیریم و روی چالشهای CTF تمرین میکنیم.
💡در پایان هم یک پروژه عملی داریم: تحلیل یک CVE واقعی و نوشتن اکسپلویت برای اون.
⏰ هر پنجشنبه منتظر یک فصل از دوره باشید. شروع از ۵شنبه ۳۰ مرداد.
https://news.1rj.ru/str/OxAA55/140
❤92👏10👍7🤔1
📢 انتشار فصل اول دوره توسعه اکسپلویت در لینوکس
📚 این فصل شامل ۷ ویدئو میباشد و در آن با مفاهیم بنیادین اجرای برنامهها در سیستمعامل لینوکس آشنا میشوید؛ از مروری بر برنامهنویسی و ساختار فایلهای اجرایی گرفته تا نحوهی ایجاد و اجرای پروسهها و مدیریت حافظه. این فصل پایهای محکم برای درک مباحث پیشرفتهتری ایجاد میکند که در فصلهای آینده به آنها خواهیم پرداخت.
✍️ لینک ویدئوهای فصل در یوتیوب:
00) Course Introduction
P01-01) Programming Review
P01-02) ELF Intro
P01-03) Process Execution
P01-04) Heap Investigation
P01-05) Process Address Space
P01-06) Virtual Memory
P01-07) Syscalls Intro
✍️ لینک ویدئوهای فصل در آپارات:
https://aparat.com/v/qxvin87
https://aparat.com/v/fwd0751
https://aparat.com/v/ljqz0v8
https://aparat.com/v/pdw1xkk
https://aparat.com/v/nct8m83
https://aparat.com/v/eak4pvp
https://aparat.com/v/lbuc0q0
https://aparat.com/v/sfb8398
#linux #exploitdev #internals #programming #security
📚 این فصل شامل ۷ ویدئو میباشد و در آن با مفاهیم بنیادین اجرای برنامهها در سیستمعامل لینوکس آشنا میشوید؛ از مروری بر برنامهنویسی و ساختار فایلهای اجرایی گرفته تا نحوهی ایجاد و اجرای پروسهها و مدیریت حافظه. این فصل پایهای محکم برای درک مباحث پیشرفتهتری ایجاد میکند که در فصلهای آینده به آنها خواهیم پرداخت.
✍️ لینک ویدئوهای فصل در یوتیوب:
00) Course Introduction
P01-01) Programming Review
P01-02) ELF Intro
P01-03) Process Execution
P01-04) Heap Investigation
P01-05) Process Address Space
P01-06) Virtual Memory
P01-07) Syscalls Intro
✍️ لینک ویدئوهای فصل در آپارات:
https://aparat.com/v/qxvin87
https://aparat.com/v/fwd0751
https://aparat.com/v/ljqz0v8
https://aparat.com/v/pdw1xkk
https://aparat.com/v/nct8m83
https://aparat.com/v/eak4pvp
https://aparat.com/v/lbuc0q0
https://aparat.com/v/sfb8398
#linux #exploitdev #internals #programming #security
YouTube
00) Course Introduction [PER]
معرفی دوره توسعه اکسپلویت در لینوکس
❤109👍10👏8
📢🐧 مخزن دورهی Linux Exploit Development روی گیتهاب ایجاد شد.
از این به بعد همهی منابع و فایلهای کمکی دوره از طریق این مخزن منتشر میشن.
📂 لینک مخزن:
👉 https://github.com/akazemi67/Linux-Exploit-Development-Course
⚠️ ویدئوها به زبان فارسی هستن و مستندات مخزن به زبان انگلیسی آماده شدن.
#linux #exploitdev #GitHub
از این به بعد همهی منابع و فایلهای کمکی دوره از طریق این مخزن منتشر میشن.
📂 لینک مخزن:
👉 https://github.com/akazemi67/Linux-Exploit-Development-Course
⚠️ ویدئوها به زبان فارسی هستن و مستندات مخزن به زبان انگلیسی آماده شدن.
#linux #exploitdev #GitHub
GitHub
GitHub - akazemi67/Linux-Exploit-Development-Course: This course provides a practical introduction to Linux reverse engineering…
This course provides a practical introduction to Linux reverse engineering and exploitation. You’ll learn how Linux binaries work under the hood, how vulnerabilities arise, and how to discover and ...
❤70👍10👏1
📢 انتشار فصل دوم دوره Linux Exploit Development
📚 توی این فصل وارد دنیای اکسپلویت میشیم.
قبل از هر چیز ابزارها و مفاهیم پایه مثل GDB و اسمبلی رو مرور میکنیم، بعد یاد میگیریم چطور توی سطح پایین با کدها و فراخوانی توابع کار کنیم. کمکم میریم سراغ اصول اولیه اکسپلویت، تغییر آدرس بازگشت و در نهایت اولین Stack Overflow خودمون رو میسازیم. این فصل در واقع نقطه شروع عملی برای بحث توسعه اکسپلویت محسوب میشه.
✍️ لینک ویدئوهای فصل در یوتیوب:
P02-01) GDB Intro
P02-02) Assembly Review
P02-03) 32bit Calling Conventions
P02-04) Tracing a Function Call
P02-05) Using GDB for Tracing Function Calls
P02-06) Exploit Basics
P02-07) Return Address Example
P02-08) Our First Stack Overflow
P02-09) Practicing with exploit.education
✍️ لینک ویدئوهای فصل در آپارات:
https://aparat.com/v/gae2knx
https://aparat.com/v/gxj2i17
https://aparat.com/v/qqbf6k5
https://aparat.com/v/yzw6zb8
https://aparat.com/v/scrz84v
https://aparat.com/v/tjd2542
https://aparat.com/v/kxmt3e0
https://aparat.com/v/brj4447
https://aparat.com/v/rfdp5bb
#linux #exploitdev #assembly #security #bufferoverflow #gdb #x86
📚 توی این فصل وارد دنیای اکسپلویت میشیم.
قبل از هر چیز ابزارها و مفاهیم پایه مثل GDB و اسمبلی رو مرور میکنیم، بعد یاد میگیریم چطور توی سطح پایین با کدها و فراخوانی توابع کار کنیم. کمکم میریم سراغ اصول اولیه اکسپلویت، تغییر آدرس بازگشت و در نهایت اولین Stack Overflow خودمون رو میسازیم. این فصل در واقع نقطه شروع عملی برای بحث توسعه اکسپلویت محسوب میشه.
✍️ لینک ویدئوهای فصل در یوتیوب:
P02-01) GDB Intro
P02-02) Assembly Review
P02-03) 32bit Calling Conventions
P02-04) Tracing a Function Call
P02-05) Using GDB for Tracing Function Calls
P02-06) Exploit Basics
P02-07) Return Address Example
P02-08) Our First Stack Overflow
P02-09) Practicing with exploit.education
✍️ لینک ویدئوهای فصل در آپارات:
https://aparat.com/v/gae2knx
https://aparat.com/v/gxj2i17
https://aparat.com/v/qqbf6k5
https://aparat.com/v/yzw6zb8
https://aparat.com/v/scrz84v
https://aparat.com/v/tjd2542
https://aparat.com/v/kxmt3e0
https://aparat.com/v/brj4447
https://aparat.com/v/rfdp5bb
#linux #exploitdev #assembly #security #bufferoverflow #gdb #x86
YouTube
P02-01) GDB Intro [PER]
معرفی دیباگر GDB، مهمترین ابزار برای بررسی باینریها و دنبال کردن رفتار برنامه در سطح دستورالعمل.
❤73👏8👍6
OS Internals pinned «📢🐧 مخزن دورهی Linux Exploit Development روی گیتهاب ایجاد شد. از این به بعد همهی منابع و فایلهای کمکی دوره از طریق این مخزن منتشر میشن. 📂 لینک مخزن: 👉 https://github.com/akazemi67/Linux-Exploit-Development-Course ⚠️ ویدئوها به زبان فارسی هستن و مستندات…»
📢 انتشار فصل سوم دوره Linux Exploit Development
📚 در این فصل با مهمترین مکانیزمهای امنیتی لینوکس مثل Stack Canary و Position Independent Code (PIC) آشنا میشویم و یاد میگیریم این ویژگیها چگونه جلوی بسیاری از حملات را میگیرند.
ℹ️سپس وارد مباحث عملیتر مثل اجرای شلکد روی استک، باینریهای setuid و استفاده از ابزارهای معروف اکسپلویت مثل Metasploit، msfvenom و Pwntools میشویم. در نهایت، اولین اکسپلویت کامل خود را با کمک Pwntools توسعه داده و با این کتابخانه آشنا میشویم.
لینک ویدئوها در یوتیوب:
P03-01) Chapter Intro
P03-02) Stack Canary
P03-03) Position Independent Code
P03-04) Executable Stack and Shellcodes
P03-05) setuid binaries
P03-06) Metasploit and msfvenom Intro
P03-07) Pwntools Intro - From Overflow to Shell
P03-08) Solving First Overflow Using Pwntools
لینک ویدئوها در آپارات:
https://aparat.com/v/lqmowzv
https://aparat.com/v/uyslsx0
https://aparat.com/v/sig09a8
https://aparat.com/v/zwbthhg
https://aparat.com/v/myg57oa
https://aparat.com/v/bvrhcme
https://aparat.com/v/ibgs6ni
https://aparat.com/v/lkl187u
#linux #exploitdev #stack_canary #pie_pic #nx #pwntools #metasploit #security #gdb #assembly
📚 در این فصل با مهمترین مکانیزمهای امنیتی لینوکس مثل Stack Canary و Position Independent Code (PIC) آشنا میشویم و یاد میگیریم این ویژگیها چگونه جلوی بسیاری از حملات را میگیرند.
ℹ️سپس وارد مباحث عملیتر مثل اجرای شلکد روی استک، باینریهای setuid و استفاده از ابزارهای معروف اکسپلویت مثل Metasploit، msfvenom و Pwntools میشویم. در نهایت، اولین اکسپلویت کامل خود را با کمک Pwntools توسعه داده و با این کتابخانه آشنا میشویم.
لینک ویدئوها در یوتیوب:
P03-01) Chapter Intro
P03-02) Stack Canary
P03-03) Position Independent Code
P03-04) Executable Stack and Shellcodes
P03-05) setuid binaries
P03-06) Metasploit and msfvenom Intro
P03-07) Pwntools Intro - From Overflow to Shell
P03-08) Solving First Overflow Using Pwntools
لینک ویدئوها در آپارات:
https://aparat.com/v/lqmowzv
https://aparat.com/v/uyslsx0
https://aparat.com/v/sig09a8
https://aparat.com/v/zwbthhg
https://aparat.com/v/myg57oa
https://aparat.com/v/bvrhcme
https://aparat.com/v/ibgs6ni
https://aparat.com/v/lkl187u
#linux #exploitdev #stack_canary #pie_pic #nx #pwntools #metasploit #security #gdb #assembly
YouTube
P03-01) Chapter Intro [PER]
معرفی فصل و مرور کلی روی موضوعات امنیتی و ابزارهایی که در این فصل بررسی میکنیم.
❤72👏4