增加有效bytehacking难度的可能策略

时间:2010-09-21 05:42:56

标签: security language-agnostic bytecode

我被要求在虚幻系列游戏中修补一些小缺陷。它使用unsalscript语言,它以类似于Java的方式生成字节码。

其中一个问题是,可以编辑下载到客户端的任何软件包,并插入goto指令来跳过重要的代码。

不可能阻止这种情况,所以我想知道可以应用哪种策略来使任务更加困难。我想到了两种方法:

  1. 自动内部状态检查任何客户端的机制。该 这样做的方法是对每个人进行前后检查 功能调用。该语言的一个特点是函数中的out关键字。

      

    指定的“out”让你告诉一个   实际应该的功能   修改传递给的变量   它,而不是制作本地副本。   例如,如果你这很有用   有一个需要返回的功能   调用者的几个值。您可以   让呼叫者通过几个   函数的变量是什么   “出”值。

  2. 服务器端检查机会,如果发生不连贯的事情或采取行动,则采取行动 有一个超时。显然,代码不能在客户端和服务器之间反弹 因为它会产生的开销而勾选,但是可能有一些 例如,每x秒交换一次信息。

    也许这两种方法可以结合起来。你对此有何看法?

1 个答案:

答案 0 :(得分:1)

如果目的是确定是否有任何代码发生了变化,那么直接的解决方案就是校验代码(比如在初始化时 - 甚至更早,比如在下载之前),并定期验证代码的校验和是否有改变。

然后问题就是检测校验和检查代码是否未被黑客攻击。

我唯一一次被打败为黑客是一个昂贵的包,其中目标代码使用了超过五个校验和例程,从代码中看似随机的不同点调用。找出如何解决这个问题比找到它更麻烦。只需确保使用不同的函数初始化每个校验和,但难以跟踪初始化调用。在初始化期间连续完成所有这些操作使得它很容易失败。