解密MMORPG协议编码

我打算写一个自动机器人的游戏.

棘手的部分是弄清楚他们如何编码他们的协议…要使机器人运行很简单,只需使角色运行并记录它在wireshark中的功能.然而,解释环境更困难…如果你空闲,它每秒收到大约5个数据包,因此很多garbarge.

我的计划:由于游戏运行在TCP下,我将使用freecap(http://www.freecap.ru/eng)来强制游戏连接到在我的机器上运行的代理.我将需要这个代理能够进行数据包注入,或者可能是能够重新发送捕获的数据包的服务器.这样,我可以重新创建和修改服务器发送的内容,并了解其协议编码.

>有没有人知道我可以得到一个允许数据包注入的代理,或者我可以执行数据包注入(不是通过硬件,无线或任何东西的情况)!
>哪里可以找到重新发送捕获的数据包的服务器/代理(即:重播连接).
>任何更好的模式匹配的工具或方法?可以突出显示多个消息的模式的东西将是巨大的.

或者,是否有更好的方式来破译这里?可能是一个消除组合策略(通过钩住一个winsock功能,并从那里开始解散)?我以前没有这样做,所以我不确定.还是其他任何想法?

最佳答案
网络流量拦截和协议分析通常是在这里实现您的目标的不太有利的方法.对于大多数现代游戏来说,加密是一个严重的因素,对于最常见的游戏场景的任何一个简单的因素,协议分析都有严重的头痛.

大多数现代化的实现*你所要做的事情都依赖于阅读和操纵一个正在运行的客户端的内存空间和进程.客户端已经为您完成了所有的硬件部分,包括解密流量并将其排序成更容易读取数据结构.为了与服务器进行交互,您可以调用内置到客户机中的功能,而不是从头开始制作整个数据包.这种方法的加分是,您必须做更少的工作来解释数据并产生活动.负数是网络流量中经常有一些数据对机器人有用,但被客户端丢弃,或者您可能希望将流量发送到客户端无法生成的服务器(在我自己的网络中)这样的层次结构,就是“作弊”坡度更远的几步.

* …我说这个已经看到大多数MMORPG僵尸/黑客社区从网络协议分析器(如ShowEQOdin’s Eye / Excalibur)到基于内存的应用程序(如MacroQuestInnerSpace)的发展.在这一点上,InnerSpace提供了一个极好的可扩展框架基于内存/进程的变体,您应该将其视为项目的基础,如果您放弃了网络分析方法.

转载注明原文:解密MMORPG协议编码 - 代码日志