سؤال

أنا أستخدم XNA 4 و Monogame لتطوير تطبيق. علاوة على ذلك ، أستخدم easfuscator لإلغاء رمز المصدر C#. هل هو ممكن وماذا سيكون أفضل طريقة لجعل أسماء الملفات في مجلد المحتوى غير قابل للإنسان؟

في الأساس ، يجب إعادة تسمية اسم ملف مثل "title_image.xnb" تلقائيًا إلى شيء مثل "HDRV4Eedx.xnb" (تمامًا كمثال). لا يلزم بالضرورة تشفير المحتوى.

هل كانت مفيدة؟

المحلول

لا توجد طريقة مدمجة للقيام بذلك.

يمكنك إنشاء برنامج نصي PowerShell الذي سيخوض جميع ملفات المحتوى الخاصة بك بشكل متكرر ، ثم استخدام تعبيرات منتظمة للعثور على محتوى مناسب. تحميل وظائف في الكود الخاص بك واستبدالها بتجزئة تم إنشاؤها عشوائيًا. يمكنك بعد ذلك تشغيل هذا البرنامج النصي كجزء من التشويش.

ربما يكون من السهل الكتابة إذا كان لديك كل المحتوى الخاص بك. تحميل <> المكالمات في ملف واحد. ثم سيكون الرمز الكاذب مثل:

For All Files in Content directory (and subdirectories, recursively):
  String hash = CreateRandomHash()
  File.renameTo(hash)
  "LoadContent.cs" = "LoadContent.cs".replace("Content.Load<Texture2D>(" + File.original.Name + ")", "Content.Load<Texture2D>(" + hash + ")");

ولكن ، أنت تعرف ، "رمز الكاذب". :). سوف يستغرق بعض العمل.

نصائح أخرى

لماذا لا تضيف جميع الموارد مع هذه الأسماء إلى مدير المحتوى ، من الكود ستعرف أن هذا هو title_image ولن يتم قراءتها من المستخدمين النهائيين إذا فتحوا المجلد.

title_image = Content.Load<Texture2D>("hdRv4EEdx");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top