Запугивают имена файлов в папке содержимого XNA

StackOverflow https://stackoverflow.com/questions/19836189

  •  25-07-2022
  •  | 
  •  

Вопрос

Я использую XNA 4 и Monogame для разработки приложения. Кроме того, я использую EaSfuscator для запугивания исходного кода C#. Возможно ли это, и как бы лучше всего сделать имена файлов в папке содержимого, не читаемого?

По сути, имя файла, подобное «title_image.xnb», должно автоматически переименоваться в чем -то вроде «hdrv4eedx.xnb» (как пример). Шифрование контента не обязательно необходимо.

Это было полезно?

Решение

Нет встроенного способа сделать это, о котором я знаю.

Вы можете создать скрипт PowerShell, который будет рекурсивно проходить все ваши файлы контента, а затем использовать регулярные выражения, чтобы найти соответствующие функции Content.Load в вашем коде и заменить тех, кто случайно сгенерированный хэши. Затем вы запустите этот сценарий как часть запутывания.

Вероятно, было бы даже просто написать, если бы у вас был весь ваш контент. Загрузите <> вызовы в одном файле. Тогда псевдокод будет чем -то вроде:

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