Question

J'utilise XNA 4 et Monogame pour développer une application. De plus, j'utilise Easfuscator pour obscurcir le code source C #. Est-il possible et quelle serait la meilleure façon de rendre les noms de fichiers dans le dossier de contenu non humains lisibles?

Fondamentalement, un nom de fichier comme "title_image.xnb" devrait automatiquement être renommé quelque chose comme "hdrv4eedx.xnb" (comme exemple). Le cryptage du contenu n'est pas nécessairement nécessaire.

Était-ce utile?

La solution

Il n'y a aucun moyen intégré de le faire que je connais.

Vous pouvez créer un script PowerShell qui passera récursivement par tous vos fichiers de contenu, puis utiliser des expressions régulières pour trouver les fonctions de contenu.loade appropriées dans votre code et les remplacer par des hachages générés aléatoirement. Vous exécuteriez ensuite ce script dans le cadre de l'obscurcissement.

Il serait probablement même simple à écrire si vous avez tous vos appels de contenu.load <> dans un seul fichier. Ensuite, le pseudocode serait quelque chose comme:

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 + ")");

Mais, vous savez, "pseudocode". :). Cela prendrait du travail.

Autres conseils

Pourquoi ne pas ajouter toutes les ressources avec ces noms dans le gestionnaire de contenu, à partir du code, vous saurez que c'est title_image et ne sera pas lisible par les utilisateurs finaux s'ils ouvrent le dossier.

title_image = Content.Load<Texture2D>("hdRv4EEdx");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top