2

问题如下:我需要代理(嗅探和修改数据包)一个不支持 Windows 上的代理服务器的应用程序。它连接的 IP 地址在应用程序本身中是硬编码的。我只需要修改数据,我不关心 IP 标头。

如果不是因为我绝对不能修改原始应用程序或向其中注入任何代码,这将是一项相当简单的任务。

我需要原始应用程序来连接我的程序,并将我的程序连接到原始服务器,所以我认为简单地将服务器的 IP 重新路由到 localhost(如此所述)是行不通的,因为那时我的应用程序无法连接到原始服务器服务器。

winpcap 之类的东西也是禁止使用的,因为据我所知,没有选项可以在数据包经过时对其进行修改。

如果可能的话,我想放弃使用 NDIS 驱动程序,因为我需要此设置才能跨多个版本的 Windows 工作,而且我没有办法为所有这些版本编写驱动程序。

我主要在 delphi 中编码,但我不害怕 c++,只是为了澄清为什么标签中没有指定语言。

欢迎任何建议,我希望你有一个美好的一天:)

大卫

4

1 回答 1

3

您可以使用我的WinDivert项目来执行此操作。与 WinPCAP 不同,WinDivert可以修改数据包,这正是您想要的。主要缺点是没有WinXP支持。

有关使用 WinDivert 将流量重定向到代理服务器的示例,请参见此处。这透明地将 Web 流量重定向到代理服务器,在本例中为 Privoxy+Tor。这样做不会以任何方式修改 Web 浏览器的代码或配置。也就是说,Web 浏览器看到的是普通的 Internet 连接(尽管由于 Tor 的原因有点慢)。

于 2013-07-21T17:19:35.023 回答