Domanda

Sto usando XNA 4 e Monogame per sviluppare un'applicazione. Inoltre, utilizzo EASFUSCATOR per offuscare il codice sorgente C#. È possibile e quale sarebbe il modo migliore per rendere le file nella cartella del contenuto non leggibili?

Fondamentalmente, un nome file come "title_image.xnb" dovrebbe essere automaticamente rinominato in qualcosa di simile a "hdrv4eedx.xnb" (proprio come esempio). La crittografia del contenuto non è necessariamente necessaria.

È stato utile?

Soluzione

Non esiste un modo incorporato per farlo di cui sono a conoscenza.

È possibile creare uno script PowerShell che passerà in modo ricorsivo a tutti i file di contenuto, quindi usi espressioni regolari per trovare le funzioni di contenuto. Carica appropriate nel codice e sostituire quelle con hash generati in modo casuale. Esegui quindi questo script come parte dell'offuscamento.

Probabilmente sarebbe anche semplice da scrivere se hai tutti i tuoi contenuti.load <> in un singolo file. Allora lo pseudocodice sarebbe qualcosa di simile:

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

Ma, sai, "pseudocodice". :). Ci vorrebbe un po 'di lavoro.

Altri suggerimenti

Perché non aggiungere tutte le risorse con quei nomi in Content Manager, dal codice saprai che questo è title_image e non sarà leggibile dagli utenti finali se aprono la cartella.

title_image = Content.Load<Texture2D>("hdRv4EEdx");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top