我正在使用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