🟣 پیاده سازی APC Injection در C
تکنیک APC Injection یکی دیگر از روش های تزریق و اجرای کد در پروسه های دیگر است . در این پست به بررسی اینکه APC در ویندوز چیست و چگونه بدافزار ها از آن برای تزریق کد استفاده میکنند میپردازیم
https://mrpythonblog.ir/apc-injection
#MalwareDevelopment
🆔 : @mrpythonblog
تکنیک APC Injection یکی دیگر از روش های تزریق و اجرای کد در پروسه های دیگر است . در این پست به بررسی اینکه APC در ویندوز چیست و چگونه بدافزار ها از آن برای تزریق کد استفاده میکنند میپردازیم
https://mrpythonblog.ir/apc-injection
#MalwareDevelopment
🆔 : @mrpythonblog
🤩7🔥5❤2😢2
#معرفی_منبع
داخل یکی از پست هامون ، به طور کامل توضیح دادیم اصلا shellcode چیه و چجوری اجرا میشه . یه سری کد به زبان C هم نوشتیم که میتونست برامون یه shellcode رو launch کنه .
دوتا منبع میخوام امروز بهتون معرفی کنم در باب نوشتن shellcode های ویندوزی . اینکه چجوری خودمون به زبان اسمبلی برای ویندوز shellcode بنویسیم . پیش نیازش هم آشنایی با اسمبلی x86 هستش .
اولین منبع لینک زیر هستش :
https://idafchev.github.io/exploit/2017/09/26/writing_windows_shellcode.html
دومین منبع هم فایل pdf هست که در ادامه میفرستم خدمتتون
دقت کنید هر دو این منابع درمورد shellcode در ویندوز های ۳۲ بیتی صحبت کردند ولی نوشتن shellcode در ویندوز های ۶۴ بیتی ها بسیار شبیه همیناس . یه تفاوت های کوچیکی (مثلا در بخش پیدا کردن آدرس PEB پروسه) داره که با یه جستجو ساده پیداش میکنید .
🆔 : @mrpythonblog
داخل یکی از پست هامون ، به طور کامل توضیح دادیم اصلا shellcode چیه و چجوری اجرا میشه . یه سری کد به زبان C هم نوشتیم که میتونست برامون یه shellcode رو launch کنه .
دوتا منبع میخوام امروز بهتون معرفی کنم در باب نوشتن shellcode های ویندوزی . اینکه چجوری خودمون به زبان اسمبلی برای ویندوز shellcode بنویسیم . پیش نیازش هم آشنایی با اسمبلی x86 هستش .
اولین منبع لینک زیر هستش :
https://idafchev.github.io/exploit/2017/09/26/writing_windows_shellcode.html
دومین منبع هم فایل pdf هست که در ادامه میفرستم خدمتتون
دقت کنید هر دو این منابع درمورد shellcode در ویندوز های ۳۲ بیتی صحبت کردند ولی نوشتن shellcode در ویندوز های ۶۴ بیتی ها بسیار شبیه همیناس . یه تفاوت های کوچیکی (مثلا در بخش پیدا کردن آدرس PEB پروسه) داره که با یه جستجو ساده پیداش میکنید .
🆔 : @mrpythonblog
Telegram
Mr Python | مستر پایتون
🔴 شلکد (Shellcode) چیست و چگونه اجرا میشود ؟
در این مطلب به بررسی اینکه Shellcode چیست و روش اجرای Shellcode با زبان C و در سیستم عامل ویندوز خواهیم پرداخت .
https://mrpythonblog.ir/shellcode
#توسعه_بدافزار
🆔 : @mrpythonblog
در این مطلب به بررسی اینکه Shellcode چیست و روش اجرای Shellcode با زبان C و در سیستم عامل ویندوز خواهیم پرداخت .
https://mrpythonblog.ir/shellcode
#توسعه_بدافزار
🆔 : @mrpythonblog
👍5
🔴 ساختار فایل PE قسمت ۴ - واردات (Imports)
در قسمت قبلی صادرات فایل های PE را بررسی کردیم . قطعا وقتی بحث صادرات را داریم ، از طرفی واردات را هم خواهیم داشت . فایل های PE در ویندوز میتوانند توابع صادراتی فایل های دیگر را وارد (Import) کرده و از آن ها استفاده کنند. این رفتار مستلزم این است که خود فایل های PE دیگر که از صادرات آن ها استفاده میکنیم نیز در حافظه بارگذاری شوند که این کار وظیفه ی Loader ویندوز است .
https://mrpythonblog.ir/pe4
#pe
🆔 : @mrpythonblog
در قسمت قبلی صادرات فایل های PE را بررسی کردیم . قطعا وقتی بحث صادرات را داریم ، از طرفی واردات را هم خواهیم داشت . فایل های PE در ویندوز میتوانند توابع صادراتی فایل های دیگر را وارد (Import) کرده و از آن ها استفاده کنند. این رفتار مستلزم این است که خود فایل های PE دیگر که از صادرات آن ها استفاده میکنیم نیز در حافظه بارگذاری شوند که این کار وظیفه ی Loader ویندوز است .
https://mrpythonblog.ir/pe4
#pe
🆔 : @mrpythonblog
👍1
🟣 تزریق کد بوسیله تکنیک RWX-Memory Hunting
تکنیک RWX-Memory Hunting روشی بسیار ساده برای تزریق کد به پروسه های دیگر است . همانطور که از اسم این تکنیک بر می آید ، به حافظه کل پروسه های سیستم سرک میکشیم ، به محض اینکه یک قسمت از حافظه در پروسه دیگری با حالت RWX ( قابل خواندن ، نوشتن و اجرا کردن) پیدا کردیم ، یک shellcode درون آن مینویسیم و یک thread برای اجرای آن shellcode میسازیم (دقیقا کاری که در “تزریق کد کلاسیک” انجام میدادیم) .
https://mrpythonblog.ir/rwx-memory-hunting/
#MalwareDevelopment
🆔 : @mrpythonblog
تکنیک RWX-Memory Hunting روشی بسیار ساده برای تزریق کد به پروسه های دیگر است . همانطور که از اسم این تکنیک بر می آید ، به حافظه کل پروسه های سیستم سرک میکشیم ، به محض اینکه یک قسمت از حافظه در پروسه دیگری با حالت RWX ( قابل خواندن ، نوشتن و اجرا کردن) پیدا کردیم ، یک shellcode درون آن مینویسیم و یک thread برای اجرای آن shellcode میسازیم (دقیقا کاری که در “تزریق کد کلاسیک” انجام میدادیم) .
https://mrpythonblog.ir/rwx-memory-hunting/
#MalwareDevelopment
🆔 : @mrpythonblog
👍2
🔴 ساختار فایل PE قسمت ۵ – Relocation ها
مشکل از آنجایی شروع میشود که ویندوز ، همیشه فایل های PE را در آن آدرسی از حافظه که انتظار میرود بارگذاری نمیکند و در این صورت خیلی از چیز ها بهم میریزد ! در این بخش از ساختار فایل PE به بررسی Relocation ها در فایل PE میپردازیم . اینکه اصلا Relocation به چه معناست و در فایل PE چگونه پیاده سازی میشود .
https://mrpythonblog.ir/pe5
#pe
🆔 : @mrpythonblog
مشکل از آنجایی شروع میشود که ویندوز ، همیشه فایل های PE را در آن آدرسی از حافظه که انتظار میرود بارگذاری نمیکند و در این صورت خیلی از چیز ها بهم میریزد ! در این بخش از ساختار فایل PE به بررسی Relocation ها در فایل PE میپردازیم . اینکه اصلا Relocation به چه معناست و در فایل PE چگونه پیاده سازی میشود .
https://mrpythonblog.ir/pe5
#pe
🆔 : @mrpythonblog
👍2
دوستان این آخرین قسمت فایل PE بود . این آخر فایل PE نیست . ولی تا اینجا هرچیزی که ما در پست های بعدی مهندسی معکوس و توسعه بدافزار بهش نیاز داریم رو گفتیم .
در پست های بعدی از این چیزایی که گفتیم استفاده میکنیم
و احتمالا برای جمع بندی PE یک لودر فایل PE به زبان C بنویسیم به زودی ...
در پست های بعدی از این چیزایی که گفتیم استفاده میکنیم
و احتمالا برای جمع بندی PE یک لودر فایل PE به زبان C بنویسیم به زودی ...
👍4🙏2
🟣 دوره ابزار نویسی شبکه با پایتون
هدف اصلی ما در این دوره فهم کارکرد و الگوریتم برخی از ابزار های مرسوم اسکن و نفوذ شبکه است . در این دوره تکنیک های رایج تست نفوذ شبکه را مورد بررسی قرار داده ایم و هرکدام از آن هارا به صورت عملی با استفاده از زبان پایتون پیاده سازی کرده ایم .
لینک صفحه دوره به همراه توضیحات تکمیلی و سرفصل محتوای دوره :
https://mrpythonblog.ir/product/%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%d8%a8%da%a9%d9%87-%d8%a8%d8%a7-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86/
🆔 : @mrpythonblog
هدف اصلی ما در این دوره فهم کارکرد و الگوریتم برخی از ابزار های مرسوم اسکن و نفوذ شبکه است . در این دوره تکنیک های رایج تست نفوذ شبکه را مورد بررسی قرار داده ایم و هرکدام از آن هارا به صورت عملی با استفاده از زبان پایتون پیاده سازی کرده ایم .
لینک صفحه دوره به همراه توضیحات تکمیلی و سرفصل محتوای دوره :
https://mrpythonblog.ir/product/%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%d8%a8%da%a9%d9%87-%d8%a8%d8%a7-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86/
🆔 : @mrpythonblog
👍3🔥1👏1
Mr Python | مستر پایتون
🟣 دوره ابزار نویسی شبکه با پایتون هدف اصلی ما در این دوره فهم کارکرد و الگوریتم برخی از ابزار های مرسوم اسکن و نفوذ شبکه است . در این دوره تکنیک های رایج تست نفوذ شبکه را مورد بررسی قرار داده ایم و هرکدام از آن هارا به صورت عملی با استفاده از زبان پایتون…
بخش های دوره ابزارنویسی شبکه با پایتون :
🔸بخش اول : مفاهیم شبکه (ارائه شده به صورت رایگان)
🔸بخش دوم : سوکت نویسی پایتون (ارائه شده به صورت رایگان)
🔸بخش سوم : برنامه نویسی همروندی و موازی در پایتون (ارائه شده به صورت رایگان)
🔸بخش چهارم : Scapy
🔸بخش پنجم : ابزارنویسی
ابزار های نوشته شده در این دوره :
🆔 : @mrpythonblog
🔸بخش اول : مفاهیم شبکه (ارائه شده به صورت رایگان)
🔸بخش دوم : سوکت نویسی پایتون (ارائه شده به صورت رایگان)
🔸بخش سوم : برنامه نویسی همروندی و موازی در پایتون (ارائه شده به صورت رایگان)
🔸بخش چهارم : Scapy
🔸بخش پنجم : ابزارنویسی
ابزار های نوشته شده در این دوره :
Ping
Traceroute
Ping Sweep
ARP Scanner
Connect Scanner
SYN Scanner
UDP Scanner
SYN Flooder
ARP Spoofer
DNS Hijacker
FTP Cracker
Telnet Cracker
HTTP / HTTPS Cracker
ICMP Tunnelling For Shell access
🆔 : @mrpythonblog
❤6👍3
🟣 جاسازی Shellcode در فایل اجرایی exe
در اینجا میخواهیم ببینیم چطور میتوان یک Shellcode را در یک فایل اجرایی ویندوزی جاسازی کرد به طوری که با اجرای فایل اجرایی آلوده ، ابتدا Shellcode به صورت مخفیانه اجرا شده و سپس محتوای عادی فایل اجرایی شروع به اجرا شدن میکنند طوری که همه چیز عادی به نظر برسد .
https://mrpythonblog.ir/embedding-shellcode-in-pe/
#توسعه_بدافزار
🆔 : @mrpythonblog
در اینجا میخواهیم ببینیم چطور میتوان یک Shellcode را در یک فایل اجرایی ویندوزی جاسازی کرد به طوری که با اجرای فایل اجرایی آلوده ، ابتدا Shellcode به صورت مخفیانه اجرا شده و سپس محتوای عادی فایل اجرایی شروع به اجرا شدن میکنند طوری که همه چیز عادی به نظر برسد .
https://mrpythonblog.ir/embedding-shellcode-in-pe/
#توسعه_بدافزار
🆔 : @mrpythonblog
👍7🔥3
#معرفی_منبع
Wokwi
یک سایت خیلی باحال و خوب برای شبیه سازی برد های Arduino , ESP32 , STM32 , Raspberry pi , ...
شبیه ساز این سایت همچنین انواع مختلفی از المان های ورودی / خروجی که ممکنه در پروژه هاتون نیاز داشته باشید رو میتونه شبیه سازی کنه (LED , MOTOR , LCD , KEYPAD , ...)
دارای کامپایلر زبان های برنامه نویسی مربوط به هر برد انتخابی .
آدرس سایت : https://wokwi.com
🆔 : @mrpythonblog
Wokwi
یک سایت خیلی باحال و خوب برای شبیه سازی برد های Arduino , ESP32 , STM32 , Raspberry pi , ...
شبیه ساز این سایت همچنین انواع مختلفی از المان های ورودی / خروجی که ممکنه در پروژه هاتون نیاز داشته باشید رو میتونه شبیه سازی کنه (LED , MOTOR , LCD , KEYPAD , ...)
دارای کامپایلر زبان های برنامه نویسی مربوط به هر برد انتخابی .
آدرس سایت : https://wokwi.com
🆔 : @mrpythonblog
👍7❤1
Screencast from 23-12-27 175400.webm
495.4 KB
همچنین این سایت خودش یکسری پروژه از پیش تعریف شده داره که به عنوان نمونه آموزشی میتونید بخونیدشون .
برای مثال این ویدیو که پروژه گاوصندق الکترونیکی با آردوینو هستش
🆔 : @mrpythonblog
برای مثال این ویدیو که پروژه گاوصندق الکترونیکی با آردوینو هستش
🆔 : @mrpythonblog
گاهی اوقات ، backdoor ها آسیب پذیری های امنیتی هستند که به صورت کاملا عمدی و حساب شده توسط سازنده ها کاشته شده اند ...
ترجمه بخشی از کتاب The Rootkit Arsenal نوشته Bill Blunden :
در جولای سال 2007 ، یک دانشجوی کانادایی به نام Alex Ionescu ابزاری به نام Purple Pill ساخت و در وبلاگ خود منتشر کرد . این ابزار از یک آسیب پذیری در یکی از درایور های امضا شده ATI استفاده میکرد تا بتونه در حافظه کرنل ویندوز ، داده بنویسه و از این طریق درایور های مخربی که امضا شده نیستند رو بارگذاری کنه .
بعد از چند هفته ATI آسیب پذیری موجود در درایورش رو رفع کرد .
فکر میکنید چند تا درایور دیگه امکان داره وجود داشته باشن که آسیب پذیری مشابه درایور ATI رو داشته باشن ؟ آیا این آسیب پذیری ها واقعا فقط یک آسیب پذیری شانسی بودن ؟
در دنیایی که هک های دولتی به یک واقعیت تبدیل شده اند، کاملا محتمل هستش که یک درایور سخت افزاری به طور عمدی حاوی یک backdoor باشه که به صورت کاملا ظریفی در قالب یک باگ امنیتی جاساز شده است .
در این صورت اگر زمانی یک شخصی این آسیب پذیری رو متوجه بشه و به صورت عمومی منتشر کنه ، سازنده درایور کاملا ادعای بی گناهی میکنه و اون آسیب پذیری رو patch میکنه (به جاش یک آسیب پذیری جدیدتر در آپدیت بعدی خواهیم داشت :) )
🆔 : @mrpythonblog
ترجمه بخشی از کتاب The Rootkit Arsenal نوشته Bill Blunden :
در جولای سال 2007 ، یک دانشجوی کانادایی به نام Alex Ionescu ابزاری به نام Purple Pill ساخت و در وبلاگ خود منتشر کرد . این ابزار از یک آسیب پذیری در یکی از درایور های امضا شده ATI استفاده میکرد تا بتونه در حافظه کرنل ویندوز ، داده بنویسه و از این طریق درایور های مخربی که امضا شده نیستند رو بارگذاری کنه .
بعد از چند هفته ATI آسیب پذیری موجود در درایورش رو رفع کرد .
فکر میکنید چند تا درایور دیگه امکان داره وجود داشته باشن که آسیب پذیری مشابه درایور ATI رو داشته باشن ؟ آیا این آسیب پذیری ها واقعا فقط یک آسیب پذیری شانسی بودن ؟
در دنیایی که هک های دولتی به یک واقعیت تبدیل شده اند، کاملا محتمل هستش که یک درایور سخت افزاری به طور عمدی حاوی یک backdoor باشه که به صورت کاملا ظریفی در قالب یک باگ امنیتی جاساز شده است .
در این صورت اگر زمانی یک شخصی این آسیب پذیری رو متوجه بشه و به صورت عمومی منتشر کنه ، سازنده درایور کاملا ادعای بی گناهی میکنه و اون آسیب پذیری رو patch میکنه (به جاش یک آسیب پذیری جدیدتر در آپدیت بعدی خواهیم داشت :) )
🆔 : @mrpythonblog
👍9
🔴 ساخت Rubber Ducky با آردوینو Leonardo
در قسمت قبلی مجموعه rubber ducky به بررسی نحوه ساخت rubber ducky با استفاده از آردوینو مدل UNO پرداختیم که مشاهده کردیم دردسر زیادی داشت . از آنجایی که میکروکنترلر اصلی مدل UNO ماژول USB ساپورت نمیکرد مجبور به تغییر Firmware یکی از میکروکنترلر های برد بودیم . اما در این قسمت میبینیم چگونه میتوان با استفاده از آردوینو Leonardo به راحتی بدونه هیچ تغییر Firmware به هدفمان برسیم …
Aparat : https://www.aparat.com/v/4vrJF
Web : https://mrpythonblog.ir/arduino-leonardo-rubber-ducky/
🆔 : @mrpythonblog
در قسمت قبلی مجموعه rubber ducky به بررسی نحوه ساخت rubber ducky با استفاده از آردوینو مدل UNO پرداختیم که مشاهده کردیم دردسر زیادی داشت . از آنجایی که میکروکنترلر اصلی مدل UNO ماژول USB ساپورت نمیکرد مجبور به تغییر Firmware یکی از میکروکنترلر های برد بودیم . اما در این قسمت میبینیم چگونه میتوان با استفاده از آردوینو Leonardo به راحتی بدونه هیچ تغییر Firmware به هدفمان برسیم …
Aparat : https://www.aparat.com/v/4vrJF
Web : https://mrpythonblog.ir/arduino-leonardo-rubber-ducky/
🆔 : @mrpythonblog
👍5
🔴 رمزنگاری حافظه های جانبی با فایل سیستم eCryptfs در لینوکس
فایل سیستم های رمزنگاری (Cryptographic Filesystems) نوعی از فایل سیستم ها هستند که به شما اجازه میدن تا فایل هایی که قصد دارید روی یک پارتیشن حافظه جانبی ذخیره کنید ، به صورت رمزگذاری شده ذخیره بشن تا محرمانگی اون ها حفظ بشه . در این ویدیو میبینیم چطور میتونیم با بهره گیری از فایل سیستم eCryptfs ، فایل های هرنوع حافظه جانبی مثل فلش مموری ، Hard Disk و … رو رمزنگاری کنیم .
Aparat : https://www.aparat.com/v/ULG5Q
🆔 : @mrpythonblog
فایل سیستم های رمزنگاری (Cryptographic Filesystems) نوعی از فایل سیستم ها هستند که به شما اجازه میدن تا فایل هایی که قصد دارید روی یک پارتیشن حافظه جانبی ذخیره کنید ، به صورت رمزگذاری شده ذخیره بشن تا محرمانگی اون ها حفظ بشه . در این ویدیو میبینیم چطور میتونیم با بهره گیری از فایل سیستم eCryptfs ، فایل های هرنوع حافظه جانبی مثل فلش مموری ، Hard Disk و … رو رمزنگاری کنیم .
Aparat : https://www.aparat.com/v/ULG5Q
🆔 : @mrpythonblog
🙏6❤1👍1
#معرفی_منبع
Cracking Codes With Python
شکستن کد ها با پایتون
قطعا این کتاب یکی از کتاب های مورد علاقه من در حوزه تحلیل رمز کلاسیک هستش .
محتوای این کتاب در ابتدا با مفاهیم اولیه پایتون شروع میشه تا خواننده دانش اولیه پایتون رو بدست بیاره . سپس شروع میکنه الگوریتم های رمزنگاری کلاسیک رو از ساده تا الگوریتم های سخت تر شرح میده . در مورد هر الگوریتم رمزنگاری ابتدا نحوه پیاده سازی (رمزگذاری و رمزگشایی) اون الگوریتم در زبان پایتون رو بررسی میکنه و سپس (بخش جالب !) روش های شکستن اون الگوریتم با استفاده از زبان پایتون !
هرچند اکثر محتوای کتاب درباره رمزنگاری های کلاسیک است ، اما در اخر کتاب چند مبحث از رمزنگاری های مدرن مثل الگوریتم های نامتقارن و پیاده سازی برخی از آن ها نیز مطرح میشود که بسیار جالب است .
🆔 : @mrpythonblog
Cracking Codes With Python
شکستن کد ها با پایتون
قطعا این کتاب یکی از کتاب های مورد علاقه من در حوزه تحلیل رمز کلاسیک هستش .
محتوای این کتاب در ابتدا با مفاهیم اولیه پایتون شروع میشه تا خواننده دانش اولیه پایتون رو بدست بیاره . سپس شروع میکنه الگوریتم های رمزنگاری کلاسیک رو از ساده تا الگوریتم های سخت تر شرح میده . در مورد هر الگوریتم رمزنگاری ابتدا نحوه پیاده سازی (رمزگذاری و رمزگشایی) اون الگوریتم در زبان پایتون رو بررسی میکنه و سپس (بخش جالب !) روش های شکستن اون الگوریتم با استفاده از زبان پایتون !
هرچند اکثر محتوای کتاب درباره رمزنگاری های کلاسیک است ، اما در اخر کتاب چند مبحث از رمزنگاری های مدرن مثل الگوریتم های نامتقارن و پیاده سازی برخی از آن ها نیز مطرح میشود که بسیار جالب است .
🆔 : @mrpythonblog
🔥2
Mr Python | مستر پایتون
#معرفی_منبع Cracking Codes With Python شکستن کد ها با پایتون قطعا این کتاب یکی از کتاب های مورد علاقه من در حوزه تحلیل رمز کلاسیک هستش . محتوای این کتاب در ابتدا با مفاهیم اولیه پایتون شروع میشه تا خواننده دانش اولیه پایتون رو بدست بیاره . سپس شروع میکنه…
در نظر دارم که محتوای کتاب معرفی شده (Cracking Codes With Python) رو به زبان فارسی آماده کنم . به نظرشما ترجمه متنی داشته باشیم یا یک دوره ویدیویی از کتاب ؟
Final Results
37%
متنی
63%
دوره ویدیویی
🔥6👍3
🟡 شکستن کد ها با پایتون - قسمت ۱ : رمزنگاری چیست ؟
خوش اومدین به اولین قسمت از دوره شکستن کد ها با پایتون (Cracking Codes With Python) که برگرفته از کتابی به همین نام است . در این دوره الگوریتم های رمزنگاری مختلف (غالبا کلاسیک) را یاد میگیریم ، در پایتون پیاده سازی میکنیم و سپس تلاش میکنیم تا اون ها رو بشکنیم و crack کنیم . در قسمت اول به تعاریف اولیه مورد نیاز رمزنگاری پرداخته ایم . با ما همراه باشید :))
Aparat : https://www.aparat.com/v/wdfxk
🆔 : @mrpythonblog
خوش اومدین به اولین قسمت از دوره شکستن کد ها با پایتون (Cracking Codes With Python) که برگرفته از کتابی به همین نام است . در این دوره الگوریتم های رمزنگاری مختلف (غالبا کلاسیک) را یاد میگیریم ، در پایتون پیاده سازی میکنیم و سپس تلاش میکنیم تا اون ها رو بشکنیم و crack کنیم . در قسمت اول به تعاریف اولیه مورد نیاز رمزنگاری پرداخته ایم . با ما همراه باشید :))
Aparat : https://www.aparat.com/v/wdfxk
🆔 : @mrpythonblog
👏11👍4