如何简单检查游戏是否已重新编译
How to make a simple check that the game was recompiled?
我读到破解和重新编译一个 Unity 游戏非常容易。另外,我读到他们有一个函数(由引擎提供)来确定游戏是否已重新编译。
例如,我发布游戏,一个坏人破解了它并作为他自己的发布,但是在代码深处的某个地方仍然有一个检查,即游戏是否已重新编译,这样我就可以向用户显示一些注释或使游戏无法播放。
破解椰子游戏容易吗?我需要担心吗?如何为我的游戏制作一个小的复制保护?
我读过破解和重新编译一个 Unity 游戏非常容易。 另外,我读到它们有一个功能(由引擎提供) 确定游戏是否已重新编译。
是的,Unity 具有确定您的游戏是否已以任何方式反编译、重新编译或修改的功能。但是黑客会足够聪明,可以在重新编译游戏之前修改该函数返回的内容。您编写的任何保护代码都可以被黑客修改或删除。
我发布了游戏,一个坏人破解了它并作为他自己的发布,但是 在代码深处的某个地方仍然有一个检查 游戏已重新编译,以便我可以向用户显示一些注释 或使游戏无法播放。
总有人会试图破解你的游戏。如果您的游戏很有名并且有很多人玩,这将很有可能。向用户显示一些注释不会阻止黑客入侵您的游戏。使游戏无法玩也不会。
破解椰子游戏容易吗?我需要担心吗?如何 为我的游戏提供小的复制保护?
任何游戏都可能被黑客入侵。根据黑客的经验,黑客对他们来说可能很难或容易。你不需要担心这个。大型游戏公司有专门的程序员团队来保护他们的游戏,但黑客只需要数周或数月即可从游戏中移除所有保护并使游戏再次可玩。
把大部分时间花在制作出色的游戏上,让游戏成本负担得起,那么盗版你的游戏的人就会减少。你无法完全阻止人们入侵你的游戏,无论游戏设计的编程语言或操作系统是什么。
编辑:
-
要添加一个简单的保护,您应该混淆您的C++代码。混淆会使您的代码更加不可读。例如,如果您有一个名为
PlayerInfo
的类,其中包含分数,则混淆会将类名重命名为Esfjhsakm4
。黑客必须逐一检查所有内容才能了解您的应用程序中发生了什么。你可以谷歌C/C++混淆器了解更多信息。 -
保护代码的另一种方法是随着时间的推移为游戏设置玩家分数的限制。也许如果玩家的积分在一秒钟内从 0 增加到 100,并且您知道您的游戏机制无法做到这一点,您可以将其检测为黑客攻击,然后采取行动。
-
如果这是一个网络游戏,请制作游戏,以便玩家必须注册并登录才能玩。然后,如果您发现玩家作弊,您可以禁止他们的帐户。同时禁止他们的IP地址3天,然后在3天后解除禁令,但不要解除对玩家帐户的禁令。
-
检测某个项目是否已解锁,而用户尚未玩解锁该项目所需的关卡。
最大的建议是,您不要让用户知道您在他们的游戏中检测到黑客攻击。只需采取后台操作,例如将游戏模式从简单更改为困难,禁止玩家并使游戏烦人。如果您在检测到黑客攻击时关闭游戏,他们将删除关闭游戏的代码。
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 关于std::move的使用,是否有编译警告
- 标准是否严格定义了该程序应该如何编译?
- 是否可以在编译时限制类的实例数?
- 检查编译时是否存在静态函数
- 是否可以编译 Gtk+ 应用程序以同时在 Gtk 2 和 3 上运行
- std::less是否应该允许在编译时比较不相关的指针?
- 编译时检查特征专用化是否具有唯一 ID
- GTK C++:找不到信号处理程序 您是否使用 -rdynamic 进行了编译?
- 是否可以在编译时初始化对象的 C 样式函数指针,以便它调用对象的成员函数?
- 如何确定integer_sequence在编译时是否包含给定的数字?
- 知道模板参数在编译时是否为 const char*?
- 全局变量在 C++ 中是否显着提高了编译速度?
- 检查该类在编译时C++中是否有任何基类
- 如何判断是否在编译时计算了"constexpr"(无需手动检查)
- c++ 是否保证标头初始化的静态 const 成员跨编译单元和库共享单个实例?
- 在 Xubuntu 19.04 中编译 c++ 是否应该与在 Ubuntu 18.04 中编译 c++ 不同
- 为什么要编译?(编译是否忽略未包含的 h 文件?
- C++/编译:是否可以设置VPTR(全局vtable + 2字节索引)的大小
- 使用-g本身进行编译是否会降低性能?