Closed. This question is off-topic。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic

7年前关闭。



Improve this question




阿罗哈,Stackoverflow。

我经常遇到Web应用程序,对自己说:“我如何编写与之交互的脚本/应用程序?” (纯粹是学术性的,不用于发送垃圾邮件!)。

例如,网站Omegle;人们已经编写了Python脚本来与网站交互并在不打开浏览器的情况下进行聊天...怎么办?我将承认,WEB编程不是我最擅长的 Realm ,但是我真的很想知道如何从此类应用程序中提取正在使用的协议(protocol),并使用该知识来创建自定义应用程序并修改该服务。

因此,基本上,如何确定Web应用程序(即imeetzu.com)的内部工作原理,以便可以从桌面上编写代码来与其进行交互?

先感谢您!

最佳答案

您需要一套工具来开始:

  • 具有调试窗口的浏览器(Chrome对此特别有用)。特别是,这将使您能够访问浏览器直接进行的网络调用(有警告),并查看:
  • 他们的内容
  • 他们的参数
  • 他们的目标
  • 一个网络数据包嗅探器,以跟踪通过Flash(或WebSocket)的所有内容。我非常喜欢Ethereal(现在称为Wireshark),尽管如果您在美国,则可能会因为使用它而违反法律(取决于您对它的使用)。这将允许您查看进入和离开网络接口(interface)的每个TCP框架。

  • 您将需要的知识:
  • 能够识别和隔离网络流。这是通过练习
  • 编写您要反向工程的应用程序所用语言的知识。如果您不喜欢JavaScript,请避免使用基于JS的东西
  • 数学和密码学。数据可能会不时地被加密/混淆/扭曲。注意并注意这一点。

  • 在这种情况下,您可能需要处理Flash。尽管所有这些都是非免费的,但还有其他资源可以帮助解决此问题。有一个特别好的Flash反编译器,称为SoThink SWF decompiler,它使您可以将SWF转换为FLA或AS源集合。

    工具就这些了。该方法很简单-查看输入/输出哪些数据,并通过消除什么来找出。如果它是加密的,则将需要IV和示例以希望将其破解(或者只是反编译代码并查找完成密钥/握手的方式)。这是一个非常广泛的 Realm ,我什至还没有触及到冰山一角-请随时询问更多信息。

    (我怎么知道这一切?我是eAthena项目的贡献者,该项目对游戏协议(protocol)进行了反向工程)

    08-26 09:01