ru
Feedback
ReverseEngineering

ReverseEngineering

Открыть в Telegram
1 265
Подписчики
Нет данных24 часа
-37 дней
+730 дней
Архив постов
پیدا کردن OEP (Original Entry Point) اجرای فایل در دیباگر مثل x64dbg گذاشتن Breakpoint روی APIهای کلیدی: VirtualAlloc WriteProcessMemory GetProcAddress یا حتی روی Entry Point خود فایل دنبال کردن flow تا وقتی وارد کد unpack شده → اونجا OEP واقعی هست

شناسایی پکر استفاده از ابزارهایی مثل: PEiD Detect It Easy بررسی سکشن‌ها ساختارهای غیرمعمول سایزهای عجیب و نام بخش‌ها

ساخت آنپکر اختصاصی برای فایل‌های Pack شده بعد از اینکه فهمیدیم یه فایل pack شده‌ست (مثلاً با UPX یا پکرهای خاص) وقتشه خودمون بتونیم برای اون یک آنپکر بسازیم و باینری اصلی رو بازیابی کنیم چرا باید خودمون آنپکر بنویسیم؟ همه فایل‌ها با ابزارهای آماده قابل آنپک نیستن (مثلاً نسخه‌های دستکاری‌شده یا سفارشی‌شده‌ی UPX) در بعضی مواقع نیاز به خودکارسازی داریم (مثلاً اسکن دسته‌ای) این تمرین باعث می‌شه به درک عمیق‌تری از ساختار PE و مکانیزم اجرای ویندوز برسید

نمونه کد آنپکر ساده با پایتون برای UPX در فایل‌های pack شده با UPX گاهی فقط نیاز به اجرای ابزار UPX به‌ صورت اتوماتیک داریم:
import subprocess import os def unpack_upx(file_path): if not os.path.exists(file_path): print("فایل پیدا نشد.") return try: subprocess.run(['upx', '-d', file_path], check=True) print("فایل با موفقیت آنپک شد.") except subprocess.CalledProcessError: print("خطا در آنپک فایل.") unpack_upx('sample.exe')

ذخیره فایل آنپک شده ذخیره فایل با IAT بازسازی‌شده اجرای تست برای اطمینان از سلامت فایل نهایی

بازسازی Import Table در بیشتر موارد Import Table فایل pack شده موقع dump خراب یا ناقصه Scylla یا Import Reconstructor برای بازسازی IAT کمک می‌کنه این مرحله باعث می‌شه فایل dump شده بعد از ذخیره درست اجرا بشه

گرفتن Dump از حافظه وقتی به OEP رسیدید: از ابزار Scylla یا x64dbg استفاده کنید برای گرفتن Memory Dump آدرس‌های سکشن‌ها و Import Table رو ذخیره کنید

پیدا کردن OEP (Original Entry Point)
اجرای فایل در دیباگر مثل x64dbg گذاشتن Breakpoint روی API های کلیدی: VirtualAlloc WriteProcessMemory GetProcAddress یا حتی روی Entry Point خود فایل

مراحل کلی آنپک کردن دستی و خودکار مرحله1 : شناسایی پکر استفاده از ابزارهایی مثل: PEiD Detect It Easy بررسی سکشن‌ها ساختارهای غیرمعمول سایزهای عجیب و نام بخش‌ ها

ساخت آنپکر اختصاصی برای فایل‌های Pack شده بعد از اینکه فهمیدید یه فایل pack شده‌ست (مثلا با UPX یا پکرهای خاص) وقتشه خودتون بتونید برای اون یک آنپکر بسازید و باینری اصلی رو بازیابی کنید چرا باید خودمون آنپکر بنویسیم؟ همه فایل‌ها با ابزارهای آماده قابل آنپک نیستن مثلا نسخه‌های دستکاری‌ شده یا سفارشی‌شده‌ی UPX در بعضی مواقع نیاز به خودکارسازی دارید (مثلا اسکن دسته‌ای) این تمرین باعث میشه به درک عمیق‌تری از ساختار PE و مکانیزم اجرای ویندوز برسید

تمرین کاربردی پیشنهاد می‌کنم یکی از برنامه‌های UPX-packed رو باز کنی و مراحل زیر رو انجام بدی: 1 اجرای فایل توی دیباگر → مشاهده رفتار عجیب 2 شناسایی نقطه آنپک (با breakpoint روی VirtualAlloc) 3 گرفتن dump حافظه بعد از آنپک 4 باز کردن dump توی IDA یا Ghidra و تحلیل کد واقعی

Scylla / x64dbg دمپ گرفتن از حافظه unpack برای Detect It Easy (DIE) تشخیص نوع پکر یا محافظ OllyDbg plugins (StrongOD, HideDebugger) مقابله با ضد دیباگ Ghidra scripting شناسایی مسیر های پرش پیچیده یا بی هدف