【问题标题】: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】:
你需要一套工具来开始:
你需要的知识:
- 能够识别和隔离网络流。这是通过练习来实现的
- 了解您尝试逆向工程的应用程序所用的语言。如果 JavaScript 不是您的最爱,请避免使用基于 JS 的内容
- 数学和密码学。数据很可能不时被加密/混淆/隐藏。请注意并注意它。
在这种特殊情况下,您可能不得不处理 Flash。有额外的资源可以帮助解决这个问题,尽管它们都是非免费的。有一个特别好的 Flash 反编译器,名为 SoThink SWF decompiler,它允许您将 SWF 转换为 FLA 或 AS 源的集合。
这就是工具的全部内容。该方法很简单 - 查看输入/输出的数据并通过消除找出是什么。如果它是加密的,你将需要 IV 和样本来破解它(或者只是反编译代码并找出密钥/握手是如何完成的)。这是一个非常非常广泛的领域,我什至还没有触及冰山一角 - 请随时询问更多信息。
(我怎么知道这一切?我是 eAthena 项目的贡献者,该项目对游戏协议进行了逆向工程)