أمس, 11:58 PM
? مقدمةالهندسة العكسية (Reverse Engineering) في بيئة .NET Framework تعني تحليل الملفات التنفيذية (EXE / DLL) لفهم كيفية عملها داخليًا دون توفر الكود المصدري.
السبب الرئيسي لسهولة هذه العملية نسبيًا في .NET هو أن الكود لا يُحوَّل مباشرة إلى Machine Code، بل إلى IL (Intermediate Language)، وهو تمثيل وسيط قابل لإعادة البناء.
? كيف يعمل برنامج .NET داخليًا؟عند كتابة كود C#:
if (isValid)
RunApp();يتم تحويله إلى:
?️ الأداة الأساسية: dnSpydnSpy هو أحد أقوى أدوات:
⚙️ خطوات العمل باستخدام dnSpy1️⃣ فتح الملف
WindowsFormsApplication2.exe
2️⃣ استكشاف الهيكلستجد:
Program
└── Main()
Form1
└── button1_Click()
3️⃣ قراءة الكودdnSpy يعيد الكود إلى C#:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "1234")
MessageBox.Show("Valid");
}? هنا فهمت منطق التفعيل بسهولة
4️⃣ تحليل IL (للمستوى المتقدم)يمكنك مشاهدة:
5️⃣ التعديل (Patching)تقدر تعدل الكود مباشرة:
if (true)
MessageBox.Show("Valid");ثم:
?️ الحماية ضد الهندسة العكسية? أدوات الحماية:
⚠️ التحديات أثناء التحليلعند وجود حماية:
a.b.c.d()
? استخدامات الهندسة العكسية
⚖️ الجانب القانوني
? خلاصة احترافيةبيئة .NET تجعل الهندسة العكسية:
السبب الرئيسي لسهولة هذه العملية نسبيًا في .NET هو أن الكود لا يُحوَّل مباشرة إلى Machine Code، بل إلى IL (Intermediate Language)، وهو تمثيل وسيط قابل لإعادة البناء.
? كيف يعمل برنامج .NET داخليًا؟عند كتابة كود C#:
if (isValid)
RunApp();يتم تحويله إلى:
- IL Code (لغة وسيطة)
- ثم يُنفَّذ بواسطة CLR (Common Language Runtime)
?️ الأداة الأساسية: dnSpydnSpy هو أحد أقوى أدوات:
- Decompilation (تحويل IL إلى C#)
- Debugging (تشغيل البرنامج خطوة بخطوة)
- Editing (تعديل الكود داخل الـ EXE مباشرة)
⚙️ خطوات العمل باستخدام dnSpy1️⃣ فتح الملف
- افتح dnSpy
- اسحب ملف:
WindowsFormsApplication2.exe
2️⃣ استكشاف الهيكلستجد:
- Namespaces
- Classes
- Methods
Program
└── Main()
Form1
└── button1_Click()
3️⃣ قراءة الكودdnSpy يعيد الكود إلى C#:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "1234")
MessageBox.Show("Valid");
}? هنا فهمت منطق التفعيل بسهولة
4️⃣ تحليل IL (للمستوى المتقدم)يمكنك مشاهدة:
- IL Code
- Stack operations
- Low-level behavior
5️⃣ التعديل (Patching)تقدر تعدل الكود مباشرة:
if (true)
MessageBox.Show("Valid");ثم:
- Compile داخل dnSpy
- حفظ التعديلات
?️ الحماية ضد الهندسة العكسية? أدوات الحماية:
- Dotfuscator
- ArmDot .NET Obfuscator
- Obfuscation (تشويش الأسماء)
- Control Flow Obfuscation
- String Encryption
- Code Virtualization (أقوى نوع)
⚠️ التحديات أثناء التحليلعند وجود حماية:
- الكود يصبح غير مقروء
- أسماء مثل:
a.b.c.d()
- أو تعليمات معقدة جدًا
? استخدامات الهندسة العكسية
- فهم برامج قديمة بدون سورس
- تحليل البرمجيات الخبيثة (Malware Analysis)
- اختبار الأمان (Security Testing)
- التعلم من مشاريع الآخرين
⚖️ الجانب القانوني
- ✔ مسموح: التعلم، البحث، البرامج المفتوحة
- ❌ ممنوع: كسر حماية برامج مدفوعة أو التعديل عليها بدون إذن
? خلاصة احترافيةبيئة .NET تجعل الهندسة العكسية:
إقتباس :سهلة نسبيًا مقارنة باللغات Native مثل C++لكن مع استخدام أدوات الحماية الحديثة:
إقتباس :تتحول العملية من "قراءة كود" إلى "تحليل سلوك"

