
إنشاء برمجيات خبيثة DRM لمكافحة النسخ
الصفحة الرئيسية لـ Maldev Academy
المنهج الدراسي لـ Maldev Academy
يستخدم هذا المستودع تقنية لتعديل جدول عناوين الاستيراد (IAT) الخاص ببرنامج ما عن طريق استبدال أسماء الدوال المستوردة بقيمها الترتيبية المقابلة، مما ينتج عنه ملف ثنائي يستورد الدوال حصريًا عبر القيم الترتيبية.
تقلل هذه التقنية من فرص نجاح تحليل الملف الثنائي بواسطة أنظمة العزل (Sandbox) بسبب عدم تطابق القيم الترتيبية على الأنظمة المختلفة. يؤدي هذا التباين إلى فشل مُحمّل Windows (Loader) إما في العثور على عنوان الدالة الصحيح أو في استرجاع دالة غير صحيحة، مما يؤدي إلى تعطل الملف الثنائي في بيئة العزل. وأخيرًا، تجعل هذه التقنية عملية الهندسة العكسية للملف الثنائي أكثر صعوبة.
يضم هذا المستودع مشروعين:
يقرأ ملف PE من القرص ويستبدل دواله المستوردة بالاسم بقيمها الترتيبية. لن يعمل البرنامج المُنشأ إلا على نظام تكون فيه للدوال المستوردة نفس القيم الترتيبية الموجودة في النظام الذي أنشأه.
TechTestBuilder.exe لإنشاء mimikatzDRM.exe، وهو mimikatz.exe مع دوال مستوردة بالقيم الترتيبية.

mimikatzDRM.exe على نظام مختلف عن النظام المستخدم لإنشائه إلى ظهور الخطأ التالي.

يستخدم هذا المشروع تقنية DRM نفسها عند تنفيذه لأول مرة. هذا يعني أنه لا يمكن تنفيذ هذا الملف الثنائي على أجهزة أخرى بسهولة. يطبّق OrdinalDRMBin.exe الخطوات التالية:
يتحقق مما إذا كان البرنامج المحلي يحتوي على أي دوال مستوردة بالاسم، وإذا لم يكن كذلك، فسيتخطى تطبيق تصحيح IAT.
يقرأ نفسه من القرص ويحوّل جميع الدوال المستوردة بالاسم إلى دوال مستوردة بالقيم الترتيبية.
يحذف نفسه من القرص.
يكتب الصورة الجديدة حيث تُستورد جميع الدوال بالقيم الترتيبية.
OrdinalDRMBin.exe بدون تنفيذه. لاحظ أن الدوال مستوردة بالاسم.

OrdinalDRMBin.exe بعد تنفيذه. لاحظ أن الدوال أصبحت الآن مستوردة بقيمها الترتيبية.

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