c# - 确定游戏是否已被反编译/更改

标签 c# unity-game-engine

我正在寻找 Unity 函数来确定我的游戏是否已被反编译/重新编译或以任何方式修改。

最佳答案

是的,Unity有一个功能可以解决这个问题,但它仍然可以被规避。

这可以通过 Application.genuine 来完成当应用程序在构建后以任何方式进行更改时,它会返回 false。

if (Application.genuineCheckAvailable)
{
    if (Application.genuine)
    {
        Debug.Log("Not tempered");
    }
}

问题是,如果这个人足够聪明,能够反编译、修改和编译游戏,他/她也可以删除上面的检查,这样上面的检查就变得毫无用处。任何类型的程序真实性或真实性检查都可以被删除,只要它在玩家的机器上运行。


编辑

您可以通过执行以下操作来增加被规避的难度:

1。转到文件 --> build设置...,然后选择您的平台。

2。单击播放器设置 --> 其他设置,然后将脚本后端从 <从strong>Mono到IL2CPP(C++)。

这将使规避这一点变得更加困难,但仍然有可能被规避。

关于c# - 确定游戏是否已被反编译/更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793914/

相关文章:

c# - ML-Agents 代理未重置?

javascript - 找不到对象的实例

c# - 如何在 Visual C# .NET Web 元素中添加对所有 Web 窗体的 CSS 样式表引用

unity-game-engine - 在 Unity 5 中部分隐藏 UI/图像

c# - 如何在无尽的跑酷游戏中与火箭一起移动相机

c# - 我可以使用类型化工厂设施返回基于(枚举)参数的实现吗?

math - 两个向量的旋转/方向

c# - 是否可以在Unity中创建 "global"类实例?

c# - 在全局级别抑制 StyleCop 警告

javascript - js不执行 'else'语句