1

感谢您调查我的问题。

拳头让我声明,我在任何类型的 Web 开发方面的经验都非常有限。我的强项是嵌入式系统,与它们的 Web 界面无关。另外,我不是在寻找任何人为我做这项工作。如果有人可以告诉我“是的,这是可以做到的,这是您将要使用的一般方向和方法”,我很乐意自己学习其余部分。

我感兴趣的是从基于浏览器的游戏的网络服务器获取数据并对其进行一些本地分析。例如,像 Ultima 或 Ikariam 这样的游戏允许您从浏览器玩游戏,显然控件和界面是从托管游戏的服务器更新的。我用greasemonkey java脚本做了一些实验,并且看到了从这些游戏中读取数据并修改UI的脚本;但是,这些脚本的性质不允许我将数据传输到本地计算机进行分析。我更喜欢用 C# 编写我的应用程序,但如果没有 .NET 解决方案是实用的,我愿意接受其他选择。有没有办法做到这一点?这个想法是让我能够登录游戏并在我的应用程序轮询数据(如资源计数或攻击等)或其他东西时让我的浏览器保持打开状态。或者也许我 我缺少一些东西,脚本可以写入本地机器。如果您需要更多信息,请告诉我。

感谢你的宝贵时间!

4

2 回答 2

3

大多数游戏引擎都努力使他们的数据不落入服务器之外的人手中。是的,客户端中有请求者检索信息并显示在 UI 上,但这始终是基于客户端状态的孤立信息。

此限制的原因是,如果有人访问数据,例如您的提案,那么它也为黑客帐户或作弊打开了大门。毕竟,如果您可以提取数据,您就可以操纵它并使您的角色无与伦比。这会破坏微妙的游戏平衡。即使您说“但我从未打算这样做”,它也不会为您打开获取数据的大门。这对开发商来说风险太大了。

现在,如果人类可以,程序可以“玩”游戏,这确实是真的。在游戏世界中,这些被称为机器人。与其他合法玩家相比,该机器人让玩家处于不公平的优势,因为它只是坐着等待,直到它可以移动,而玩家在移动之间可能有一个很大的窗口。由于这个原因,大多数游戏网站都禁止机器人。代替人类玩电脑仍然是作弊。

更新:

既然我已经说过,这里有一个网站可以让你练习做你想做的事情,因为它是专门为从网站获取数据并操纵它而编写的: hacker.org

于 2012-07-05T19:45:52.370 回答
2

如果我理解这一点,您想以编程方式控制网络浏览器。据我所知,SeleniumRC是这方面的首选工具。

我知道它比它的轻量级伴侣Selenium IDE强大得多,并且仅凭这一点,您就可以编写与网站交互的脚本,而无需深入了解其实现。例如,您可以根据其文本内容而不是其元素 ID 或文档中的位置来定位和单击按钮。

--

如果您只想嗅探游戏的 HTTP 流量,那么基于浏览器的 HTTP 嗅探器(如 Firefox 的实时 HTTP 标头)即使是 SSL(如果您使用代理并且流量是 SSL,我怀疑游戏服务器会能够检测到它)。

我预测理解 HTTP 流量要比使用 Selenium 直接从 UI 中抓取所需的数据更难。

于 2012-07-05T19:48:36.273 回答