uz
Feedback
ReverseEngineering

ReverseEngineering

Kanalga Telegram’da o‘tish
1 265
Obunachilar
Ma'lumot yo'q24 soatlar
-37 kun
+730 kun
Postlar arxiv
💡تکنیک‌های Anti-Debug دشمن شماره یک دیباگرها! نرم‌افزارهایی که نمی‌خوان مهندسی معکوس بشن معمولا از تکنیک‌هایی استفاده میکنن که اگه دیباگر یا ابزار تحلیل روشون فعال باشه خودشونو ببندن یا کد اشتباه اجرا کنن اینا میشن تکنیک‌های ضد دیباگ یا Anti-Debug ✅ چند تکنیک معروف Anti-Debug که زیاد میبینید: استفاده از APIهای سیستم‌عامل نرم‌افزار با استفاده از APIهایی مثل IsDebuggerPresent، CheckRemoteDebuggerPresent یا NtQueryInformationProcess بررسی می‌کنه دیباگر وصله یا نه
if (IsDebuggerPresent()) { ExitProcess(0); }
بررسی فلگ‌های مخصوص در PEB برنامه با دسترسی مستقیم به PEB (Process Environment Block) چک می‌کنه که آیا دیباگر فعاله یا نه
mov eax, fs:[30h] ; PEB movzx eax, byte ptr [eax+2] cmp eax, 0 jne detected_debugger
Trap Flag / INT 3 / Breakpoint Detection بررسی می‌کنه که آیا دیباگر روی کد break point گذاشته یا خیر یا اینکه از TF برای اجرای step-by-step استفاده میشه استفاده از استثناها (SEH) برنامه خطا تولید می‌کنه (مثلا تقسیم بر صفر یا دسترسی به آدرس بد) و از طریق handler بررسی میکنه که آیا این خطا توسط دیباگر گرفته شده یا توسط خودش تاخیر در اجرا و مقایسه زمان (Timing Checks) برنامه با استفاده از توابعی مثل GetTickCount یا QueryPerformanceCounter زمان اجرای دستورات رو میسنجه اگه کاربر با دیباگر کندتر اجرا کرده باشه،میفهمه مشکوکه Debugger Evasion via TLS Callback کد مخرب یا چک Anti-Debug رو به جای main() داخل TLS Callback میذارن جایی که دیباگرها اغلب از دست میدنش تکنیک‌های پیشرفته‌تر داینامیک API resolving (یعنی خودش موقع اجرا APIها رو پیدا می‌کنه) Multi-threaded Debug Checks Hardware Breakpoint Detection Self Debugging (برنامه خودش رو attach می‌کنه) 🔓 مقابله با Anti-Debug استفاده از پلاگین‌هایی مثل ScyllaHide روی x64dbg استفاده از ابزارهایی مثل TitanHide برای پنهان کردن دیباگر پچ کردن کدهایی مثل IsDebuggerPresent یا بایت‌هایی که باعث کرش میشن نادیده گرفتن استثناها یا بستن handlerها

چطور بفهمیم یه Process Hollowing اتفاق افتاده؟ وقتی یه فایل ظاهرا سالم داره یه کار مشکوک میکنه باید بپرسید: "این برنامه واقعاً خودشه؟ یا فقط یه ماسک زده؟" 🔍 بررسی فنی: PID مشکوک؟ یه برنامه‌ی بی‌زبان مثل notepad.exe نباید به اینترنت وصل شه یا فایل سیستمی دستکاری کنه اگه کرد؟ برید ببینید دقیقا چی داره اجرا می‌شه... مقایسه Image در دیسک با Memory: با ابزارایی مثل Process Hacker یا PE-sieve می‌تونی بفهمید کدی که تو حافظه اجرا میشه با فایلی که رو دیسکه فرق داره یا نه اگه فرق داشتن به احتمال زیاد یه تسخیر در جریانه 😈 3. بررسی بخش Entry Point: با باز کردن فایل توی x64dbg بررسی کنید آیا نقطه شروع اجرا همونه که انتظار میره یا نه اگه پرش داده شده به یه جای عجیب توی حافظه حواستون جمع باشه رفتارهای عجیب: برنامه‌ای که کارش نمایش نوت‌پده نباید به رجیستری دست بزنه فایل رمزگذاری کنه یا سرور خارجی صدا بزنه 🔧 ابزارای پیشنهادی برای شکار روح توی پروسس‌ها: x64dbg PE-sieve Process Hacker Sysinternals Process Explorer Volatility (برای آنالیز رم) 🧪 یه نکته‌ی طلایی: تو دنیای مهندسی معکوس همیشه به چیزی که میبینید اعتماد نکنید خیلیا ظاهر سالم دارن ولی پشت اون ظاهر، یه کدیه که منتظر فرصته تا قفل بزنه بدزده یا فقط تماشا کنه

این قلم جدیده ی جورایی باحاله اخه گفتم تنوع خوبه چطوره دوسش دارید😁
Anonymous voting

😈Process Hollowing وقتی یه فایل بی‌گناه تبدیل به هیولا می‌شه... فرض کن یه بدافزار نخواد مستقیم اجرا شه چون می‌دونه زود لو میره چی کار می‌کنه؟ میاد یه تئاتر راه می‌ندازه... یه برنامه‌ی کاملا سالم مثل Notepad رو اجرا می‌کنه اما به شکل معلق (suspended) یعنی فقط ظاهرشه هنوز نرفته تو خط اجرا بعد چی؟ با یه ضربه مغز این برنامه رو خالی می‌کنه (یعنی حافظه‌ی کدشو پاک می‌کنه) و کد خودش رو می‌چپونه تو مغز اون! حالا اگه به تسک‌ منیجر نگاه کنی همه چی خوبه Notepad داره اجرا می‌شه اما در واقع یه کد مخرب وحشی داره به‌جاش نفس می‌کشه! این یعنی Process Hollowing 💀 چرا خطرناکه؟ چون آنتی‌ویروس نمیفهمه کدی که داره اجرا می‌شه با ظاهر برنامه فرق داره امضا (signature) مال یه برنامه‌ی سالمه ولی کارایی که میکنه مال یه قاتله لاگ‌ها و رفتار سیستم هم فریب می‌خورن 👁️‍🗨️ دنبال ردش بگردی؟ باید خیلی باهوش باشی. چون یه پردازش سالمه با یه روح تسخیرشده. ابزارایی مثل x64dbg یا Process Hacker شاید کمک کنن ولی بدون دیدن کد تو حافظه‌ی زمان اجرا نمیفهمید چه خبره 🧪 Process Hollowing هم تکنیکیه برای پنهون‌کاری هم یه کلاس بالاتر از تزریق کده هکرایی که اینو میزنن دنبال یه اجرای مخفین... در سکوت... زیر پوسته‌ی یه برنامه‌ی معمولی...

Code Cave چیه و چطوری بدافزار ها ازش سو استفاده می‌کنن؟ توی خیلی از فایل‌های اجرایی (مثل exe.) یه سری قسمت هست که عملا استفاده نمیشن یعنی برنامه بهشون کاری نداره پر از صفر و دستورای الکی مثل NOP هستن به این فضاهای بدون استفاده می‌گن Code Cave یعنی یه جور "غار خالی" وسط فایل! حالا اینجا دقیقا همون جاییه که یه بدافزار میتونه قایم شه هکر یا کسی که فایل رو آلوده میکنه کد مخربشو میزاره تو همین فضای خالی بعد یه پرش (jmp) از کد اصلی به این غار(فضای خالی) میزنه تا موقع اجرا یهو برنامه بزنه به جای منحرف و بره سمت کد مخرب! بعضی وقتا هم اون‌قدر حرفه‌ای این کارو انجام میدن که بعد از اجرای کد مخرب دوباره برنامه برمی‌گرده به روال عادی یعنی تو حتی نمی‌فهمی اتفاقی افتاده ولی پشت پرده داستان چیز دیگه‌ایه... 🔹 چرا این تکنیک محبوبه بین بدافزارنویس‌ها؟ چون فایل رو بزرگ‌تر نمیکنه آنتی‌ویروس‌ها سخت‌تر متوجه میشن از بیرون هم فایل خیلی نرمال به نظر میرسه 🔍 چطوری اینو موقع مهندسی معکوس تشخیص بدیم؟ جاهایی که یه‌دفعه دیدی پر از nop یا صفره پرش‌های عجیب‌غریب به آدرس‌های دور از منطق Sectionهایی که بیش‌ازحد خالی هستن 🔧 ابزارایی که به کارت میان تو این ماجرا: x64dbg IDA Pro CFF Explorer PE-bear

Repost from GO-TO CVE
poc_CVE-2023-38831

Repost from GO-TO CVE
بررسی CVE-2023-38831 – فقط یه فایل RAR باز کن… بوم! 🎯💣 سلام به همه عزیزان و عاشقان مهندسی معکوس! خوش اومدین به اپیزود ۵۴ از برنامه‌ی هفتگی GO-TO CVE! 🎙💻 این هفته رفتیم سراغ یه آسیب‌پذیری واقعی و پر سر و صدا اما قدیمی در یکی از محبوب‌ترین ابزارهای فشرده‌سازی دنیا WinRAR! 🎯 🔹 Week: 54 🔹 CVE: CVE-2023-38831 🔹 Type: RCE via Archive Trick 🔹 Target: WinRAR < v6.23 ⚒️ Patch چی بوده؟ توی نسخه 6.23 و بالاتر، تیم WinRAR منطق اولویت‌دهی به فایل و فولدر با نام یکسان رو اصلاح کرده. حالا دیگه فولدر هم‌نام فایل نمی‌تونه باعث override رفتار کلیک بشه، و این یعنی پایان ترفند RCE با اسم‌گذاری هوشمندانه! 🎯 توی اپیزود ۵۴ از کانال GO-TO CVE با هم بررسی کردیم: 📬 عضویت در کانال + هر هفته یه باگ باحال برای تحلیل: https://t.me/GOTOCVE #week_54

با ماژول hackrf تونسته ecu ماشین رو هک بکنه

❌فرق پکینگ ساده و پکینگ پیشرفته پکینگ ساده مثل UPX فقط کد رو فشرده می‌کنه و بعد از اجرا سریع کد اصلی رو باز میکنه پکینگ پیشرفته مثل Themida یه لایه خیلی ضخیم محافظتی داره که حتی بعد از آنپک کردن کد اصلی به شکل مستقیم دیده نمیشه

👾پکینگ و آنپکینگ پیشرفته — چی‌جوری پیچیده‌تر میشه؟ وقتی می‌خوای نرم‌افزاری رو مهندسی معکوس کنی، گاهی اون برنامه با یه پکینگ ساده مثل UPX بسته‌بندی نشده، بلکه از پکینگ‌های پیشرفته و پیچیده استفاده کرده. 🪤این پکینگ‌ها چیکار میکنن؟ ⚠️کد برنامه رو طوری مخفی و محافظت می‌کنن که حتی وقتی برنامه اجرا میشه کد اصلی رو مستقیم نبینید با استفاده از Virtualization-based Protection (مثل VMProtect یا Themida) کد برنامه رو به یه زبان مجازی خاص تبدیل میکنن که فقط داخل یه ماشین مجازی کوچیک اجرا بشه از تکنیک‌های Anti-Debug استفاده می‌کنن که دیباگرها رو شناسایی کنن و جلوی تحلیل رو بگیرن Code Obfuscation برای پیچیده‌کردن ساختار کد استفاده میکنن تا فهمیدن عملکردش خیلی سخت بشه

نکات طلایی: UPX یه پک رایگانه و خیلی‌ها باهاش کار کردن پس اگه با UPX راحت شدید می‌تونید بعدش سراغ پکینگ‌های پیچیده‌تر برید دنبال الگوریتم‌های پکینگ در حافظه باشید اونجا کد اصلی مخفی شده Timing Check رو موقع آنپکینگ بررسی کنید تا دیباگر رو گمراه نکنید

آموزش عملی آنپکینگ UPX با OllyDbg (قدم به قدم) مرحله 1: تشخیص پک UPX با ابزارهایی مثل PEiD یا Detect It Easy بررسی کند که فایل UPX شده باشه مرحله 2: بارگذاری فایل در OllyDbg فایل رو باز کنید و منتظر باشید تا دیباگر برنامه رو لود کنه مرحله 3: پیدا کردن نقطه اصلی اجرای کد با دستورالعمل‌های داخل دیباگر جلو برید و به دنبال آدرس Entry Point واقعی باشید مرحله 4: ذخیره حافظه Dump وقتی رسیدید به نقطه‌ای که کد اصلی آنپک شده و اجرا می‌شه، حافظه رو Dump کنید مرحله 5: اصلاح فایل از ابزارهای مثل Scylla استفاده کنید تا IAT (Import Address Table) اصلاح بشه و فایل قابل اجرا بشه

مخرب ترین تکنیک‌های Obfuscation که فقط بدافزارنویسا بلدن 1 Control Flow Flattening ساختار کد کاملاً به‌هم می‌ریزه به‌جای if/else و loop های مرسوم همه چی توی یه سوییچ و Dispatcher بزرگ قایم میشه هدف؟ دیس‌اسمبلر رو گمراه میکنه دیباگر رو دیوونه میکنه 2 Virtualization Obfuscation کل برنامه به یه زبان ماشین خیالی (VM-based) ترجمه میشه چیزی شبیه VMProtect نتیجه؟ به‌جای opcodeهای x86 با دستوراتی عجیب و ناشناخته طرفی 3 Polymorphic Code هر بار اجرا یا build کد تغییر می‌کنه ولی همون کار رو انجام میده بدافزارها عاشقشن چون آنتی‌ویروس‌ها رو کور میکنن 4 Call Stack Tampering فانکشن صدا زده می‌شه ولی نه از راهی که انتظار می‌ره؛ مثلا با دستکاری ESP یا EBP. چرا مهمه؟ چون ابزارهایی مثل IDA به‌سختی می‌فهمن این یه "تابع" هست 5 API Hiding با Hash کردن نام توابع به‌جای استفاده مستقیم از مثلا LoadLibrary یا GetProcAddress اسم APIها هش شده‌ست و در زمان اجرا resolve میشن یعنی چی؟ یعنی ابزار تحلیل نمی‌فهمه برنامه چه APIهایی صدا میزنه