从另一台计算机实时编辑数据包的最佳方法

从另一台计算机实时编辑数据包的最佳方法

我想研究一些 MMORPG 的协议(我是一名游戏程序员),但它们都使用“黑客防护软件”,不允许我在它们运行的​​计算机上做很多事情。

我想知道如何让我的计算机的连接路由通过 LAN 中的另一台计算机,以便我可以编辑数据包。我考虑过 ARP 毒害我的机器,但我不知道我是否真的可以编辑来自 ARP 毒害攻击的数据包。

据我使用 Wireshark 所知,我的操作系统(Windows XP)正在重新路由往返于网关的数据包,所以我不知道是否真的有办法实时编辑它们(如果有人知道是否可以使用 Windows 过滤平台来完成此操作,我会很高兴知道)。

另一种可能性是手动将我的另一台计算机设置为第一台计算机的网关,但我不知道如何让它真正充当“网关”(即将数据包路由到实际网关)。

这里有谁能帮我吗?抱歉,我确信这一切看起来都是新手的东西。那是因为网络确实不在我的“知识领域”内。

谢谢。

答案1

您可以轻松配置互联网连接共享在第二台计算机上,如果它有空闲的以太网端口。它将充当第一台计算机的网关。

答案2

好吧,我认为对数据包进行“实时修改”本身并不是什么大问题,但我猜大多数甚至所有游戏都会以某种形式加密其流量,这使得它很多篡改数据变得更加困难。这留下了最大的问题:服务条款将明确禁止你想做的事情,而且你可以肯定,BLizzard 和 Co. 有大量团队正在寻找像你这样的人,他们会先暂停你的账户,然后再问问题,如果他们发现有什么可疑的事情正在发生。

答案3

SvenW 已经提出了法律免责声明,所以我会相信您并假设您已经对此进行了适当的考虑。我不建议在真正的商业游戏服务器上实际执行以下操作。

解决方案 A - 基本透明的代理

  1. 用 python/perl/whatever 编写一个轻量级 TCP 代理服务器。一开始让它尽可能透明,但也许可以实现一些简单的日志记录,这样您就可以看到正在通过的内容。
  2. 使用其他简单协议(如 Telnet 或 HTTP)进行测试。
  3. 通过劫持客户端计算机的 hosts 文件中的游戏服务器 DNS,欺骗您的游戏客户端连接到您的代理而不是真正的游戏服务器。
  4. 如果游戏成功了,那么你就成功地在自己身上设置了中间人场景。
  5. 慢慢地向代理服务器添加代码和逻辑,以便在数据通过时对其进行处理。再次,在尝试游戏协议之前,先在简单协议上进行测试。

这个解决方案设置起来相当简单,但游戏客户端也很有可能尝试检测这种情况。如果不知道它如何检测,你很容易在玩得不多之前就被禁止。

解决方案 B - 非常透明的代理

与上面的类似,但稍微复杂一些。

不要使用客户端计算机上的 hosts 文件,而是创建网关计算机(使用两个以太网端口)。我会使用 *BSD,这样我就可以使用 PF 将某些类型的数据包透明地重定向到我的代理服务器。这样做的好处是不需要在运行游戏客户端的计算机上进行任何不寻常的配置,因此客户端几乎不可能确定存在中间人攻击的情况。

相关内容