لقد كنت أدرس المواد المتعلقة بـ DotNet مؤخرًا، وكان sscli أمرًا جيدًا حقًا:P.
أثناء الدراسة، قمت بتجميع المعرفة وصنعت هذه الأداة الصغيرة.
مبدأ الحماية مشابه لمبدأ Remotesoft و maxtocode الصيني. يحتاج البرنامج المشفر أيضًا إلى أن يكون مصحوبًا بمكتبة وقت التشغيل عند إصداره.
ومع ذلك، على عكس هذين الاثنين، فإن مكتبة وقت التشغيل المضمنة ليست مكتبة dll أصلية خالصة، ولكنها عبارة عن تجميع مختلط لـ C++/CLI.
لقد اتخذت الأداة شكلها واكتمل إطار عمل النواة الشامل. يستخدم لتشفير عينة ويعمل بشكل طبيعي.
حتى أن بعض الجوانب تتجاوز maxtocode.
1. لا يعتمد على برامج ميكروسوفت الإلداسم والإسلام.
يتم تنفيذ كل من تفكيك IL وتجميع IL برمجيًا.
يمكن تشفير التجميعات التي تحتوي على التعليمات البرمجية الأصلية.
2. أداة مكافحة فك التجميع، لا يمكن عرض التجميع المشفر لـ maxtocode مباشرة باستخدام العاكس، ولكن بعد تشغيل البرنامج، استخدم pedumper، وبعد الإغراق، يمكنك استخدام Reflectotr لعرض البنية، بالطبع، لا تزال غير قادر على رؤية الكود.
التجميع المشفر بواسطة dnguard أفضل مما كنت أتوقع، لا يمكن عرض التجميع المشفر باستخدام العاكس، ولا يمكن عرض التجميع الذي تم تفريغه باستخدام المكون الإضافي العاكس.
أشعر أن العاكس لا يزال ضعيفًا بعض الشيء. يمكن لبرنامج مماثل، Disa# وXenocode fox، فتح وعرض التجميعات المشفرة لـ maxtocode وdnguard مباشرة.
تحقيقًا لهذه الغاية، حاولت إضافة تشويش هيكلي إلى التجميع المشفر بواسطة dnguard، وكان له تأثير، أي أنه عند عرض البنية في Disa# وfox، سيكون هناك بعض الالتباس، أي قد يتم عرض وظائف الفئة A. في الصف ب. التأثير ليس جيدًا جدًا، لا يوجد سوى عدد قليل من الوظائف في كل فئة من شأنها أن تسبب مشاكل.
3. الميزات الجديدة لـ Anti .Net 2.0 ليست قوية جدًا، قوتها مماثلة لتلك الموجودة في maxtocode 3.13 (الإصدار الداخلي). سمعت أن maxtocode قد أصدر 3.14 في الرد الموجود في مدونة جيسون، يبدو أنه هو نفسه 3.13). يمكن استخدام الحد الأقصى 3.12 عن طريق تصحيح عدد قليل من البايتات، ويمكن استخدام الانعكاس 3.13 لا يختلف كثيرًا، وعدد البايتات المطلوبة للتصحيح أقل من 3.12.
يوجد الآن حل أفضل في هذا الصدد، والذي يمكن أن يزيد الكثافة بشكل كبير دون التأثير على الكفاءة. لكنها لا تستطيع منع مقالب النفايات بشكل كامل.
هناك أيضًا حل مثالي نسبيًا لمكافحة الإغراق، والذي يجب تنفيذه جنبًا إلى جنب مع تقنية حماية أخرى.
نحن لا نخطط لمناقشة هذا الجانب بعمق بعد اكتمال غلاف تشفير DNGuard، سنبدأ تقنية حماية أخرى ونجمع في النهاية بين الحماية.
4. استخدم ildasm و ilasm لاستعادة التجميع بعد مكافحة التفريغ. بالإضافة إلى ميزات مكافحة التفريغ الجديدة لـ anti .net 2.0، يضيف DNGuard أيضًا أداة مكافحة التفريغ التي قمت بإنشائها في الأيام الأولى. بالإضافة إلى ذلك، يتم أيضًا استخدام ميزة التجميع المختلط C++/CLI لمنع حدوث ildasm بعد التفريغ. ومع ذلك، هذا ليس قويًا جدًا، ويمكن إصلاح التجميعات الصغيرة بسهولة لتنفيذ تجميع IL.
لا يزال هناك الكثير من العمل الذي يتعين القيام به بشأن خوارزمية التشفير، ولم يتم بعد حماية مكتبة وقت التشغيل نفسها. لقد وجدت أنه يمكنك العثور على أدوات حماية جاهزة لمكتبات DLL الأصلية البحتة، مثل thmida، وهي جيدة جدًا. تستخدم مكتبة وقت تشغيل maxtocode هذه الصدفة، لكنني لم أتمكن مطلقًا من العثور على طريقة جيدة لمكتبات DLL C++/CLI. . يبدو أنه لا يمكننا إضافة طبقة الحماية إلا يدويًا، وقد بدأنا بالفعل في اختبارها. سنقوم الآن بإضافة غلاف تشفير بسيط، بعد الانتهاء من ذلك، سنضع عرضًا توضيحيًا لـ DNGuard عليه.
بعد أن يقوم DNGuard بتشفير التجميع، استخدم العاكس لعرض:
استخدم العاكس لعرض تفريغ التجميع المشفر لـ DNGuard:
يتم عرض التجميع المشفر بواسطة Maxtocode باستخدام العاكس:
بعد تفريغ مجموعة Maxtocode المشفرة، قم بمشاهدتها باستخدام العاكس: