我是游戏开发者,当我发布新游戏BOOM !!!时,该游戏将被修改,并且我正在运行网络游戏,对我来说这是巨大的损失,我正在与Unity合作,希望你伙计们可以理解我,我想将HashCheck添加到游戏主文件中,例如“如果更改了文件哈希,Game,close”
就像:-我有Assembly-CSharp.dll作为我的主要游戏数据文件,因此,如果Modders要修改我的游戏,他们只需将Assembly-CSharp.dll加载到一些反编译器中并编辑文件
我也尝试过“十六进制”保护,但是他们绕过了
所以,我想做的是,当Modders更改Assembly-CSharp.dll时,哈希将更改, 如果Hash更改了“ Application.quit”
我只是想比较MD5哈希值
但是我没有得到,甚至没有任何示例代码
我只需要代码即可添加HashCheck Assembly-CSharp.dll
意味着我需要C#代码
答案 0 :(得分:1)
强名称集会签名之类的声音可能会对您有所帮助。
除其他外,对程序集进行强命名的好处之一是,它们使用数字签名进行了签名签名,从而保护了程序集不受篡改。 如果有人要修改您的部件,则在部件加载期间自动进行的验证过程将失败并引发异常。
全名提供了强大的完整性检查[,]保证自程序集的内容自生成以来就没有更改。
详细了解如何使用强命名here。
正如toATwork所提到的,在这里强命名将不会带来好处。强大的命名功能可以确保您的用户确实来自您自己的程序集,而不会被他人修改。
不希望 修改您的程序集的用户篡改您的程序集!
由于也可以轻松地绕过哈希检查,因此我建议将混淆与 tamper checks结合使用。您可以使用Dotfuscator,它已经是included in Visual Studio。