إزالة التعمية وحيل مكافحة التحليل
حدّد تعمية السلاسل وتسطيح تدفق التحكم ومكافحة تصحيح الأخطاء والتعبئة، وتجاوزها.
إزالة التعمية وحيل مكافحة التحليل درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
لماذا تموّه البرمجيات الخبيثة الشيفرة؟
يموّه مؤلفو البرمجيات الخبيثة الشيفرة لإحباط: اكتشاف التوقيعات الساكنة بواسطة برامج مكافحة الفيروسات، والهندسة العكسية التي يجريها المحللون، واكتشاف بيئات الاختبار المعزولة. وإزالة التمويه هي عملية استعادة الشيفرة القابلة للقراءة من شكلها المموّه.
تمويه السلاسل النصية
نادرًا ما تخزّن البرمجيات الخبيثة عناوين C2 URL أو أسماء API بنص واضح. ومن التقنيات الشائعة:
- ترميز XOR:
key ^ charلكل بايت - ترميز Base64
- سلاسل المكدس: سلاسل تُبنى حرفًا بعد حرف أثناء التشغيل
- تشفير مخصص باستخدام مفتاح مضمّن في الشيفرة
إزالة تمويه سلاسل XOR
العثور على مفاتيح XOR:
# If you see single-byte XOR:
import string
for key in range(256):
decoded = bytes([b ^ key for b in encoded])
if all(c in string.printable for c in decoded.decode('latin1')):
print(f"Key {key}: {decoded}")تغليف الشيفرة
تضغط أدوات التغليف الملف الثنائي الأصلي أو تشفّره، وتضيف كودًا أوليًا يفك ضغطه أو تشفيره أثناء التشغيل. ولا تظهر الشيفرة الأصلية على القرص مطلقًا. ومن الأمثلة: UPX (استخدام مشروع)، وأدوات التغليف المخصصة في البرمجيات الخبيثة.
الاكتشاف: جدول استيراد صغير + إنتروبيا مرتفعة + توقيعات أدوات تغليف معروفة في PEID/Detect-It-Easy.
حيل منع التصحيح البرمجي
تكتشف البرمجيات الخبيثة مصححات الأخطاء وتغيّر سلوكها:
- IsDebuggerPresent() — فحص Windows API
- فحوصات التوقيت — تعمل الشيفرة ببطء عند تشغيلها تحت مصحح أخطاء
- فحص ptrace — لا يمكن لعمليات Linux استخدام ptrace إلا مرة واحدة
- مصائد INT3 — اكتشاف نقاط التوقف البرمجية
# Linux anti-ptrace:
if (ptrace(PTRACE_TRACEME, 0, 0, 0) == -1) {
exit(); // already being traced!
}منع اكتشاف الآلات الافتراضية وبيئات الاختبار المعزولة
تكتشف البرمجيات الخبيثة البيئات الافتراضية أو المعزولة، ثم تنتظر أو تنهي التنفيذ:
- فحوصات CPUID لاكتشاف بت مشرف الآلة الافتراضية
- البحث عن مفاتيح السجل والعمليات والملفات الخاصة بالآلات الافتراضية
- مدة تشغيل قصيرة، وعدم وجود ملفات حديثة أو سجل تصفح
- فحوصات حركة الفأرة (فبيئات الاختبار المعزولة الآلية لا تحرك الفأرة)
تمويه تدفق التحكم
تقنيات لإرباك أدوات التفكيك البرمجي:
- تمويه القفزات — قفزات غير مباشرة عبر عناوين محسوبة
- المحمولات المعتمة — شروط صحيحة دائمًا تربك التحليل
- تداخل التعليمات — تضمين البيانات في تيار التعليمات
تجاوز منع التصحيح البرمجي في GDB
تجاوز حيل منع التصحيح البرمجي الشائعة:
# Patch IsDebuggerPresent return value:
# In GDB: set $rax = 0 after the call
# Or use NOP sled to skip the check:
# In GDB: jump *0x401234 (skip the check)
# Force ptrace to succeed:
set follow-fork-mode childفك التغليف الديناميكي
بالنسبة إلى البرمجيات الخبيثة المغلّفة، اترك الكود الأولي لفك التغليف يعمل حتى تصبح الشيفرة الأصلية في الذاكرة، ثم فرّغها:
- شغّل البرنامج في GDB حتى يكتمل تنفيذ الكود الأولي لأداة التغليف
- اعثر على OEP (نقطة الدخول الأصلية) — غالبًا عبر وضع نقطة توقف عند
VirtualAlloc+jmp reg - افرغ الذاكرة إلى ملف باستخدام
dump binary memory
إزالة التمويه القائمة على المحاكاة
أدوات تحاكي الشيفرة لكشف السلاسل المموّهة من دون تشغيل الملف الثنائي:
- FLOSS (FireEye) — يستخرج سلاسل المكدس والسلاسل المموّهة
- speakeasy — محاكاة Windows API
- Capa — يحدد قدرات البرمجيات الخبيثة تلقائيًا
التعرّف على الأنماط
يسرّع التعرّف على أنماط البرمجيات الخبيثة الشائعة عملية التحليل:
- تجزئة API: استخدام CRC32/ROR13 لأسماء الدوال لحل عمليات الاستيراد أثناء التشغيل
- أنماط حقن DLL الانعكاسي
- كودات بدء تشغيل استدعاءات النظام في NTDLL (استدعاءات نظام مباشرة لتجاوز خطافات EDR)
تحقق سريع: منع التحليل
تفحص عينة من البرمجيات الخبيثة ما إذا كانت ptrace(PTRACE_TRACEME) تُرجع -1 في Linux. ما التقنية المستخدمة هنا؟
مراجعة الدرس
تموّه البرمجيات الخبيثة السلاسل النصية (XOR وسلاسل المكدس)، وتغلّف الشيفرة، وتكتشف مصححات الأخطاء (IsDebuggerPresent و ptrace وفحوصات التوقيت)، وتتجنب البيئات المعزولة (فحوصات الآلات الافتراضية والخمول). تشمل إزالة التمويه تجربة مفاتيح XOR بالقوة الغاشمة، وفك التغليف الديناميكي (التفريغ بعد OEP)، واستخدام FLOSS لسلاسل المكدس. صحّح فحوصات منع التصحيح البرمجي أو تجاوزها في GDB. وتستخرج أدوات المحاكاة (FLOSS و speakeasy) السلوك بأمان.
تعلم Cyber Security Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 76
- الدروس
- 303
الأسئلة الشائعة
هل درس «إزالة التعمية وحيل مكافحة التحليل» مجاني؟
نعم — نص درس «إزالة التعمية وحيل مكافحة التحليل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «إزالة التعمية وحيل مكافحة التحليل»؟
حدّد تعمية السلاسل وتسطيح تدفق التحكم ومكافحة تصحيح الأخطاء والتعبئة، وتجاوزها. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إزالة التعمية وحيل مكافحة التحليل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Ghidra: التنقل في الملفات الثنائية وإضافة التعليقات التوضيحية
- أساسيات تجميع x86/x64 لمحللي البرمجيات العكسية
- التحليل الديناميكي باستخدام GDB وpwndbg
- إزالة التعمية وحيل مكافحة التحليل