Frage

Ich verwende XNA 4 und Monogame, um eine Anwendung zu entwickeln. Darüber hinaus verwende ich den Easfuscator, um den C# -Lockencode zu verschleiern. Ist es möglich und wie wäre es der beste Weg, um die Dateinamen im Inhaltsordner nicht menschlich zu lesbar zu machen?

Grundsätzlich sollte ein Dateiname wie "title_image.xnb" automatisch in so etwas wie "hdrv4eedx.xnb" umbenannt werden (genau wie ein Beispiel). Die Verschlüsselung des Inhalts ist nicht unbedingt erforderlich.

War es hilfreich?

Lösung

Es gibt keinen integrierten Weg, dies zu tun, was mir bekannt ist.

Sie können ein PowerShell -Skript erstellen, das rekursiv alle Ihre Inhaltsdateien durchläuft, und dann regelmäßige Ausdrücke verwenden, um den entsprechenden Inhalt zu finden. Laden Sie Funktionen in Ihrem Code und ersetzen Sie diese durch zufällig generierte Hashes. Sie würden dieses Skript dann als Teil der Verschleierung ausführen.

Es wäre wahrscheinlich sogar einfach zu schreiben, wenn Sie alle Ihre Inhalte haben. Dann wäre der Pseudocode so etwas wie:

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

Aber Sie wissen, "Pseudocode". :). Es würde einige Arbeit dauern.

Andere Tipps

Warum nicht alle Ressourcen mit diesen Namen in den Content Manager hinzufügen, werden Sie aus dem Code wissen, dass dies ist title_image und kann nicht von Endbenutzern lesbar sein, wenn sie den Ordner öffnen.

title_image = Content.Load<Texture2D>("hdRv4EEdx");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top