مجموعه آموزش های ابزارنویسی و مهندسی معکوس وبسایت مسترپایتون : https://mrpythonblog.ir ارتباط با ادمین : @MrPythonAdmin آپارات : https://aparat.com/mrpythonblog یوتیوب : https://youtube.com/@mrpythonblog
#معرفی_منبع
معرفی سه تا سایت باحال :
1⃣ https://malapi.io
یه لیستی از توابعی که داخل بدافزار ها استفاده میشه تفکیک شده بر اساس نوع بدافزار . روی هر تابع کلیک کنید اطلاعات و prototype توابع رو هم داره .
2⃣ https://filesec.io
یه لیستی از پسوند فایل هایی که توسط هکر ها استفاده میشه تفکیک شده بر اساس نوع حمله .
3⃣ https://lots-project.com
لیستی از دامنه هایی که توسط بدافزار ها استفاده میشه تفکیک شده براساس نوع بدافزار .
🆔 : @mrpythonblog
🔴 ساختار فایل PE قسمت ۳ – صادرات (Exports)
در سیستم عامل ویندوز ، فایل های PE میتوانند توابعی را صادر (export) کنند تا فایل های PE دیگر از طریق وارد (import) کردن ، از آن ها استفاده کنند . این رفتار را اغلب در فایل های DLL مشاهده میکنیم ولی در واقعیت هر فایل PE حتی فایل های اجرایی میتوانند export هایی داشته باشند .
https://mrpythonblog.ir/pe3
#pe
🆔 : @mrpythonblog
🟢 بررسی پروتکل Diffie Hellman و ریاضیات آن
یکی از مشکلاتی که الگوریتم های رمزنگاری متقارن دارن ، بحث تبادل کلیدشونه . این مشکل وقتی خیلی به چشم میاد که دو طرف ارتباط خیلی از هم دور باشن و مجبور باشن از طریق اینترنت یا ... سر یه کلید توافق کنن . مشکل اینجاست که ممکنه کسی اون وسط بتونه کلیدشون رو شنود کنه . دیفی هلمن اومده که این مشکلو حل کنه . یه الگوریتم ریاضیاتی که دو طرف ارتباط با استفاده از اون سر یک کلید یکسان توافق میکنن بدون اینکه با شنود ارتباط بین اونا بشه فهمید اون کلیده چی بوده !! :)
در این ویدیو ابتدا پیشنیاز های ریاضیاتی دیفی هلمن رو مطرح میکنیم ، یک سری قضیه اثبات میکنیم و سپس با استفاده از اون قضایا خیلی راحت دیفی هلمن رو درک میکنیم ... با ما همراه باشید :)
Aparat : https://www.aparat.com/v/CgS6U
🆔 : @mrpythonblog
🔴 برنامه نویسی موازی و همروندی در پایتون - کارگاه Multiprocessing
در آخرین قسمت از بخش موازی و همروندی در پایتون ، میرسیم به کارگاه Multiprocessing . همانطور که گفته شد بحث چندپردازشی یا همان multiprocessing مناسب کار های CPU Bound هستش که به ما اجازه میده محدودیت GIL در پایتون رو دور بزنیم و از سخت افزار خودمون استفاده بهتری ببریم .
Aparat : https://www.aparat.com/v/w6ngh
🆔 : @mrpythonblog
من میکروفونم خراب شده ظاهرا اینو با میکروفون گوشیم گرفتم کیفیت صداش پایین تر از قبلیاس . انشاءالله که مشکلی نیست
جنس فیک همینه 🥸
🔴 برنامه نویسی موازی و همروندی در پایتون - کارگاه Multithreading قسمت اول
در قسمت قبل توضیح دادیم که Multithreading در پایتون مناسب پروسه های IO Bound خواهد بود و در این قسمت از کارگاه Multithreading به بررسی نحوه ساخت و مدیریت thread ها با استفاده از کتابخونه ی threading در پایتون خواهیم پرداخت . در آخر ویدیو به عنوان یک تمرین عملی ، پروژه Echo Server که در بخش قبلی یعنی سوکت نویسی پیاده کردیم را با استفاده از multithreading طوری پیاده سازی میکنیم که همزمان بتواند به ده ها کلاینت پاسخ بدهد .
Aparat : https://www.aparat.com/v/WkLfs
🆔 : @mrpythonblog
🔴 سوکت نویسی در پایتون - کارگاه Datagram Socket
در قسمت آخر از بخش سوکت نویسی به پیاده سازی عملی سوکت های نوع Datagram میپردازیم .
Aparat : https://www.aparat.com/v/sP4LT
🆔 : @mrpythonblog
🔴 سوکت نویسی در پایتون - سوکت چیست و انواع آن
این ویدیو اولین قسمت از بخش سوکت نویسی هستش . در این قسمت به معرفی اولیه سوکت ها و انواع مهم آن ها میپردازیم . با ما همراه باشید .
Aparat : https://www.aparat.com/v/SvmUg
🆔 : @mrpythonblog
🔴 آموزش API Hooking در ویندوز
در اصل API Hooking تکنیکی هست که به وسیله ی اون میتونیم رفتار توابع API در سیستم عامل را برای یک پروسه خاص به دلخواه تغییر بدیم . در این ویدیو میبینیم این کار چطور انجام میشه (هم در ویندوز ۳۲ بیت و هم ۶۴ بیتی) . ابتدا به صورت دستی خودمون این تکنیک رو با استفاده از دیباگر x64dbg و ابزار Cheat Engine پیاده سازی میکنیم ، سپس کدی به زبان C مینویسیم که خودش خودکار اینکارو انجام بده .
Aparat : https://www.aparat.com/v/TN7j1
#توسعه_بدافزار
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل های انتقال فایل
در این قسمت به بررسی پروتکل های انتقال فایل در شبکه به خصوص FTP میپردازیم . به پروتکل هایی مثل FTPS , FTPES , SCP , SFTP نیز اشاراتی خواهیم داشت .
Aparat : https://www.aparat.com/v/ZoE1X
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل Telnet و SSH
در این قسمت به بررسی پروتکل های Telnet و SSH خواهیم پرداخت . طرز کارکرد TELNET رو بررسی میکنیم و میبینیم که چرا امن نیست و بهتره از SSH استفاده کنیم .
Aparat : https://www.aparat.com/v/lR2zm
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه DNS
در این قسمت به بررسی عملی پروتکل DNS میپردازیم . از ابزار nslookup در ویندوز و dig در لینوکس استفاده میکنیم تا کوئری های مختلف DNS رو ارسال کنیم و جواب آن ها را بررسی کنیم .
Aparat : https://www.aparat.com/v/SRIMs
🆔 : @mrpythonblog
#معرفی_منبع
یه سایت جالبی که بهش برخورد کردم این بود :
https://unprotect.it
این سایت یه دیتابیسیه از :
◽️تکنیک های گریز از سیستم های تشخیص نفوذ
◽️ پیاده سازی این تکنیک ها در زبان های برنامه نویسی مختلف
◽️و rule های مربوط به تشخیص این تکنیک ها در بدافزار ها
همچنین API هم برای جستوجو و کارکردن با پایگاه داده اش داره که داخل خود سایتش توضیح داده چجوری باید باهاش کار کرد .
🆔 : @mrpythonblog
#معرفی_منبع
The Ghidra Book : The Definitive Guide
این کتاب یکی از کامل ترین و بهترین منابع برای یادگیری Ghidra هستش .
گیدرا یک نرم افزار جامع جهت مهندسی معکوس نرم افزار هستش که برخی از نکات مثبتش که در تجربه شخصی دیدم به شرح زیر هستند :
- پشتیبانی از طیف وسیعی از معماری های پردازنده ها و فرمت فایل ها
- دارای Decompiler کد C
- دارای Disassembler خوب و قابل قبول
- قابلیت اتوماسیون و اسکریپت نویسی به زبان های جاوا و پایتون
- چند سکویی بودن و قابل اجرا در سیستم عامل های Windows , Linux و Mac
و هزاران ابزار و قابلیت خوب دیگر
این کتاب علاوه بر آموزش خود گیدرا ، یکسری از تکنیک های مهندسی معکوس رو هم به شما یاد میده و در بخشای عملی از اونا استفاده میکنه که این خیلی خوبه
🆔 : @mrpythonblog
🔴 ساختار فایل PE قسمت ۲ – Section ها
در قسمت قبلی مجموعه ساختار فایل های PE ، به بررسی بخش DOS HEADER & DOS STUB و NT HEADERS در فایل های PE پرداختیم . در این قسمت به بررسی Section های یک فایل PE خواهیم پرداخت .
https://mrpythonblog.ir/pe2
#pe
🆔 : @mrpythonblog
سلام .
الگوریتم های رمزنگاری متقارن ، یعنی اونایی که از یک کلید برای هر دو عمل رمزگذاری و رمزگشاییشون استفاده میکنن ، یه مشکلی دارن و اونم بحث به اشتراک گذاری این کلید بین افراد ارتباط هستش .
اگر قرار باشه همینجوری عادی این کلید رو بین هم دیگه به اشتراک بذاریم که خب یکی اون وسط میتونه شنودش کنه . پس باید یه روش امنی برای به اشتراک گذاریش پیدا کنیم .
یه روشش اینه که مثلا همون اول ارتباط از یک الگوریتم نامتقارن ، یعنی اونایی که کلید عمومی خصوصی دارن ، استفاده کنیم تا اون کلید متقارنه رو انتقال بدیم به افراد و بعد از اون کلید برای رمزنگاری های آینده با استفاده از الگوریتم های متقارن استفاده کنیم .
در همین راستا یه الگوریتمی وجود داره به اسم Diffie hellman که میاد یه روش امن برای توافق سر یک کلید مشترک برای رمزنگاری متقارن ارائه میده . یک الگوریتم تبادل کلید هستش . دو طرف ارتباط با استفاده از این الگوریتم ، طی یک پروسه ریاضیاتی به یه کلید مشترک میرسن بدونه اینکه بخوان مستقیما بین هم به اشتراک بذارنش تا خدای نکرده کسی شنودش کنه . نهایتا کسی با شنود ترافیک مربوط به الگوریتم diffie hellman به کلیدا دست پیدا نمیکنه .
جالبه بدونید پروتکل های معروفی مثل SSH , TLS/SSL و ... از Diffie Hellman برای تبادل کلید اولیه شون استفاده میکنن
انشاءالله اگه مشکلی پیش نیاد طی این چند روز یه ویدیو آماده میکنم و داخلش کامل با نحوه کارکرد Diffie Hellman آشنا میشیم و از نظر ریاضیاتی هم اثباتش میکنیم . خیلی باحاله :)
🔴 برنامه نویسی موازی و همروندی در پایتون - کارگاه Multithreading قسمت آخر
در ادامه ی کارگاه multithreading به مفهوم Race Condition و نحوه استفاده از Lock ها جهت همگام سازی thread ها در پایتون میپردازیم .
Aparat : https://www.aparat.com/v/cKw7b
🆔 : @mrpythonblog
🔴 برنامه نویسی موازی و همروندی در پایتون - مفاهیم اولیه
این قسمت اولین قسمت از بخش برنامه نویسی موازی و همروندی هستش و موضوع این بخش این است که چگونه میتوانیم در برنامه نویسی پایتون ، چندین کار را در یک بازه زمانی مشخص همزمان پیش ببریم . در این قسمت به بررسی مفاهیم اولیه این بخش مثل برنامه نویسی همروندی ، موازی ، Thread ها و Multithreading , پروسه ها و Multiprocessing خواهیم پرداخت .
Aparat : https://www.aparat.com/v/FTRyg
🆔 : @mrpythonblog
🔴 سوکت نویس در پایتون - کارگاه Stream Socket
در قسمت دوم از بخش سوکت نویسی ، به پیاده سازی عملی سوکت های Stream میپردازیم .
Aparat : https://www.aparat.com/v/cWU0g
🆔 : @mrpythonblog
داخل زبان های خانواده C (به طور خاص C و ++C) ، برای سخت تر کردن پروسه مهندسی معکوس ، یه نکته ساده امنیتی اینه که توابع مهم امنیتی مثل چک کردن کلید سریال ، بررسی وجود دیباگر و .... رو به صورت inline تعریف کنید .
دلیلشم اینه که اگر مثلا شما ۵ جای برنامتون یکی از این توابع رو صدا میزنید ، اگه تابع رو به صورت عادی و بدون inline تعریف کرده باشید کامپایلر داخل هر کدوم از اون ۵ نقطه یک دستور فراخوانی (CALL) به تابع مورد نظر قرار میده .
کسی که داره مهندسی معکوس میکنه کافیه اون تابع مورد نظر رو پیدا کنه و خنثی کنه . اینجوری هر ۵ تا نقطه ای که به اون تابع فراخوانی میزدن از کار میافتن . این مثل یه جور نقطه شکست مرکزی تو سیستم میمونه (Single Point of Failure) .
اما در صورتی که تابع رو inline تعریف کرده باشید , تو هر کدوم از اون ۵ نقطه ای که تابع رو فراخوانی کردید ، کامپایلر دقیقا کد اون تابع مورد نظر رو عینا قرار میده و هیچ فراخوانی تابعی انجام نمیشه . اینجوری کسی که داره مهندسی معکوس میکنه برعکس مورد قبلی باید ۵ نقطه متفاوت از برنامه رو خنثی کنه .
خب قطعا این تکنیک میتونه باعث افزایش حجم کد بشه ولی گاهی اوقات بصرفه است .
🆔 : @mrpythonblog
📌 محتوای لینک شده دوره مفاهیم شبکه که تقدیمتون شد :
قسمت ۱ : شرح مدل OSI
------ پروتکل های لایه شبکه ------
قسمت ۲ : پروتکل ARP
قسمت ۳ : پروتکل اینترنت (IP)
قسمت ۴ : پروتکل ICMP
قسمت ۵ : کارگاه لایه شبکه
------ پروتکل های لایه انتقال ------
قسمت ۶ : پروتکل UDP
قسمت ۷ : پروتکل TCP
قسمت ۸ : کارگاه لایه انتقال
------ پروتکل های لایه کاربر ------
قسمت ۹ : پروتکل HTTP , HTTPS
قسمت ۱۰ : کارگاه HTTP , HTTPS
قسمت ۱۱ : پروتکل DNS
قسمت ۱۲ : کارگاه DNS
قسمت ۱۳ : پروتکل Telnet و SSH
قسمت ۱۴ : کارگاه Telnet و SSH
قسمت ۱۵ : پروتکل های انتقال فایل
قسمت ۱۶ : کارگاه انتقال فایل
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه انتقال فایل
در این قسمت به بررسی عملی پروتکل های FTP , SCP و SFTP میپردازیم . سرور FTP,SSH اجرا خواهیم کرد و با کلاینت ویندوزی جهت انتقال فایل با آن ارتباط برقرار میکنیم . همچنین ترافیک FTP رو با wireshark شنود و بررسی میکنیم .
Aparat : https://www.aparat.com/v/pDyXE
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه Telnet و SSH
در این قسمت به بررسی عملی پروتکل های Telnet , SSH خواهیم پرداخت . سرور های Telnet و SSH اجرا خواهیم کرد و با کلاینت های ویندوزی به آن ها وصل میشیم . در کنار اینکه ترافیک اونا رو شنود میکنیم تا ببینیم چه خبره داخلشون ، کارکردشونم بررسی میکنیم
Aparat : https://www.aparat.com/v/8RFNz
🆔 : @mrpythonblog
🔴 ساختار فایل PE قسمت 1 – header ها
در این پست که اولین قسمت از مجموعه ساختار فایل PE است به بررسی header های PE میپردازیم .
https://mrpythonblog.ir/pe1
#pe
🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل DNS
در این ویدیو و در ادامه پروتکل های لایه Application به تشریح کارکرد پروتکل DNS خواهیم پرداخت .
Aparat : https://www.aparat.com/v/bsvyq
🆔 : @mrpythonblog
❔آیا واقعا در دنیای واقعی میشه الیوت آلدرسون بود ؟
تا چه حد فعالیت های هکینگ داخل این فیلم در مقیاس واقعی قابل پیاده سازیه ؟
خب اکثر کارای الیوت توی واقعیت قابل پیاده سازی هستن یعنی این سریال از دید فنی قضیه تخیلی نیست و بر مبنای واقعیت این موضوع ساخته شده .
اما یه نکته ای هست . نکته زمان انجام این کار هاست . اکثر کار های الیوت رو احتمالا میتونیم تو واقعیت انجام بدیم اما نه طی اون زمانی که الیوت تو فیلم انجام میداد . تو واقعیت احتمالا خیلی بیشتر زمان میبره .
البته طبیعی هم هست که سازنده های این سریال به این موضوع توجه نکنند و کار های هکینگ رو طی یک زمان غیر واقعی نمایش بدن . قطعا ما نمیخوایم داستان سریال یک هفته متوقف بشه به خاطر اینکه الیوت بتونه پسوورد اکانت تایرل ولیک رو کرک کنه !
❔میشه از الیوت تو دنیای واقعی الگو گرفت ؟
به نظر من مهمترین ویژگی الیوت که میشه تو دنیای واقعی ازش الگو گرفت خلاقیتش در حل مسائل تو شرایط پیچیدس . مهم نبود شرایط چقدر سخت باشه ، نهایتا الیوت با یه تمرکز فوق العاده و استفاده خلاقانه از تکنیک ها و ابزار هایی که در اختیارش بود مسائل رو حل میکرد .
🆔 : @mrpythonblog
🔴 آموزش تکنیک Disassembly Desynchronization
به کار بردن تکنیک Disassembly Desynchronization در یک بدافزار موجب میشود تا نرم افزار های Disassembler نتوانند به درستی کد باینری آن بدافزار را disassemble کنند . یک روش ضد مهندسی معکوس ایستا (anti static reversing) است که غالبا بدافزار ها برای سخت و پیچیده کردن پروسه مهندسی معکوس ایستا به کار میبرند . دقت کنید همانطور که گفته شد این روش فقط مهندسی معکوس ایستا را مورد هدف قرار میدهد و تاثیری در مهندسی معکوس پویا ندارد .
https://mrpythonblog.ir/disassembly-desynchronization
#توسعه_بدافزار
#anti_reversing
🆔 : @mrpythonblog