برای دور زدن مکانیزمهای ضد دیباگ، میتونیم APIهای مربوطه رو هوک کنیم یا مقدار برگشتی اونها رو تغییر بدیم
برنامهها از تکنیکهای ضد دیباگ برای جلوگیری از کرک و مهندسی معکوس استفاده میکنن.
روشهای ساده مثل IsDebuggerPresent() و ptrace() در ویندوز و لینوکس استفاده میشن.
روشهای پیشرفتهتر مثل Code Virtualization و Packing در بدافزارها دیده میشن
ابزارهایی مثل Frida و x64dbg میتونن این مکانیزمها رو دور بزنن
برنامهها از تکنیکهای ضد دیباگ برای جلوگیری از کرک و مهندسی معکوس استفاده میکنن.
روشهای ساده مثل IsDebuggerPresent() و ptrace() در ویندوز و لینوکس استفاده میشن.
روشهای پیشرفتهتر مثل Code Virtualization و Packing در بدافزارها دیده میشن
ابزارهایی مثل Frida و x64dbg میتونن این مکانیزمها رو دور بزنن
👍4👏1
The_Ghidra_Book_The_Definitive_Guide_by_Chris_Eagle,_Kara_Nance.pdf
17.6 MB
معرفی کتاب "The Ghidra Book"
📚 نام کتاب: The Ghidra Book: The Definitive Guide
✍️ نویسندگان: Chris Eagle و Kara Nance
📅 انتشار: سال 2020
📖 موضوع: مهندسی معکوس با Ghidra
🔍 کتاب درباره چی هست؟
کتاب The Ghidra Book یکی از بهترین منابع برای یادگیری Ghidra، ابزار رایگان و متنباز تحلیل باینری توسعهیافته توسط NSA است. این کتاب از مقدماتی تا پیشرفته تمام قابلیتهای Ghidra رو آموزش میده و به مهندسی معکوس نرمافزارها، آنالیز بدافزارها و کرک کردن باینریها میپردازه
📚 نام کتاب: The Ghidra Book: The Definitive Guide
✍️ نویسندگان: Chris Eagle و Kara Nance
📅 انتشار: سال 2020
📖 موضوع: مهندسی معکوس با Ghidra
🔍 کتاب درباره چی هست؟
کتاب The Ghidra Book یکی از بهترین منابع برای یادگیری Ghidra، ابزار رایگان و متنباز تحلیل باینری توسعهیافته توسط NSA است. این کتاب از مقدماتی تا پیشرفته تمام قابلیتهای Ghidra رو آموزش میده و به مهندسی معکوس نرمافزارها، آنالیز بدافزارها و کرک کردن باینریها میپردازه
👍17
روند کار cpu به صورت انیمشین
https://www.linkedin.com/posts/onhex-group_cpu-ugcPost-7305645972016005121-xIvj?utm_source=share&utm_medium=member_desktop&rcm=ACoAACblG4kB0PHR1ZRBvvVzW7X1SO04asr6j5U
https://www.linkedin.com/posts/onhex-group_cpu-ugcPost-7305645972016005121-xIvj?utm_source=share&utm_medium=member_desktop&rcm=ACoAACblG4kB0PHR1ZRBvvVzW7X1SO04asr6j5U
Linkedin
اگه دوست دارید بدونید، CPU چطوری کار میکنه، میتونید بصورت انیمیشن، این قصه رو ببینید. | OnHex Group
اگه دوست دارید بدونید، CPU چطوری کار میکنه، میتونید بصورت انیمیشن، این قصه رو ببینید.
https://lnkd.in/dmdbAxyA
#CPU
https://lnkd.in/dmdbAxyA
#CPU
👍7❤1
پکینگ و آنپکینگ باینریها
حالا که با تکنیکهای ضد دیباگ و ضد مهندسی معکوس آشنا شدید وقتشه پکینگ (Packing) و آنپکینگ (Unpacking) باینریها رو بررسی کنیم این یکی از مهمترین بخشهای مهندسی معکوس هست چون بسیاری از بدافزارها و نرمافزارهای محافظتشده از پکینگ استفاده میکنن
1 پکینگ (Packing) چیست و چرا استفاده میشود؟
🔹 پکینگ یعنی فشردهسازی یا رمزگذاری کد اجرایی برای مخفی کردن ساختار اصلی آن
🔹 این کار معمولاً با پکرها (Packers) انجام میشه که فایل اجرایی رو تغییر میدن و کد اصلی فقط در زمان اجرا در حافظه باز میشه
📌 دلایل استفاده از پکینگ:
✅ جلوگیری از مهندسی معکوس و کرک شدن نرمافزارها (مثل بازیها و برنامههای پولی)
✅ کاهش حجم فایلهای اجرایی (در نسخههای قدیمیتر برای نرمافزارهای فشردهشده)
✅ مخفی کردن بدافزارها از آنتیویروسها
بسیاری از ویروسها تروجانها و باجافزارها از پکینگ استفاده میکنن تا کد مخربشون رو مخفی کنن
2 پکرهای معروف و پرکاربرد
🔹 پکرهای قانونی:
برای محافظت از نرمافزارهای تجاری
🔹 پکرهای بدافزار:
برای مخفی کردن بدافزارها و دور زدن آنتیویروس
📌 برخی از پکرهای معروف:
پکرهایی مثل Themida و VMProtect در نرمافزارهای پولی استفاده میشن ولی UPX بیشتر برای فشردهسازی ساده کاربرد داره
3 روشهای تشخیص یک فایل پکشده
وقتی یک فایل اجرایی رو باز میکنی شاید متوجه بشی که کدش واضح نیست یا خیلی فشرده و عجیب به نظر میرسه برای فهمیدن اینکه یه فایل پک شده یا نه این روشها رو بررسی کن
🔹 روش 1: بررسی امضای پکرها با PEiD یا Detect It Easy (DIE)
🔹 ابزار PEiD یا DIE میتونن پکر مورد استفاده در یک فایل PE رو شناسایی کنن
💻 در ویندوز:
1 PEiD یا Detect It Easy (DIE) رو اجرا کن.
2 فایل اجرایی رو داخلش بکش
3 اگر یه اسم پکر مثل UPX یا ASPack نشون داد، یعنی پک شده.
🔹 روش 2: بررسی جدول بخشهای فایل (Sections) در PE
🔹 پکشدهها معمولاً بخشهای غیرعادی مثل UPX0, UPX1, .text با اندازه خیلی کم دارن
🔹 میتونی با PE-Bear یا CFF Explorer فایل PE رو باز کنید و ببینید که آیا بخشهای مشکوک داره یا نه
🔹 روش 3: اجرای باینری در دیباگر و بررسی تغییرات حافظه
🔹 بعضی پکشدهها موقع اجرا کد واقعیشون رو در حافظه Extract میکنن
🔹 میتونی با x64dbg یا OllyDbg اجراش کنی و ببینی که آیا در طول اجرا کدش تغییر میکنه یا نه
4 آنپکینگ دستی باینریها (Unpacking)
برای باز کردن کد مخفی شده چندین روش وجود داره:
🔹 روش1:
آنپک کردن خودکار با UPX
اگر فایل با UPX پک شده باشه به راحتیه میتونید آنپکش کنید:
upx -d packed.exe -o unpacked.exe
اما... پکرهای پیچیدهتر مثل Themida یا VMProtect اینقدر راحت آنپک نمیشن
🔹 روش ۲:
پیدا کردن OEP (Entry Point اصلی) و دامپ کردن فایل از حافظه
📌 مراحل آنپکینگ دستی در دیباگر (مثلاً x64dbg):
1 فایل پکشده رو توی x64dbg باز کن
2 نقاط مشکوک رو پیدا کن:
اغلب پکشدهها قبل از اجرای کد اصلی، روی NtProtectVirtualMemory یا VirtualAlloc توقف دارن
3 روی OEP (Original Entry Point) بریکپوینت بذار:
معمولاً JMP EAX یا JMP ESP نشونه اینه که کد آنپک شده و آماده اجراست
4 وقتی به OEP رسیدی فایل رو از حافظه دامپ کن:
از Scylla یا OllyDump برای استخراج باینری استفاده کن
5 ریبیلد کردن بخشهای PE:
اگر آدرس Import Table خراب شد میتونی با Import Reconstructor اصلاحش کنی
این روش معمولاً برای پکرهای پیچیده مثل Themida و VMProtect استفاده میشه
5 ابزارهای مهم برای آنپک کردن باینریها
🔹 ابزارهای تشخیص پکرها:
✅ PEiD – شناسایی پکرهای رایج
✅ Detect It Easy (DIE) – تحلیل باینری و پیدا کردن امضای پکرها
✅ Exeinfo PE – نمایش اطلاعات پکرهای پیشرفته
🔹 ابزارهای دیباگ و آنپکینگ:
✅ x64dbg / OllyDbg – دیباگ و یافتن OEP
✅ Scylla / ImpRec – ریبیلد کردن Import Table بعد از آنپکینگ
✅ UPX – برای پک و آنپک کردن UPX
🔹 ابزارهای تحلیل حافظه :
Process Hacker – نمایش حافظه پروسهها
Hollows Hunter – تشخیص کدهای تزریق شده و Unpacking Runtime
پکینگ یعنی فشردهسازی و رمزگذاری کد اجرایی برای جلوگیری از مهندسی معکوس کاهش حجم و مخفی کردن بدافزارها
پکرهای معروف مثل UPX Themida و VMProtect در نرمافزارهای قانونی و بدافزارها استفاده میشن
برای تشخیص یک فایل پکشده ابزارهایی مثل PEiD DIE و x64dbg استفاده میشن
آنپکینگ دستی باینریها شامل پیدا کردن OEP دامپ کردن از حافظه و بازسازی Import Table هست
ابزارهایی مثل Scylla OllyDbg و Process Hacker برای آنپکینگ استفاده میشن
حالا که با تکنیکهای ضد دیباگ و ضد مهندسی معکوس آشنا شدید وقتشه پکینگ (Packing) و آنپکینگ (Unpacking) باینریها رو بررسی کنیم این یکی از مهمترین بخشهای مهندسی معکوس هست چون بسیاری از بدافزارها و نرمافزارهای محافظتشده از پکینگ استفاده میکنن
1 پکینگ (Packing) چیست و چرا استفاده میشود؟
🔹 پکینگ یعنی فشردهسازی یا رمزگذاری کد اجرایی برای مخفی کردن ساختار اصلی آن
🔹 این کار معمولاً با پکرها (Packers) انجام میشه که فایل اجرایی رو تغییر میدن و کد اصلی فقط در زمان اجرا در حافظه باز میشه
📌 دلایل استفاده از پکینگ:
✅ جلوگیری از مهندسی معکوس و کرک شدن نرمافزارها (مثل بازیها و برنامههای پولی)
✅ کاهش حجم فایلهای اجرایی (در نسخههای قدیمیتر برای نرمافزارهای فشردهشده)
✅ مخفی کردن بدافزارها از آنتیویروسها
بسیاری از ویروسها تروجانها و باجافزارها از پکینگ استفاده میکنن تا کد مخربشون رو مخفی کنن
2 پکرهای معروف و پرکاربرد
🔹 پکرهای قانونی:
برای محافظت از نرمافزارهای تجاری
🔹 پکرهای بدافزار:
برای مخفی کردن بدافزارها و دور زدن آنتیویروس
📌 برخی از پکرهای معروف:
پکرهایی مثل Themida و VMProtect در نرمافزارهای پولی استفاده میشن ولی UPX بیشتر برای فشردهسازی ساده کاربرد داره
3 روشهای تشخیص یک فایل پکشده
وقتی یک فایل اجرایی رو باز میکنی شاید متوجه بشی که کدش واضح نیست یا خیلی فشرده و عجیب به نظر میرسه برای فهمیدن اینکه یه فایل پک شده یا نه این روشها رو بررسی کن
🔹 روش 1: بررسی امضای پکرها با PEiD یا Detect It Easy (DIE)
🔹 ابزار PEiD یا DIE میتونن پکر مورد استفاده در یک فایل PE رو شناسایی کنن
💻 در ویندوز:
1 PEiD یا Detect It Easy (DIE) رو اجرا کن.
2 فایل اجرایی رو داخلش بکش
3 اگر یه اسم پکر مثل UPX یا ASPack نشون داد، یعنی پک شده.
🔹 روش 2: بررسی جدول بخشهای فایل (Sections) در PE
🔹 پکشدهها معمولاً بخشهای غیرعادی مثل UPX0, UPX1, .text با اندازه خیلی کم دارن
🔹 میتونی با PE-Bear یا CFF Explorer فایل PE رو باز کنید و ببینید که آیا بخشهای مشکوک داره یا نه
🔹 روش 3: اجرای باینری در دیباگر و بررسی تغییرات حافظه
🔹 بعضی پکشدهها موقع اجرا کد واقعیشون رو در حافظه Extract میکنن
🔹 میتونی با x64dbg یا OllyDbg اجراش کنی و ببینی که آیا در طول اجرا کدش تغییر میکنه یا نه
4 آنپکینگ دستی باینریها (Unpacking)
برای باز کردن کد مخفی شده چندین روش وجود داره:
🔹 روش1:
آنپک کردن خودکار با UPX
اگر فایل با UPX پک شده باشه به راحتیه میتونید آنپکش کنید:
upx -d packed.exe -o unpacked.exe
اما... پکرهای پیچیدهتر مثل Themida یا VMProtect اینقدر راحت آنپک نمیشن
🔹 روش ۲:
پیدا کردن OEP (Entry Point اصلی) و دامپ کردن فایل از حافظه
📌 مراحل آنپکینگ دستی در دیباگر (مثلاً x64dbg):
1 فایل پکشده رو توی x64dbg باز کن
2 نقاط مشکوک رو پیدا کن:
اغلب پکشدهها قبل از اجرای کد اصلی، روی NtProtectVirtualMemory یا VirtualAlloc توقف دارن
3 روی OEP (Original Entry Point) بریکپوینت بذار:
معمولاً JMP EAX یا JMP ESP نشونه اینه که کد آنپک شده و آماده اجراست
4 وقتی به OEP رسیدی فایل رو از حافظه دامپ کن:
از Scylla یا OllyDump برای استخراج باینری استفاده کن
5 ریبیلد کردن بخشهای PE:
اگر آدرس Import Table خراب شد میتونی با Import Reconstructor اصلاحش کنی
این روش معمولاً برای پکرهای پیچیده مثل Themida و VMProtect استفاده میشه
5 ابزارهای مهم برای آنپک کردن باینریها
🔹 ابزارهای تشخیص پکرها:
✅ PEiD – شناسایی پکرهای رایج
✅ Detect It Easy (DIE) – تحلیل باینری و پیدا کردن امضای پکرها
✅ Exeinfo PE – نمایش اطلاعات پکرهای پیشرفته
🔹 ابزارهای دیباگ و آنپکینگ:
✅ x64dbg / OllyDbg – دیباگ و یافتن OEP
✅ Scylla / ImpRec – ریبیلد کردن Import Table بعد از آنپکینگ
✅ UPX – برای پک و آنپک کردن UPX
🔹 ابزارهای تحلیل حافظه :
Process Hacker – نمایش حافظه پروسهها
Hollows Hunter – تشخیص کدهای تزریق شده و Unpacking Runtime
پکینگ یعنی فشردهسازی و رمزگذاری کد اجرایی برای جلوگیری از مهندسی معکوس کاهش حجم و مخفی کردن بدافزارها
پکرهای معروف مثل UPX Themida و VMProtect در نرمافزارهای قانونی و بدافزارها استفاده میشن
برای تشخیص یک فایل پکشده ابزارهایی مثل PEiD DIE و x64dbg استفاده میشن
آنپکینگ دستی باینریها شامل پیدا کردن OEP دامپ کردن از حافظه و بازسازی Import Table هست
ابزارهایی مثل Scylla OllyDbg و Process Hacker برای آنپکینگ استفاده میشن
👍12❤3
دیباگ کردن برنامهها بدون سورسکد
🔍 دیباگ (Debugging) چیست و چرا مهمه؟
🔹 دیباگ کردن یعنی اجرای یک برنامه بهصورت خط به خط برای فهمیدن چگونگی عملکرد اون
🔹 وقتی سورسکد رو نداریم با دیباگ کردن میتونیم مقدار متغیرها شرطها و الگوریتمهای داخلی برنامه رو بفهمیم
🔹 این کار برای آنالیز بدافزارها کرک کردن نرمافزارها و رفع باگ در برنامههای ناشناس استفاده میشه
📌 اهداف دیباگ بدون سورسکد:
✅ فهمیدن ساختار برنامه
✅ پیدا کردن کلیدهای رمزنگاری توکنها و پسوردهای داخلی
✅ بایپس کردن مکانیزمهای امنیتی مثل ضد دیباگ و لایسنس
✅ شناسایی نقاط ورود و اجرای کد
ابزارهای دیباگ برای برنامههای ویندوزی
🔹 برای دیباگ برنامههای کامپایل شده (مثلاً فایلهای EXE یا DLL) از دیباگرهای سطح پایین استفاده میکنیم مهمترین ابزارها اینا هستن:
دیباگرهای معروف برای باینریهای ویندوز
✅ x64dbg – محبوبترین دیباگر برای مهندسی معکوس و کرک نرمافزار
✅ OllyDbg – نسخه قدیمیتر ولی همچنان کاربردی
✅ WinDbg – دیباگر مایکروسافت برای ویندوز و کرنلدیباگینگ
✅ IDA Pro – قویترین ابزار برای دیکامپایل و دیباگ کردن توابع
ابزارهای کمکی برای دیباگ
✅ Process Hacker – نمایش جزئیات پردازشهای در حال اجرا
✅ Cheat Engine – برای تغییر مقدار متغیرها در حافظه
✅ Scylla – دامپ کردن و بازسازی Import Table
آشنایی با محیط x64dbg برای دیباگ باینریها
🔹 x64dbg یکی از بهترین ابزارها برای دیباگ کردن برنامههای 32 بیتی و 64 بیتی در ویندوز هست.
🔹 میتونیم فایل اجرایی (EXE) رو باز کنیم کد اسمبلی رو ببینیم روی نقاط مختلف بریکپوینت بذاریم و مقدار متغیرها رو بررسی کنیم
🔍 دیباگ (Debugging) چیست و چرا مهمه؟
🔹 دیباگ کردن یعنی اجرای یک برنامه بهصورت خط به خط برای فهمیدن چگونگی عملکرد اون
🔹 وقتی سورسکد رو نداریم با دیباگ کردن میتونیم مقدار متغیرها شرطها و الگوریتمهای داخلی برنامه رو بفهمیم
🔹 این کار برای آنالیز بدافزارها کرک کردن نرمافزارها و رفع باگ در برنامههای ناشناس استفاده میشه
📌 اهداف دیباگ بدون سورسکد:
✅ فهمیدن ساختار برنامه
✅ پیدا کردن کلیدهای رمزنگاری توکنها و پسوردهای داخلی
✅ بایپس کردن مکانیزمهای امنیتی مثل ضد دیباگ و لایسنس
✅ شناسایی نقاط ورود و اجرای کد
ابزارهای دیباگ برای برنامههای ویندوزی
🔹 برای دیباگ برنامههای کامپایل شده (مثلاً فایلهای EXE یا DLL) از دیباگرهای سطح پایین استفاده میکنیم مهمترین ابزارها اینا هستن:
دیباگرهای معروف برای باینریهای ویندوز
✅ x64dbg – محبوبترین دیباگر برای مهندسی معکوس و کرک نرمافزار
✅ OllyDbg – نسخه قدیمیتر ولی همچنان کاربردی
✅ WinDbg – دیباگر مایکروسافت برای ویندوز و کرنلدیباگینگ
✅ IDA Pro – قویترین ابزار برای دیکامپایل و دیباگ کردن توابع
ابزارهای کمکی برای دیباگ
✅ Process Hacker – نمایش جزئیات پردازشهای در حال اجرا
✅ Cheat Engine – برای تغییر مقدار متغیرها در حافظه
✅ Scylla – دامپ کردن و بازسازی Import Table
آشنایی با محیط x64dbg برای دیباگ باینریها
🔹 x64dbg یکی از بهترین ابزارها برای دیباگ کردن برنامههای 32 بیتی و 64 بیتی در ویندوز هست.
🔹 میتونیم فایل اجرایی (EXE) رو باز کنیم کد اسمبلی رو ببینیم روی نقاط مختلف بریکپوینت بذاریم و مقدار متغیرها رو بررسی کنیم
🔥11👍1
Reversing_secrets_of_reverse_engineering_by_Eldad_Eilam_2005_@bookzillaaa.pdf
8.4 MB
کتاب Secrets of Reverse Engineering نوشته Eldad Eilam است
این کتاب یکی از بهترین منابع برای یادگیری مهندسی معکوس نرمافزاره و مفاهیم کلیدی رو از پایه تا سطح پیشرفته توضیح میده برخی از موضوعاتی که در کتاب پوشش داده شدن
مقدمهای بر مهندسی معکوس و کاربردهای آن
تحلیل باینریها و ساختارهای اجرایی
ابزارهای مورد استفاده مانند IDA Pro، OllyDbg و SoftICE
تکنیکهای دیباگینگ و تحلیل بدافزارها
مکانیزمهای ضد مهندسی معکوس و روشهای بایپس آنها
اگر تازهکار هستی این کتاب یه نقطه شروع عالیه
این کتاب یکی از بهترین منابع برای یادگیری مهندسی معکوس نرمافزاره و مفاهیم کلیدی رو از پایه تا سطح پیشرفته توضیح میده برخی از موضوعاتی که در کتاب پوشش داده شدن
مقدمهای بر مهندسی معکوس و کاربردهای آن
تحلیل باینریها و ساختارهای اجرایی
ابزارهای مورد استفاده مانند IDA Pro، OllyDbg و SoftICE
تکنیکهای دیباگینگ و تحلیل بدافزارها
مکانیزمهای ضد مهندسی معکوس و روشهای بایپس آنها
اگر تازهکار هستی این کتاب یه نقطه شروع عالیه
❤17👍2
📌 چطور یک فایل EXE را در x64dbg دیباگ کنیم؟
1️⃣ x64dbg رو باز کن و برنامه رو Load کن
از منوی File → Open، فایل EXE رو انتخاب کن.
2️⃣ روی نقطه ورود (Entry Point) بریکپوینت بذار معمولاً
در اولین دستور PUSH EBP یا MOV EBP, ESP
3️⃣ اجرای برنامه تا رسیدن به بریکپوینت
روی دکمه Run (F9) کلیک کن تا برنامه اجرا بشه و به اولین بریکپوینت برسه
4️⃣ بررسی رجیسترها و استک
پنل رجیسترها رو ببینید و مقدار متغیرها و آدرسهای حافظه رو بررسی کنید
5️⃣ ردیابی دستورات مهم مثل CALL, JMP, CMP
این دستورات نشون میدن که برنامه چطور دادهها رو پردازش میکنه و کجا تصمیمگیری انجام میشه.
6️⃣ تغییر مقدار متغیرها و بایپس کردن شرطها
اگه برنامه یه مکانیزم ضد دیباگ یا لایسنس داره میتونیم مقدار متغیرهای خاص رو تغییر بدیم تا برنامه گول بخوره
پیدا کردن رشتههای مهم در حافظه برنامه
🔹 بعضی وقتها برنامهها پسوردها، کلیدهای لایسنس، توکنهای API یا پیامهای مخفی دارن.
🔹 میتونیم با ابزارهای دیباگ این رشتهها رو استخراج کنیم
📌 چطور رشتههای مخفی رو پیدا کنیم؟
✅ با x64dbg:
1. از منوی Search → Search for گزینه Strings رو انتخاب کنید
2. تمام رشتههای استفاده شده در برنامه رو ببینیپ و دنبال چیزهای مشکوک بگردید
✅ با ابزارهای کمکی مثل Strings از Sysinternals:
strings.exe my_program.exe
این دستور، تمام رشتههای خوانا داخل فایل اجرایی رو نشون میده.
✅ بررسی حافظه با Cheat Engine:
برنامه رو اجرا کن و Cheat Engine رو باز کن.
پروسه برنامه رو انتخاب کنید و جستجوی Text/String انجام بدید.
اگر چیزی پیدا شد مقدارش رو تغییر بدید و ببینید چه اتفاقی میافته ایا برنامه کرک میشه یا نه
1️⃣ x64dbg رو باز کن و برنامه رو Load کن
از منوی File → Open، فایل EXE رو انتخاب کن.
2️⃣ روی نقطه ورود (Entry Point) بریکپوینت بذار معمولاً
در اولین دستور PUSH EBP یا MOV EBP, ESP
3️⃣ اجرای برنامه تا رسیدن به بریکپوینت
روی دکمه Run (F9) کلیک کن تا برنامه اجرا بشه و به اولین بریکپوینت برسه
4️⃣ بررسی رجیسترها و استک
پنل رجیسترها رو ببینید و مقدار متغیرها و آدرسهای حافظه رو بررسی کنید
5️⃣ ردیابی دستورات مهم مثل CALL, JMP, CMP
این دستورات نشون میدن که برنامه چطور دادهها رو پردازش میکنه و کجا تصمیمگیری انجام میشه.
6️⃣ تغییر مقدار متغیرها و بایپس کردن شرطها
اگه برنامه یه مکانیزم ضد دیباگ یا لایسنس داره میتونیم مقدار متغیرهای خاص رو تغییر بدیم تا برنامه گول بخوره
پیدا کردن رشتههای مهم در حافظه برنامه
🔹 بعضی وقتها برنامهها پسوردها، کلیدهای لایسنس، توکنهای API یا پیامهای مخفی دارن.
🔹 میتونیم با ابزارهای دیباگ این رشتهها رو استخراج کنیم
📌 چطور رشتههای مخفی رو پیدا کنیم؟
✅ با x64dbg:
1. از منوی Search → Search for گزینه Strings رو انتخاب کنید
2. تمام رشتههای استفاده شده در برنامه رو ببینیپ و دنبال چیزهای مشکوک بگردید
✅ با ابزارهای کمکی مثل Strings از Sysinternals:
strings.exe my_program.exe
این دستور، تمام رشتههای خوانا داخل فایل اجرایی رو نشون میده.
✅ بررسی حافظه با Cheat Engine:
برنامه رو اجرا کن و Cheat Engine رو باز کن.
پروسه برنامه رو انتخاب کنید و جستجوی Text/String انجام بدید.
اگر چیزی پیدا شد مقدارش رو تغییر بدید و ببینید چه اتفاقی میافته ایا برنامه کرک میشه یا نه
👍16🔥3❤1
📌 دیباگ کردن برنامههای پایتونی:
✅ از ابزار PySpy یا Frida برای مانیتورینگ کد در حال اجرا استفاده کنید
✅ فایلهای pyc رو با uncompyle6 دیکامپایل کنید
📌 دیباگ کردن برنامههای جاوا:
✅ از JD-GUI یا Bytecode Viewer برای دیدن کد استفاده کنید
✅ با JDB (Java Debugger) میتونی متغیرها و توابع رو بررسی کنید
📌 دیباگ کردن برنامههای دات نت:
✅ از dnSpy برای دیکامپایل و دیباگ کد C# استفاده کنید
✅ توابع رو ویرایش کنید و مجددا کامپایل کنید
#debug
#python
#java
✅ از ابزار PySpy یا Frida برای مانیتورینگ کد در حال اجرا استفاده کنید
✅ فایلهای pyc رو با uncompyle6 دیکامپایل کنید
📌 دیباگ کردن برنامههای جاوا:
✅ از JD-GUI یا Bytecode Viewer برای دیدن کد استفاده کنید
✅ با JDB (Java Debugger) میتونی متغیرها و توابع رو بررسی کنید
📌 دیباگ کردن برنامههای دات نت:
✅ از dnSpy برای دیکامپایل و دیباگ کد C# استفاده کنید
✅ توابع رو ویرایش کنید و مجددا کامپایل کنید
#debug
#python
#java
👍19👏1
❤18👏4
اگه ممبرهای کانال نره بالا متاسفانه مجبور میشم فعالیت رو متوقف کنم چون واقعا انگیزه ای نیست برای ادامه دادن پس تا جایی که میتونید کانال رو share کنید دمتون گرم عیدتونم مبارک سال خوبی داشته باشید❤️🔥🫶🏼
❤47👎3👏1😁1🍌1
ReverseEngineering pinned «اگه ممبرهای کانال نره بالا متاسفانه مجبور میشم فعالیت رو متوقف کنم چون واقعا انگیزه ای نیست برای ادامه دادن پس تا جایی که میتونید کانال رو share کنید دمتون گرم عیدتونم مبارک سال خوبی داشته باشید❤️🔥🫶🏼»
ReverseEngineering
اگه ممبرهای کانال نره بالا متاسفانه مجبور میشم فعالیت رو متوقف کنم چون واقعا انگیزه ای نیست برای ادامه دادن پس تا جایی که میتونید کانال رو share کنید دمتون گرم عیدتونم مبارک سال خوبی داشته باشید❤️🔥🫶🏼
دوستان به زودی دوباره شروع میکنیم دمتون گرم بابت حمایت ها دوستون دارم🫶🏼
👍26❤4👨💻4😁2🍌1
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
🔹 نرمافزارها از روشهای مختلفی برای کنترل دسترسی و اعتبارسنجی لایسنس استفاده میکنن رایجترین روشها اینان:
✅ کلید سریال (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
🔥13❤1👏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
📌 برای کرک کردن باید مسیر اجرای لایسنس رو پیدا کنیم و اون رو بایپس کنیم
🔍 مرحله 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
👍12❤1🔥1👏1
کرک کردن نرمافزارهای آنلاین
🔹 بعضی نرمافزارها برای فعالسازی به سرور متصل میشن برای کرک کردن این نرمافزارها باید ترافیک رو مانیتور کنیم و تغییر بدیم
📌 روشهای کرک کردن نرمافزارهای آنلاین:
✅ مانیتورینگ HTTP/S با Burp Suite یا Fiddler
ببین درخواست به چه API ارسال میشه و پاسخ سرور رو جعل کن
✅ ساخت سرور جعلی (Fake License Server)
میتونی با ابزارهایی مثل mitmproxy یک سرور فیک بسازی و نرمافزار رو گول بزنی
✅ پچ کردن درخواستهای لایسنس در دیباگر
درخواست HTTP رو با x64dbg یا IDA Pro پیدا کن و مقدار لایسنس رو تغییر بده
#crack
#reverse
🔹 بعضی نرمافزارها برای فعالسازی به سرور متصل میشن برای کرک کردن این نرمافزارها باید ترافیک رو مانیتور کنیم و تغییر بدیم
📌 روشهای کرک کردن نرمافزارهای آنلاین:
✅ مانیتورینگ 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
اولین قدم اینه که بفهمیم اپلیکیشن چه نقاط ورودی (entry point)هایی داره:
✅ ورودی کاربر (فرمها، فیلدها، فایلهای ورودی)
✅ ارتباط با شبکه (پورتها، سوکتها، APIها)
✅ Registeryو فایلهای سیستمی
✅ COM objects و DLLها
✅ Named Pipes و فایلهای موقت
#Attack
#Attack_Surface
#Application
❤9