ReverseEngineering – Telegram
ReverseEngineering
1.24K subscribers
40 photos
10 videos
55 files
666 links
Download Telegram
1. crackmes.one

یکی از معروف‌ترین سایت‌ها برای تمرین مهندسی معکوس

شامل تعداد زیادی باینری با سطوح مختلف سختی

کاربران می‌تونن کدها رو آنالیز کنن و راه‌حل ارائه بدن


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
👍112👏1
Scylla / x64dbg دمپ گرفتن از حافظه unpack برای

Detect It Easy (DIE) تشخیص نوع پکر یا محافظ

OllyDbg plugins (StrongOD, HideDebugger) مقابله با ضد دیباگ

Ghidra noscripting شناسایی مسیر های پرش پیچیده یا بی هدف
3👍2
تمرین کاربردی

پیشنهاد می‌کنم یکی از برنامه‌های UPX-packed رو باز کنید و مراحل زیر رو انجام بدید:

1 اجرای فایل توی دیباگر → مشاهده رفتار عجیب


2 شناسایی نقطه آنپک (با breakpoint روی VirtualAlloc)


3 گرفتن dump حافظه بعد از آنپک


4 باز کردن dump توی IDA یا Ghidra و تحلیل کد واقعی
2👍1
ساخت آنپکر اختصاصی برای فایل‌های Pack شده

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



چرا باید خودمون آنپکر بنویسیم؟

همه فایل‌ها با ابزارهای آماده قابل آنپک نیستن مثلا نسخه‌های دستکاری‌ شده یا سفارشی‌شده‌ی UPX

در بعضی مواقع نیاز به خودکارسازی دارید (مثلا اسکن دسته‌ای)

این تمرین باعث میشه به درک عمیق‌تری از ساختار PE و مکانیزم اجرای ویندوز برسید
👍6
مراحل کلی آنپک کردن دستی و خودکار

شناسایی پکر

استفاده از ابزارهایی مثل:

PEiD

Detect It Easy

بررسی سکشن‌ها ساختارهای غیرمعمول سایزهای عجیب و نام بخش‌ ها
👍6
پیدا کردن OEP (Original Entry Point)


اجرای فایل در دیباگر مثل x64dbg

گذاشتن Breakpoint روی API های کلیدی:

VirtualAlloc

WriteProcessMemory

GetProcAddress

یا حتی روی Entry Point خود فایل
👍5
گرفتن Dump از حافظه

وقتی به OEP رسیدید:

از ابزار Scylla یا x64dbg استفاده کنید برای گرفتن Memory Dump

آدرس‌های سکشن‌ها و Import Table رو ذخیره کنید
4🔥1
بازسازی Import Table

در بیشتر موارد Import Table فایل pack شده موقع dump خراب یا ناقصه

Scylla یا Import Reconstructor برای بازسازی IAT کمک می‌کنه

این مرحله باعث می‌شه فایل dump شده بعد از ذخیره درست اجرا بشه
3🔥1
ذخیره فایل آنپک شده

ذخیره فایل با IAT بازسازی‌ شده

اجرای تست برای اطمینان از سلامت فایل نهایی
👏3
نمونه کد آنپکر ساده با پایتون برای 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')
👏3