逆向工程Web应用程序

Reverse Engineering Web Applications

本文关键字:应用程序 Web 逆向工程      更新时间:2023-09-26

再见,Stackoverflow.

我经常遇到web应用程序,我想知道,"我怎么能写一个脚本/应用程序来与它接口?"(纯粹的学术,不是为了垃圾邮件的目的!)

例如,网站Omegle;人们编写了Python脚本来与网站交互,无需打开浏览器就可以运行聊天…如何?我承认WEB编程不是我最擅长的领域,但我真的很想知道如何从这样的应用程序中提取使用的协议,并使用这些知识来创建自定义应用程序和修补服务。

所以基本上,我怎么能弄清楚一个web应用程序的内部工作(即。imeetz.com这样我就可以写代码从我的桌面与它接口?

提前感谢!

您需要一组工具来开始:

  • 带有调试窗口的浏览器(Chrome在这方面特别好)。这将特别允许您访问浏览器直接发出的网络调用(这里有一个警告),并查看:

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

你需要的知识:

  • 识别和隔离网络流的能力。这是通过实践
  • 了解要进行逆向工程的应用程序所使用的语言。如果JavaScript不是你的菜,避免基于js的东西
  • 数学和密码学。数据很可能不时被加密/混淆/隐藏。请注意并注意它。

在这个特殊的情况下,看起来你可能不得不处理Flash。还有一些额外的资源可以提供帮助,尽管它们都是非免费的。有一个特别好的Flash反编译器,叫做SoThink SWF反编译器,它允许您将SWF转换为FLA或AS源集合。

这就是所有的工具。这个方法很简单——看看输入/输出的数据,然后通过消去来计算出什么是什么。如果它是加密的,您将需要IVs和示例来破解它(或者只是反编译代码并找出密钥/握手是如何完成的)。这是一个非常非常广泛的领域,我甚至还没有触及到冰山一角,请随时询问更多信息。

我是怎么知道这些的?我是eAthena项目的贡献者,该项目逆向设计了一个游戏协议)