Forwarded from
Windows Kernel Exploitation
Готовый набор сплоитов на расте под HEVD:
HEVD Stack Buffer Overflow
HEVD Type Confusion
HEVD Use-After-Free
HEVD Uninitialized Heap Variable Takeover
HEVD Uninitialized Stack Variable Takeover
HEVD NX Non-Paged Pool Buffer Overflow (Data-Only)
https://github.com/r0t0tiller/WKE
Готовый набор сплоитов на расте под HEVD:
HEVD Stack Buffer Overflow
HEVD Type Confusion
HEVD Use-After-Free
HEVD Uninitialized Heap Variable Takeover
HEVD Uninitialized Stack Variable Takeover
HEVD NX Non-Paged Pool Buffer Overflow (Data-Only)
https://github.com/r0t0tiller/WKE
GitHub
GitHub - r0t0tiller/WKE: Windows Kernel Exploitation
Windows Kernel Exploitation. Contribute to r0t0tiller/WKE development by creating an account on GitHub.
❤2
وب فرمورک ها چگونه کار میکنند
https://youtube.com/playlist?list=PLRU2zoAmuzJ33x-___WkhyTJ8dDPaoOPk
#Programming
https://youtube.com/playlist?list=PLRU2zoAmuzJ33x-___WkhyTJ8dDPaoOPk
#Programming
YouTube
وبفریمورکها چگونه کار میکنند؟
توی این دوره کوتاه قصد داریم تا یک ریکوئست به سایتمون بزنیم و به دنبال اون بررسی کنیم چه اتفاقاتی برای درخواستمون میوفته تا تبدیل به پاسخ بشه. سعی داریم تا ب...
❤2
Forwarded from Source Chat (Friend)
Please open Telegram to view this post
VIEW IN TELEGRAM
دوستان سایت هانتلرن که تازه راه افتاده یه سه چهارتا دوره گذاشته که بعضا رایگانن
مثلا دوره javascript for hunters داره که رایگانه
دوست داشتین ثبت نام کنین
huntlearn.com
مثلا دوره javascript for hunters داره که رایگانه
دوست داشتین ثبت نام کنین
huntlearn.com
🫡2
Return Value Optimization(RVO) in C++
https://sigcpp.github.io/2020/06/08/return-value-optimization
#programming
#cpp
https://sigcpp.github.io/2020/06/08/return-value-optimization
#programming
#cpp
sigcpp
Return value optimization (RVO)
Return-value optimization is a compiler technique to avoid copying an object that a function returns as its value, including avoiding creation of a temporary object. This optimization permits a function to efficiently return large objects while also simplifying…
🔥1
Forwarded from HuntLearn
ورکشاپ مقدمهای بر ردتیم و شبیه سازی APT38؛ با تدریس استاد هاشمی ( @soheilsec ). مقدمهای از پایه ردتیم و پایهای ترین توضیحات و سپس پیاده سازی APT38 برای درک بهتر و بیشتر. و ارائه راهکارهای دفاعی در تمامی مراحل.
https://huntlearn.com/courses/تیم-قرمز?show=webinar
در این ورکشاپ، افراد علاقه مند، ردتیمر و SOC میتوانند حضور پیدا کنند. لینک ورود به وبینار به صورت پابلیک قرار داده خواهد شد اما به افرادی که در سایت، توی وبینار ثبت نام کرده باشند به قید قرعه، چندین کتاب به انتخاب خود شخص، آفر شغلی و آموزشی و... داده خواهد شد👌🏻
به صورت کاملا رایگان!
پشتیبانی هانت لرن:
@huntlearn_support
https://huntlearn.com/courses/تیم-قرمز?show=webinar
در این ورکشاپ، افراد علاقه مند، ردتیمر و SOC میتوانند حضور پیدا کنند. لینک ورود به وبینار به صورت پابلیک قرار داده خواهد شد اما به افرادی که در سایت، توی وبینار ثبت نام کرده باشند به قید قرعه، چندین کتاب به انتخاب خود شخص، آفر شغلی و آموزشی و... داده خواهد شد👌🏻
به صورت کاملا رایگان!
پشتیبانی هانت لرن:
@huntlearn_support
Forwarded from Source Byte (t a h a)
https://web.archive.org/web/20240719160444/https://undocumented.ntinternals.net/
Xray(actually nudes) of windows internals
Xray(actually nudes) of windows internals
مقداری سوکت پروگرمینگ در لینوکس
فرض کنید بخوایم یه سرور بسازیم که دیتا رو از طریق tcp یا udp از چندتا کلاینت دریافت کنیم. به چه مراحلی نیاز خواهیم داشت؟
اول از همه باید یه سوکت بسازیم. سوکت توی لینوکس فقط یه فایله که لایه ابسترکشن حساب میشه. اینجوری که بعد از تنظیم و وصل کردن به آیپی کلاینت، اگه توش چیزی بنویسیم، عملا داریم به اون کلاینت دیتا رو منتقل میکنیم و اگه بخونیم، دیتایی رو میخونیم که اون کلاینت برای ما فرستاده
پس اولین مرحله میشه ساختن سوکت که با تابع socket از هدرفایل sys/socket.h صورت میگیره. مثلا اگه یه سوکت برای ارتباط tcp خواسته باشیم، کافیه خط زیر رو وارد کنیم
پارامتر اول تابع خانواده پروتکل مدنظرمون هست که اینجا برای IPv4 باید PF_INET باشه. پارامتر دوم نوع سوکت مدنظرمونه که اینجا برای tcp، مقدار SOCK_STREAM قرار داده شده. پارامتر آخر هم همیشه صفره(دقیق نمیدونم چیه)
خب. تا الان یه سوکت ساختیم
مرحله بعد اینه که این سوکت رو به یه آدرس آیپی و پورت وصل کنیم. برای اینکار باید توی سرور از تابع bind و توی کلاینت از connect استفاده کنیم. درواقع تابع بایند یه سوکت رو به یه آدرس لوکال مرتبط میکنه درحالیکه connect، سوکت رو به یه آدرس ریموت وصل میکنه. پروتوتایپ تابع connect به شکل زیر هست:
پروتوتایپ تابع بایند هم همین شکلی هست. نکتهای که باید اینجا موردتوجهمون باشه، sockaddr هست.
این استراکچر، یه فرمت عمومی برای آدرسدهی های مختلف توی پروتکلهای مختلف هست. یعنی آدرسهای ما توی هر پروتکلی باید نهایتا به پوینتری به این استراکچر تبدیل بشن.
اما برای پروتکل آیپی، استراکچر sockaddr_in رو داریم که دقیقا سایز یکسانی با sockaddr داره و شامل فیلدهای آیپی، پورت و پدینگ(برای رسیدن سایزش به سایز sockaddr میشه). پس کافیه از این استراکچر برای آدرسهامون استفاده کنیم و نهایتا موقع پاس دادنش به تابع connect، یه استاتیک کست ساده انجام بدیم.
نکته آخری که میمونه این هست که باید توی استراکچر sockaddr_in، پورت و آیپی به شکل big endian ذخیره بشن درحالیکه کامپایلرما little endian هست. برای این مورد هم یه سری تابع آماده داریم به اسمهای htons و inet_aton که در پستهای بعدی توضیح خواهم داد
ادامه دارد:)
#Linux
#Programming
#Network
فرض کنید بخوایم یه سرور بسازیم که دیتا رو از طریق tcp یا udp از چندتا کلاینت دریافت کنیم. به چه مراحلی نیاز خواهیم داشت؟
اول از همه باید یه سوکت بسازیم. سوکت توی لینوکس فقط یه فایله که لایه ابسترکشن حساب میشه. اینجوری که بعد از تنظیم و وصل کردن به آیپی کلاینت، اگه توش چیزی بنویسیم، عملا داریم به اون کلاینت دیتا رو منتقل میکنیم و اگه بخونیم، دیتایی رو میخونیم که اون کلاینت برای ما فرستاده
پس اولین مرحله میشه ساختن سوکت که با تابع socket از هدرفایل sys/socket.h صورت میگیره. مثلا اگه یه سوکت برای ارتباط tcp خواسته باشیم، کافیه خط زیر رو وارد کنیم
int file_desc = socket(PF_INET, SOCK_STREM, 0);
پارامتر اول تابع خانواده پروتکل مدنظرمون هست که اینجا برای IPv4 باید PF_INET باشه. پارامتر دوم نوع سوکت مدنظرمونه که اینجا برای tcp، مقدار SOCK_STREAM قرار داده شده. پارامتر آخر هم همیشه صفره(دقیق نمیدونم چیه)
خب. تا الان یه سوکت ساختیم
مرحله بعد اینه که این سوکت رو به یه آدرس آیپی و پورت وصل کنیم. برای اینکار باید توی سرور از تابع bind و توی کلاینت از connect استفاده کنیم. درواقع تابع بایند یه سوکت رو به یه آدرس لوکال مرتبط میکنه درحالیکه connect، سوکت رو به یه آدرس ریموت وصل میکنه. پروتوتایپ تابع connect به شکل زیر هست:
int connect (int fd, struct sockaddr* remote_addr, socklen_t* size)
پروتوتایپ تابع بایند هم همین شکلی هست. نکتهای که باید اینجا موردتوجهمون باشه، sockaddr هست.
این استراکچر، یه فرمت عمومی برای آدرسدهی های مختلف توی پروتکلهای مختلف هست. یعنی آدرسهای ما توی هر پروتکلی باید نهایتا به پوینتری به این استراکچر تبدیل بشن.
اما برای پروتکل آیپی، استراکچر sockaddr_in رو داریم که دقیقا سایز یکسانی با sockaddr داره و شامل فیلدهای آیپی، پورت و پدینگ(برای رسیدن سایزش به سایز sockaddr میشه). پس کافیه از این استراکچر برای آدرسهامون استفاده کنیم و نهایتا موقع پاس دادنش به تابع connect، یه استاتیک کست ساده انجام بدیم.
نکته آخری که میمونه این هست که باید توی استراکچر sockaddr_in، پورت و آیپی به شکل big endian ذخیره بشن درحالیکه کامپایلرما little endian هست. برای این مورد هم یه سری تابع آماده داریم به اسمهای htons و inet_aton که در پستهای بعدی توضیح خواهم داد
ادامه دارد:)
#Linux
#Programming
#Network
🔥2
نوشتن کل tcp/ip suite از ابتدا:
https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
#Programming
#Network
https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
#Programming
#Network
saminiir's hacker blog
Let's code a TCP/IP stack, 1: Ethernet & ARP
Writing your own TCP/IP stack may seem like a daunting task. Indeed, TCP has accumulated many specifications over its lifetime of more than thirty years. The core specification, however, is seemingly compact[^tcp-roadmap] - the important parts being TCP header…