تطبيقات التعتيم التي تم إنشاؤها باستخدام Dotfuscator (إصدار Visaul Studio 2022)

تحديث الصفحة :
تاريخ إنشاء الصفحة :

ملخص

يتم إنشاء التطبيقات المستندة إلى سلسلة .NET من أطر العمل بما يسمى لغة وسيطة مشتركة ، بحيث يمكن قراءتها في شكل قريب من شفرة المصدر الأصلية باستخدام أدوات التفكيك وما شابه ذلك. يصف هذا القسم كيفية تعتيم الفئات وأسماء الأساليب في تنسيقات غير قابلة للقراءة بسهولة باستخدام الإصدار المجاني من Dotfuscator ، أداة التشويش التي تأتي مع Visual Studio.

يتم وصفه باستخدام Visual Studio 2022 ، ولكن يمكن استخدامه أيضا في إصدارات أخرى من Dotfuscator.

بيئة التشغيل

استوديو مرئي
  • فيسوال ستوديو 2022

نبذة عن دوتفوسكاتور

Dotfuscator هي أداة تشويش تجعل من الصعب قراءة التعليمات البرمجية المصدر عند تفكيكها للتطبيقات المكتوبة باستخدام عائلة .NET من الأطر (المشار إليها فيما يلي باسم .NET). يأتي Dotfuscator مع Visual Studio مجانا ومقابل رسوم.

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

يحتوي Dotfuscator على ميزات وأسعار وإصدارات مختلفة اعتمادا على الإصدار ، لذا يرجى الرجوع إلى الصفحة الرئيسية التالية للحصول على التفاصيل.

حول التفكيك

لقد ذكرت سابقا أن التطبيقات المكتوبة في .NET يمكنها بسهولة تفكيك وقراءة شفرة المصدر الأصلية ، ولكن ما يحدث بالفعل هو أنه إذا قمت بتفكيك ملف .exe (أو ملف .dll) كما هو موضح في الشكل التالي ، فيمكنك تقريبا إعادة إنتاج شفرة المصدر الأصلية ، مثل مساحة الاسم واسم الفئة واسم الطريقة وما إلى ذلك.

أنواع البرامج التي يجب التعتيم عليها

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

هذه المرة ، نحن ننظر إلى مشروع في WPF ، وهو تطبيق سطح مكتب.

تثبيت دوتفوسكاتور

يأتي هذا التطبيق مع Visual Studio 2022 ولكنه غير مضمن في التثبيت القياسي (في بعض Visual Studios السابقة قد يتم تثبيته من البداية).

لإضافة Dotfuscator: ابدأ تشغيل Visaul Studio وحدد الحصول على الأدوات والميزات من الأدوات.

حدد "المكونات الفردية" من علامة التبويب أعلاه ، وتحقق من "الحماية الوقائية - Dotfuscator" في مجموعة "أدوات التعليمات البرمجية" ، وانقر فوق الزر تثبيت في الزاوية اليمنى السفلى. عند القيام بذلك، أغلق وحدة تحكم Visual Studio.

إجراء التشويش

يصف الخطوات اللازمة لجعل هذه الأسماء مربكة ومشوشة.

إنشاء تطبيق في Visual Studio إنشاء ملف .exe ثم انقر فوق . إنشاء ملف DLL. حتى الآن ، هذا هو نفس إنشاء تطبيق منتظم. يجب أن يكون التطبيق الذي تنشئه مخصصا لأولئك الذين تم إنشاؤهم في إصدار الإصدار. (لأنك لا تنشر عادة في التصحيح.)

بعد إنشاء .exe أو .dll، حدد أدوات من القائمة Visual Studio، ثم اختر الحماية الوقائية - مجتمع Dotfuscator.

يتم عرض شاشة التسجيل ، ولكنها غير مطلوبة ، لذلك إذا كانت غير ضرورية ، فانقر فوق الزر إلغاء كما هو.

ابق وانقر فوق الزر موافق ( OK) .

يبدأ Dotfuscator. يعمل التطبيق من تلقاء نفسه ، بحيث يمكنك تشويش الملفات غير ذات الصلة بالمشروع المفتوح حاليا. (في حالة الإصدار المجاني من التطبيق نفسه ، من المفترض أن يتم بدء تشغيل Visual Studio.) )

في هذه المقالة ، سأقوم بتعتيم مشروع تطبيق .NET 6.0 WPF تم إنشاؤه باستخدام الإعدادات الافتراضية كعينة.

حدد "إدخال" من القائمة الموجودة على اليسار وانقر فوق الزر "+".

حدد ملف البرنامج الذي تريد تشويشه. غالبا ما تكون التطبيقات المكتوبة في .NET Framework غامضة .exe ، ولكن في .NET و .NET Core ، غالبا ما تكون البرامج .dll كيانات. ستحتوي تطبيقات NET WPF أيضا على كيانات .dll ، لذا اختر .dll.

سيتم إضافته إلى القائمة. إذا كان يتكون من DLLs متعددة، أضف أكثر من واحد.

بعد إضافة الملف الهدف ، انقر فوق الزر "إنشاء" من شريط الأدوات.

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

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

حدد "نتيجة" من القائمة الموجودة على اليسار للاطلاع على تفاصيل كيفية تغيير أسماء الفئات والطريقة.

أسماء الفئات وأسماء الأساليب في الشجرة على اليمين، مثل "->"، هي الأسماء بعد التشويش. عن طريق تغيير اسم الفئة أو اسم الأسلوب إلى اسم لا معنى له مثل هذا ، يمكنك جعل محتويات شفرة المصدر صعبة القراءة حتى لو تم تفكيكها.

يتم حفظ البرامج المبهمة في مجلد يسمى "Dotfuscated" في المكان الذي قمت فيه بحفظ ملف المشروع.

Map.xml هو ملف نتيجة تشويش، بحيث يمكنك حذفه بأمان.

نظرا لأنه لا يمكن بدء تشغيل .NET 6.0 WPF بواسطة DLL وحده ، قم بنسخ "XXXX.exe" و "XXXX.runtimeconfig.json" اللذين تم إنشاؤهما في وقت إنشاء الإخراج إلى نفس المجلد وبدء تشغيله. إذا كان بإمكانك البدء بشكل طبيعي ، فلا توجد مشكلة في الوقت الحالي. إذا لم تتمكن من بدء تشغيله ، فقد تكون ملفات مفقودة أو قد تقوم بإنشاء برنامج يصبح غير متناسق بسبب التشويش.

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

لاحظ أن أسماء الفئات المعرفة في مكتبات .NET لا تخضع لإعادة التسمية لأنها موجودة كإطار عمل.

هذه المرة ، قمت بتعتيم المشروع الافتراضي الذي تم إنشاؤه كما هو ، لذلك أعتقد أن هناك صورة غير غامضة تقريبا ، لكنني أعتقد أن تأثير التعتيم يصبح واضحا لأنه كلما كان المشروع أكبر ، زادت الفئات الفريدة.

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

استبعاد التشويش

إذا كان لديك أسماء فئات أو خصائص لا تريد التعتيم عليها، فيمكنك استبعادها.

أثناء تحميل التجميع، حدد إعادة تسمية > استبعاد من الجانب الأيسر من الشاشة. نظرا لعرض محتويات التجميع ، سأتحقق من تلك التي لا أريد التعتيم عليها.

من الممكن استبعاد التشويش على مستوى دقيق ، لكنني أعتقد أنه من الأسهل ضبطه على أساس مساحة الاسم.

وضع المكتبة

عند تحديد تجميع الإدخال ، يمكنك أن ترى أنه تم تحديد "وضع المكتبة".

"وضع المكتبة" هو إرفاقه ب DLLs التي قد يتم استدعاؤها بواسطة برامج أخرى. إذا تم التحقق من ذلك ، يتم استبعاد الفئات والخصائص العامة التي تسميها البرامج الأخرى من التشويش.

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

تعتيم .exe ذات الملف الواحد (غير مؤكد)

التحقيقات في هذا العنصر في Visual Studio 2022 غير مؤكدة حاليا.

من المحتمل أن يكون التعتيم مع MSBuild ، لكنني أؤجله بسبب نقص المعلومات في الوقت الحالي.