ReverseEngineering – Telegram
ReverseEngineering
1.24K subscribers
40 photos
10 videos
55 files
666 links
Download Telegram
ReverseEngineering pinned «دوستان به زودی دوباره شروع میکنیم دمتون گرم بابت حمایت ها دوستون دارم🫶🏼»
انواع مکانیزم‌های لایسنس

🔹 نرم‌افزارها از روش‌های مختلفی برای کنترل دسترسی و اعتبارسنجی لایسنس استفاده میکنن رایج‌ترین روش‌ها اینان:

کلید سریال (Serial Key)

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

معمولاً با الگوریتم‌هایی مثل RSA، SHA، MD5 یا XOR بررسی می‌شه


فعال‌سازی آنلاین (Online Activation)

نرم‌افزار برای تایید لایسنس به سرور شرکت سازنده متصل می‌شه

این روش معمولاً از HTTP API، WebSockets یا RPC استفاده می‌کنه


قفل سخت‌افزاری (Hardware Locking)

لایسنس به شماره سریال CPU، هارد دیسک یا MAC Address وابسته است

تغییر سخت‌افزار باعث غیرفعال شدن لایسنس می‌شه


دونگل USB (USB Dongle)

یک قطعه سخت‌افزاری برای فعال‌سازی نرم‌افزار استفاده می‌شه

معمولاً از دستورات خاصی در درایور Kernel Mode استفاده می‌کنه


محافظت از کد (Obfuscation & Packing)

چرا برخی نرم افزار ها از پکر ها یا اوبفاسکیشن استفاده میکنن؟
برخی نرم‌افزارها از پکرها و اوبفاسکیشن استفاده می‌کنن تا کرک کردن سخت‌تر بشه

#obfuscation
#bypass
#license
🔥131👏1
مراحل کرک کردن یک نرم‌افزار

📌 برای کرک کردن باید مسیر اجرای لایسنس رو پیدا کنیم و اون رو بایپس کنیم

🔍 مرحله 1: بررسی اولیه نرم‌افزار

بررسی کن که نرم‌افزار کلید سریال قبول می‌کنه یا نیاز به اتصال اینترنت داره؟
فایل‌های اجرایی (.EXE یا .DLL) رو با PEiD یا Detect It Easy (DIE) اسکن کن تا ببینی آیا پک شده (Packed) یا نه.

🛠 مرحله ۲: پیدا کردن توابع لایسنس در اسمبلی

فایل اجرایی رو در IDA Pro یا x64dbg باز کن و دنبال توابع strcmp, strcmpi, RegQueryValueEx, IsDebuggerPresent بگرد
روی strcmp یا memcmp بریک‌پوینت بذار و مقدار کلید درست رو پیدا کن

🚀 مرحله ۳: بایپس کردن چک لایسنس

مقدار EAX رو تغییر بده تا نتیجه cmp برابر true بشه.
با NOP کردن شرط JNZ یا JZ می‌تونی چک لایسنس رو حذف کنی

MOV EAX, 1 ; مقدار بررسی لایسنس رو به True تغییر بده

NOP ; حذف پرش غیرمجاز

#crack
#bypass
👍121🔥1👏1
کرک کردن نرم‌افزارهای آنلاین

🔹 بعضی نرم‌افزارها برای فعال‌سازی به سرور متصل میشن برای کرک کردن این نرم‌افزارها باید ترافیک رو مانیتور کنیم و تغییر بدیم

📌 روش‌های کرک کردن نرم‌افزارهای آنلاین:

مانیتورینگ HTTP/S با Burp Suite یا Fiddler

ببین درخواست به چه API ارسال می‌شه و پاسخ سرور رو جعل کن
ساخت سرور جعلی (Fake License Server)

می‌تونی با ابزارهایی مثل mitmproxy یک سرور فیک بسازی و نرم‌افزار رو گول بزنی
پچ کردن درخواست‌های لایسنس در دیباگر

درخواست HTTP رو با x64dbg یا IDA Pro پیدا کن و مقدار لایسنس رو تغییر بده
#crack
#reverse
9👏3
شناخت سطح حمله (Attack Surface)

اولین قدم اینه که بفهمیم اپلیکیشن چه نقاط ورودی (entry point)‌هایی داره:

ورودی کاربر (فرم‌ها، فیلدها، فایل‌های ورودی)

ارتباط با شبکه (پورت‌ها، سوکت‌ها، APIها)

Registeryو فایل‌های سیستمی

COM objects و DLLها

Named Pipes و فایل‌های موقت

#Attack
#Attack_Surface
#Application
9
بررسی رفتار اپلیکیشن با ابزارهای دینامیک

ابزارهایی که در حین اجرای برنامه استفاده می‌شن تا ببینیم دقیقا چیکار می‌کنه:

🔹 Procmon – بررسی فعالیت رجیستری و فایل

🔹 Wireshark – تحلیل ترافیک شبکه

🔹 Process Hacker / Process Explorer – مانیتور کردن پروسس‌ها

🔹 Dependency Walker – بررسی وابستگی‌های DLL

🔹 PE-sieve / Scylla – بررسی تزریق کد یا آنپک

#Dynamic
#Application
🔥8👍1
آنالیز فایل اجرایی (Static Analysis)

قبل از اجرا فایل رو بررسی می‌کنیم:

با PEiD یا Detect It Easy چک می‌کنیم فایل پکر شده یا نه

با Ghidra یا IDA Pro توابع ورودی و حساس رو تحلیل می‌کنیم

دنبال فانکشن‌هایی مثل strcpy, memcpy, CreateProcess, WinExec, LoadLibrary می‌گردیم

اگر از فایل یا رجیستری اطلاعات میخونه بررسی می‌کنیم قابل تزریق هستن یا نه

#Analys
#File
👍8🔥3
پیدا کردن آسیب‌پذیری‌های رایج

برخی از آسیب‌پذیری‌های پرتکرار در اپلیکیشن‌های ویندوزی:

Buffer Overflow
تابع‌هایی که بدون بررسی سایز کپی می‌کنن مثل strcpy, gets, memcpy

DLL Hijacking
اگر برنامه DLLها رو از مسیر نادرست بارگذاری کنه می‌شه یه DLL مخرب جایگزین کرد

Insecure File Permissions
وقتی فایل‌ها یا رجیستری‌ها دسترسی نوشتن برای همه دارن

Command Injection / Code Execution
برنامه ورودی کاربر رو مستقیم به تابعی مثل system() پاس می‌ده

Unquoted Service Path
مسیر سرویس‌هایی که بینشون فاصله هست و کوتیشن ندارن

Named Pipe Hijacking
استفاده نادرست از Named Pipeها می‌تونه باعث privilege escalation بشه
🔥71
بهره‌برداری (Exploitation) و PoC نوشتن

بعد از پیدا کردن آسیب‌پذیری، باید اثباتش کنیم:

ساخت PoC برای buffer overflow با ابزارهایی مثل Immunity Debugger

نوشتن DLL جعلی برای حمله DLL Hijacking

ساخت فایل .bat یا .exe برای اجرا با دسترسی بالا

استفاده از ابزارهایی مثل Metasploit, Exploit Pack, یا msfvenom برای payload سازی
🔥51
Arm Assembly Internals and Reverse Engineering.pdf
14.4 MB
نویسنده: William Hohl & Christopher Hinds

مناسب برای: کسانی که می‌خوان از پایه ARM Assembly رو یاد بگیرن

ویژگی‌ها:

آموزش از سطح مبتدی تا پیشرفته

توضیح رجیسترها، دستورها، حافظه، توابع، وقفه‌ها و...

تمرین‌های کاربردی

بیشتر روی ARMv7 تمرکز داره، ولی به ARMv8 هم اشاره می‌کنه
🔥2👏1
ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم
Anonymous Poll
97%
👍🏻
3%
👎🏻
13
ReverseEngineering pinned «ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم»
ReverseEngineering
ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم
Roadmap Reverse Engineering

بخش اول – پیش‌نیازها

1 برنامه‌نویسی سطح پایین

C/C++ یاد بگیرید چون اکثر برنامه‌های باینری با این زبان‌ها نوشته می‌شن

مفاهیم مثل: pointer، stack، heap، buffer، function call.


منابع:

Learn-C.org

کتاب: C Programming Language – Kernighan & Ritchie


2 آشنایی با معماری سیستم‌ها

OS Basics (memory layout، syscalls، ELF/PE)

مفاهیم virtual memory، interrupts، stack frame


منابع:

Operating Systems: Three Easy Pieces

لینوکس یا ویندوز؟ هر دو! ولی شروع با لینوکس راحت‌تره.





بخش دوم – مهندسی معکوس x86/x64

1 یادگیری اسمبلی x86/x64

دستورها: mov, call, jmp, push/pop, cmp, ret, ...

مفاهیم stack frame، calling convention، registerها (EAX, RAX, ...)


ابزارها:

NASM

Online Disassembler


منابع:

کتاب: PC Assembly Language – Paul Carter

دوره: OpenSecurityTraining – Intro x86





2 کار با دیاسمبلر و دیباگر

IDA Free, Ghidra, x64dbg, Radare2, Cutter


تمرین:

Crackmes (crackmes.one)

انجام آنالیز دستی PE fileها با IDA و Ghidra


یاد بگیرید:

Function prologues

آشنایی با anti-debugging ساده





3 مهندسی معکوس پیشرفته x86/x64

آنپکینگ، آنکریپتینگ

تحلیل obfuscation

تحلیل malware ساده


منابع:

کتاب: Practical Malware Analysis

کتاب: Reverse Engineering for Beginners – Dennis Yurichev





بخش سوم – مهندسی معکوس ARM

1 معماری ARM و تفاوت‌ها با x86

Registerها (R0-R15, SP, LR, PC)

Instruction Set: MOV, ADD, LDR, STR, BL, BX, ...

Thumb و ARM mode


منابع:

کتاب: ARM Assembly Language – William Hohl

سایت: azeria-labs.com (خیلی خوب برای شروعه)





2 تحلیل باینری‌های ARM

فریمور دیوایس‌ها یا اپ‌های اندروید (so files)

ابزار: Ghidra, IDA, Radare2, QEMU, gdb-multiarch


تمرین:

استخراج فایل‌های فریمور از دستگاه‌ها

مهندسی معکوس apk و so





3 مهندسی معکوس پیشرفته ARM

تکنیک‌های بایپس anti-debugging در موبایل

hooking با Frida یا Xposed

بررسی امنیت اپ‌های موبایل (اندروید مخصوصاً)


منابع:

کتاب: Android Hacker’s Handbook

سایت: frida.re





بخش چهارم – ابزارهای مکمل و تمرین

ابزارهای دیگر:

Binary Ninja (پولی) – برای تحلیل سریع و تمیز

Frida – Hook و dynamic analysis

Angr – تحلیل سمبلیک

Unicorn/Qiling – اجرای باینری به‌صورت امولاتوری


تمرین‌های مکرر:

picoCTF

CTFtime

reversing.kr

Root-Me.org

بخش پنجم – آنپکینگ ضدضد مهندسی معکوس و ابزارسازی

1 شناخت انواع پکینگ

UPX، Themida، VMProtect، custom packers

شناسایی packers و آنپکینگ دستی


ابزارها:

PEiD / Detect It Easy

x64dbg برای dump کردن فایل بعد از unpack

Scylla / ScyllaHide


منابع:

کتاب: The IDA Pro Book – Chris Eagle

پست‌های وبلاگ Malware Unicorn





2 ضد دیباگینگ و ضد آنالیز

anti-debug APIها: IsDebuggerPresent, NtQueryInformationProcess

کنترل زمان، Thread hiding، SEH abuse، TLS callbacks


ابزار برای بایپس:

ScyllaHide

TitanHide

Patch کردن باینری با x64dbg یا IDA





3 ابزارسازی برای تحلیل باینری

با Python یا Rust ابزار بنویس برای:

آنپکینگ خودکار

استخراج توابع مشکوک

log runtime behavior با Frida



منابع:

پروژه‌های باز روی GitHub (مثل Capstone + Unicorn combo)

Reverse Engineering StackExchange





بخش ششم – مهندسی معکوس سطح سیستم و کرنل

1 درایورها و کرنل ویندوز

ساختار درایور، IOCTL، DeviceIoControl

دیباگ با WinDbg


2 مهاجرت از یوزر به کرنل

پیدا کردن آسیب‌پذیری‌های درایورها

Exploit نوشتن برای سیستم‌کال‌های آسیب‌پذیر


منابع:

Windows Internals (Mark Russinovich)

کتاب: Rootkits: Subverting the Windows Kernel





بخش هفتم – تحلیل فریمور و IoT

1 کار با فریمورهای IoT

آنپک کردن imageها (binwalk, firmware-mod-kit)

بررسی سیستم‌فایل‌های استخراج‌شده

آنالیز ARM یا MIPS باینری‌ها


ابزار:

binwalk

ghidra + qemu

angr + FirmAE برای fuzzing


منبع توپ:

https://firmware.re

Blog: devttys0.com

#roadmap
🔥38👍54🤣1
کامل و جامع ترین رودمپ ریورس به همراه انواع معماری(Arm x64 x86) به همراه رفرنس و تمرین و کتاب و همه چی رو سعی کردم براتون بزارم عشق کنید ری اکشن رو بترکونید
52👍3🔥3