如何在没有源代码的情况下为 Web 应用程序创建 API?

逆向工程 网站
2021-06-14 05:17:43

这里有一篇文章(http://narenonit.blogspot.in/2011/07/my-youmint-api-to-send-free-sms.html),作者试图很好地告知,就我而言可以猜到。我面临的确切问题是如何研究 HTTP 连接。是否有人可以更清楚地解释该程序。

4个回答

您可以使用一些工具来查看从浏览器发送到网络应用程序的内容,并推断如何“模拟”这种行为。网络嗅探器在这里是最有用的。例如 Wireshark(尤其是它的Follow Stream功能)。此外,一些浏览器插件也很有用,例如FirebugTamperDataPoster

除此之外,这只是复制浏览器所做的事情。基本上,http 通信由 GET 或 POST 请求和回复组成(还有其他请求,您应该查看RFC2616以获取更多详细信息)。因此,通过查看 Wireshark 中的 HTTP 流,您可以推断出什么样的请求被发送到 Web 应用程序,以及它得到什么样的回复。由于 html 表单元素将具有指定的参数和操作 url,因此可以通过研究网页的 html 源来推导出这些信息中的一些(甚至大部分)。

除了提到的工具之外,我想指出的是httpry,它基于libpcap(像tcpdumpWireShark)但旨在仅侦听和列出 HTTP 流量。

Fiddler是另一个工具,虽然不是 FLOSS,但它就像 Firefox 的“篡改数据”附加组件一样适合这项工作。Remko 在他的评论中也提到了它,但我认为它需要比在评论中更突出地提及。通读时从另一个答案中遗漏了它。

这样做的方法是使用网络抓取技术。如果您可以使用浏览器访问网页/资源,那么使用嗅探器和代理是多余的。在这种情况下,您只需自动化用户在浏览器中执行的操作,并使用Chrome 开发人员工具等工具来检查 HTML 和 AJAX 连接。

如果你想看一看,我已经写了几篇关于这个主题的文章:

对于具有一些反抓取技术的应用程序,您可以查看运行您自己的匿名旋转代理

如果有一些未涵盖的特定要求,请随时发表评论,我会在这方面为您提供帮助。

提琴手学会爱上它..

它提供了一个易于使用的界面,用于捕获对预期站点的请求/响应。

基本上你需要:

  • 使用浏览器发出您想要自动化的请求。

  • 使用 Fiddler 捕获这些请求并进行调查。(它是 POST 还是 GET?是否有 CSRF 令牌?哪些变量映射到我提供的输入等......)

  • 从服务器获取响应。

  • 确定包含输出的部分。

然后,您需要编写一个脚本,该脚本接受您想要发送的任何输入,然后以与浏览器相同的方式发出请求。存储输出并拉出您想要的部分。

一旦你成功地弄清楚如何制定请求,你就可以构建一个类来隐藏它如何工作的细节并制作干净的代码。