逆向工程Web应用程序
Reverse Engineering Web Applications
再见,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项目的贡献者,该项目逆向设计了一个游戏协议)
- 在Web应用程序中使用Highcharts javascript
- 将下载链接从web浏览器传递给第三方应用程序
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- Web应用程序,将成员状态更新为其他成员
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- web浏览器中的离线应用程序存储数据并在之后上传
- 使用Ember的Web应用程序架构.动画逻辑应该放在哪里
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- c#web应用程序中的条形码打印
- 使用javascript为web应用程序自定义键盘快捷键
- 使用angularjs和node.js时的Web应用程序文件夹结构
- PhpWindows 8.1版本上的Javascript web应用程序
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 如何获取使用我们的脚本或web应用程序的网站名称
- 没有框架/DLL的VS Web应用程序项目
- 正确传输和保护用户'web应用程序的密码
- 检查Progressive web应用程序中的网络更改
- 如何在应用程序>Web浏览器控件中使用Google Maps API v3 ClientID