仿真项目 - GameGuard 保护客户端

逆向工程 加密
2021-06-11 12:08:58

我对 MMO 服务器仿真并不陌生,但我对使用受保护的客户端并不陌生,并且拥有非常基本的 RCE 技能。我会很感激一些指导,考虑到要求,这也许是不可能的。

目标是 Uncharted Waters Online,现在由 Papaya Play 发行,使用 GameGuard(而不是之前的发行商 X-Trap)。

两个优先事项:

  1. 防止客户端加载或尝试引用 GameGuard。
  2. 通过数据包分析了解客户端-服务器通信。显然,加密数据包是不可能的。

我的问题:

  1. GameGuard 有多根深蒂固?简单地绕过加载例程就足够了吗??或者我必须允许它加载,但绕过它改变的所有功能?显然,我希望客户端在访问模拟服务器时不必加载 GameGuard。

  2. 加密数据包。一项主要任务是在连接到 Live Server 时查看未加密的数据包内容。有人对此有经验吗?我的想法是找到并绕过加密和解密功能,将原始数据包信息输出到其他地方。这是一种可行的方法吗?这是实用的,还是有更简单的方法让我了解网络通信?

谢谢大家。我正在寻找的只是一种方法。我可以自己研究如何实现这一点,但在这一点上,我对 GameGuard 和反向数据包加密的了解还不够,不知道从哪里开始。

2个回答

游戏黑客在这里。

要解决您的第一个问题,像ElitePVPersOwnedCoreUnknownCheatsMPGH论坛绝对是您最好的朋友。你会在这些地方找到的人都沉浸在正是这种类型的逆转,因此与谷歌搜索,如启动UnknownCheats GameGuard的会产生类似的结果这样仅此一项就可以让您全面了解该技术及其当前的一些漏洞(这意味着您可能不必自己做太多繁重的工作)。

至于你的第二个问题,是的,这是一个可行的方法,但是根据他们对数据的保护程度(无论是通过奇怪的汇编指令/子例程混淆,VM,荒谬的),找到解密数据的方法可能非常困难循环,等等,等等)。再一次,这些论坛真的应该带你走得更远。听起来你已经很好地掌握了倒车的语言,所以你在这些地方提出的问题应该由更聪明和更有经验的人来解决。

最后,如果这是您对逆向感兴趣的关键领域之一,我强烈推荐《攻击网络协议》这本书

祝你好运!

我认为这个问题在这里不会有太大的吸引力,因为它非常具体,同时仍然非常广泛。话虽如此,一般游戏黑客的一些输入:

  1. 您的第一步是弄清楚反作弊是如何加载的:​​它是从安全服务器流式传输的,它是否是在运行时加载的 DLL,等等。一旦您发现了反作弊是如何加载的加载后,您可以实施一种解决方法,即加载顺序劫持或修补流例程。

  2. 您的假设是正确的,挂钩网络功能是更改/解码数据包的最简单方法。查找特定的函数调用(即 createsocket、send、recv 等)并从那里向后工作。