بررسی Anti-Debugging
نمونه تکنیکها:
استفاده از توابع API مثل
IsDebuggerPresent
CheckRemoteDebuggerPresent
دستکاری فلگ Trap در رجیستر EFLAGS
خواندن شمارنده زمان (مثلا با RDTSC) و بررسی تأخیر
راه مقابله:
patch کردن توابع
استفاده از پلاگینهای ضد ضد دیباگ در x64dbg
نوشتن اسکریپت برای نادیده گرفتن رفتار مشکوک
نمونه تکنیکها:
استفاده از توابع API مثل
IsDebuggerPresent
CheckRemoteDebuggerPresent
دستکاری فلگ Trap در رجیستر EFLAGS
خواندن شمارنده زمان (مثلا با RDTSC) و بررسی تأخیر
راه مقابله:
patch کردن توابع
استفاده از پلاگینهای ضد ضد دیباگ در x64dbg
نوشتن اسکریپت برای نادیده گرفتن رفتار مشکوک
👍7🥰1
ReverseEngineering
Part 1 https://medium.com/@ch3tanbug/mastering-runtime-hooking-with-frida-real-world-challenges-explained-part-1-17a7f57ea87b
Medium
Mastering Runtime Hooking with Frida — Real-World Challenges Explained (Part 2)
Hey folks! This is Chetan Kashyap, back again with Part 2 of our series on mastering runtime hooking using Frida. If you haven’t already…
❤5👏1
Obfuscation (مبهمسازی کد)
مثالها:
استفاده از متغیرها و توابع با نامهای بیمعنی
پرشهای زیاد و بیربط (jmp)
استفاده از ساختارهای پیچیده و بیهدف
راهحل:
بازنویسی دستی در ابزار Ghidra یا IDA
استفاده از deobfuscator ها یا پلاگینها
مثالها:
استفاده از متغیرها و توابع با نامهای بیمعنی
پرشهای زیاد و بیربط (jmp)
استفاده از ساختارهای پیچیده و بیهدف
راهحل:
بازنویسی دستی در ابزار Ghidra یا IDA
استفاده از deobfuscator ها یا پلاگینها
👍4👏1
Packers پکرها
نرمافزارهایی مثل UPX، Themida، VMProtect باعث میشن باینری اصلی مخفی بمونه
راه تشخیص:
بخشهای عجیب در ساختار PE (مثل .UPX)
اجرا نشدن برنامه در دیباگر
بررسی با PEiD یا Detect It Easy
راه عبور:
اجرای برنامه و گرفتن memory dump بعد از unpack
دنبال کردن نقطه آنپک با breakpoint روی VirtualProtect یا GetProcAddress
نرمافزارهایی مثل UPX، Themida، VMProtect باعث میشن باینری اصلی مخفی بمونه
راه تشخیص:
بخشهای عجیب در ساختار PE (مثل .UPX)
اجرا نشدن برنامه در دیباگر
بررسی با PEiD یا Detect It Easy
راه عبور:
اجرای برنامه و گرفتن memory dump بعد از unpack
دنبال کردن نقطه آنپک با breakpoint روی VirtualProtect یا GetProcAddress
👍6👏1
Integrity Check
کد بررسی میکنه آیا تغییری در باینری ایجاد شده یا نه معمولا با توابع CRC، MD5، SHA یا جمع ساده بایتها انجام میشه
راه دور زدن:
پیدا کردن تابعی که چک رو انجام میده و نادیده گرفتن نتیجهاش
patch کردن شرط چک موفقیت یا شکست
کد بررسی میکنه آیا تغییری در باینری ایجاد شده یا نه معمولا با توابع CRC، MD5، SHA یا جمع ساده بایتها انجام میشه
راه دور زدن:
پیدا کردن تابعی که چک رو انجام میده و نادیده گرفتن نتیجهاش
patch کردن شرط چک موفقیت یا شکست
👍5❤1
1. crackmes.one
2. Reversing.kr
3. picoCTF
4. crackmes.de
5. Hack The Box
6. Root Me
7. OpenSecurityTraining
یکی از معروفترین سایتها برای تمرین مهندسی معکوس
شامل تعداد زیادی باینری با سطوح مختلف سختی
کاربران میتونن کدها رو آنالیز کنن و راهحل ارائه بدن
2. Reversing.kr
یک پلتفرم کلاسیک با چالشهای متنوع در زمینه مهندسی معکوس و باینری اکسپلویتیشن
تمرینها به صورت CTF طراحی شدن.
3. picoCTF
تمرینهای CTF مخصوص تازهکارها تا سطح متوسط
بخشهایی مثل "Reverse Engineering" داره که خیلی برای شروع خوبه
4. crackmes.de
قدیمی و قابل اعتماد، با آرشیو بزرگی از CrackMe ها
نسخههای ویندوزی و لینوکسی از نرمافزارها رو برای تحلیل میذاره
5. Hack The Box
دارای بخش Reverse Engineering و Binary Exploitation
ماشینها و چالشهای واقعی برای تمرین سطح پیشرفته
6. Root Me
بخش Reverse Engineering داره
شامل چالشهای تحت ویندوز، لینوکس ARM و … هست
7. OpenSecurityTraining
دورههای حرفهای برای آموزش دیباگینگ ASM و RE
👍11❤2👏1
رایتاپ خیلی خوب یکی از دوستای من محمد درباره ی heap
https://github.com/Mohammaddvd/Writeups/blob/main/self_learning/fd_poison/README.md
https://github.com/Mohammaddvd/Writeups/blob/main/self_learning/fd_poison/README.md
GitHub
Writeups/self_learning/fd_poison/README.md at main · Mohammaddvd/Writeups
Contribute to Mohammaddvd/Writeups development by creating an account on GitHub.
👍7❤1
Scylla / x64dbg دمپ گرفتن از حافظه unpack برای
Detect It Easy (DIE) تشخیص نوع پکر یا محافظ
OllyDbg plugins (StrongOD, HideDebugger) مقابله با ضد دیباگ
Ghidra noscripting شناسایی مسیر های پرش پیچیده یا بی هدف
Detect It Easy (DIE) تشخیص نوع پکر یا محافظ
OllyDbg plugins (StrongOD, HideDebugger) مقابله با ضد دیباگ
Ghidra noscripting شناسایی مسیر های پرش پیچیده یا بی هدف
❤3👍2
تمرین کاربردی
پیشنهاد میکنم یکی از برنامههای UPX-packed رو باز کنید و مراحل زیر رو انجام بدید:
1 اجرای فایل توی دیباگر → مشاهده رفتار عجیب
2 شناسایی نقطه آنپک (با breakpoint روی VirtualAlloc)
3 گرفتن dump حافظه بعد از آنپک
4 باز کردن dump توی IDA یا Ghidra و تحلیل کد واقعی
پیشنهاد میکنم یکی از برنامههای UPX-packed رو باز کنید و مراحل زیر رو انجام بدید:
1 اجرای فایل توی دیباگر → مشاهده رفتار عجیب
2 شناسایی نقطه آنپک (با breakpoint روی VirtualAlloc)
3 گرفتن dump حافظه بعد از آنپک
4 باز کردن dump توی IDA یا Ghidra و تحلیل کد واقعی
❤2👍1
ساخت آنپکر اختصاصی برای فایلهای Pack شده
بعد از اینکه فهمیدید یه فایل pack شدهست (مثلا با UPX یا پکرهای خاص) وقتشه خودتون بتونید برای اون یک آنپکر بسازید و باینری اصلی رو بازیابی کنید
چرا باید خودمون آنپکر بنویسیم؟
همه فایلها با ابزارهای آماده قابل آنپک نیستن مثلا نسخههای دستکاری شده یا سفارشیشدهی UPX
در بعضی مواقع نیاز به خودکارسازی دارید (مثلا اسکن دستهای)
این تمرین باعث میشه به درک عمیقتری از ساختار PE و مکانیزم اجرای ویندوز برسید
بعد از اینکه فهمیدید یه فایل pack شدهست (مثلا با UPX یا پکرهای خاص) وقتشه خودتون بتونید برای اون یک آنپکر بسازید و باینری اصلی رو بازیابی کنید
چرا باید خودمون آنپکر بنویسیم؟
همه فایلها با ابزارهای آماده قابل آنپک نیستن مثلا نسخههای دستکاری شده یا سفارشیشدهی UPX
در بعضی مواقع نیاز به خودکارسازی دارید (مثلا اسکن دستهای)
این تمرین باعث میشه به درک عمیقتری از ساختار PE و مکانیزم اجرای ویندوز برسید
👍6
مراحل کلی آنپک کردن دستی و خودکار
شناسایی پکر
استفاده از ابزارهایی مثل:
PEiD
Detect It Easy
بررسی سکشنها ساختارهای غیرمعمول سایزهای عجیب و نام بخش ها
شناسایی پکر
استفاده از ابزارهایی مثل:
PEiD
Detect It Easy
بررسی سکشنها ساختارهای غیرمعمول سایزهای عجیب و نام بخش ها
👍6
پیدا کردن OEP (Original Entry Point)
اجرای فایل در دیباگر مثل x64dbg
گذاشتن Breakpoint روی API های کلیدی:
VirtualAlloc
WriteProcessMemory
GetProcAddress
یا حتی روی Entry Point خود فایل
👍5
https://medium.com/@ibnuilham/dodging-the-debugger-winantidbg0x300-picoctf-2024-writeup-0d913ad398ba
Medium
Dodging the Debugger: WinAntiDbg0x300 (picoCTF 2024 Writeup)
Hey everyone! I just wrapped up a fun little reverse engineering challenge from picoCTF 2024 called “WinAntiDbg0x300,” and thought I’d…
👍4🍓1