【问题标题】:Reverse Engineering Web Applications [closed]逆向工程 Web 应用程序 [关闭]
【发布时间】:2013-03-27 23:45:42
【问题描述】:

阿罗哈,Stackoverflow。

我经常遇到 Web 应用程序,并想知道,“我如何编写一个与之交互的脚本/应用程序?” (纯粹是学术性的,不是为了发送垃圾邮件!)。

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

所以基本上,我如何才能弄清楚网络应用程序的内部工作原理(即 imeetzu.com,以便我可以编写代码以从我的桌面与其交互?

提前感谢您!

【问题讨论】:

标签: javascript web protocols reverse-engineering


【解决方案1】:

你需要一套工具来开始:

  • 带有调试窗口的浏览器(Chrome 对此特别擅长)。这将特别允许您访问您的浏览器直接发出的网络调用(有一个警告即将到来),并查看:

    • 他们的内容
    • 他们的参数
    • 他们的目标
  • 一种网络数据包嗅探器,用于追踪通过 Flash(或 WebSockets)的任何内容。我非常喜欢 Ethereal(现在称为 Wireshark),但如果你在美国,使用它可能会触犯法律(取决于你对它的使用)。这将允许您查看进入和离开网络接口的每个 TCP 帧。

你需要的知识:

  • 能够识别和隔离网络流。这是通过练习来实现的
  • 了解您尝试逆向工程的应用程序所用的语言。如果 JavaScript 不是您的最爱,请避免使用基于 JS 的内容
  • 数学和密码学。数据很可能不时被加密/混淆/隐藏。请注意并注意它。

在这种特殊情况下,您可能不得不处理 Flash。有额外的资源可以帮助解决这个问题,尽管它们都是非免费的。有一个特别好的 Flash 反编译器,名为 SoThink SWF decompiler,它允许您将 SWF 转换为 FLA 或 AS 源的集合。

这就是工具的全部内容。该方法很简单 - 查看输入/输出的数据并通过消除找出是什么。如果它是加密的,你将需要 IV 和样本来破解它(或者只是反编译代码并找出密钥/握手是如何完成的)。这是一个非常非常广泛的领域,我什至还没有触及冰山一角 - 请随时询问更多信息。

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

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2018-09-20
    • 2014-03-26
    相关资源
    最近更新 更多