1

我基本上想做的是创建一个命令行替代widecap。我如何想象这件事:

  1. 外部应用程序调用我的命令行工具并将代理作为参数传递
  2. 命令行工具启动并重定向通过作为参数传递的代理调用它的应用程序的所有 Web 流量
  3. 外部应用程序完成后关闭命令行工具

我不想直接在外部应用程序代码中实现代理支持的原因是我不会一直编写外部应用程序。我希望它是一个任何人都可以使用的独立工具。

您可以给我的任何指示/反馈/建议/链接/想法将不胜感激。

编辑:为了更清楚起见,我想看一个 C# 中的代码示例,它演示了我如何“挂钩”正在运行的进程并通过代理隧道传输其所有 Web 流量。

4

4 回答 4

7

如果不反编译/反汇编外部程序并编辑其代码以执行您的要求,您将无法执行您的要求。另一种解决方案是对您的 C# 应用程序进行编程以捕获外部应用程序的数据包并将它们重定向到您的代理服务器。这将很难实现,但它会解决你的问题。

于 2012-10-06T10:41:40.080 回答
0

问题在于您希望在多个应用程序之间共享它。基本的最佳实践方法是为每个程序提供以下选项:

Manual Settings
None (ignore proxy)
System System Settings
Auto Detect

从您所说的看来,您希望在许多彼此没有关系的应用程序之间共享设置,但不是所有倾向于破坏模型的应用程序。

现在为了争论,如果所有这些应用程序都是同事等。在共同的开发模式下构建一套工具是可能的,但如果不是这种情况,那就很困难了。

我认为这可行的唯一方法是利用本地代理服务器来获取打开的应用程序/进程的名称并将流量重定向到系统代理或自定义代理设置。这就是虚拟机的功能,但在这些类型的程序中往往会不断地努力正确识别所有应该重定向的相关和子进程。

于 2012-09-23T17:57:58.967 回答
0

在 Windows 7 和 Vista 中,UAC 直接尝试阻止这种行为,这就是大多数代理程序往往会出现问题的原因。

以下是我知道的 2 个不错的选择(两者都具有相同的名称):

免费一份: http: //sourceforge.net/projects/proxifier/ 付费一份: http: //www.proxifier.com/download.htm

我会尝试第一个,因为我记得它支持命令行参数而没有太多麻烦。我对列出的第二个有问题,但它可能更适合您的需求。

于 2012-09-25T00:35:56.550 回答
0

代理服务器就是服务器!如果发送给他们的数据包可以捕获它们,则监听特定的端口号。您的问题存在一个歧义:

  1. 应用程序连接到代理接口并设计消息语言(应用程序知道使用代理)。
    在这种情况下,您的工作是编写代理服务器应用程序。

  2. 强制应用程序使用代理接口。(应用程序不知道使用接口)

    在这种情况下,您可以使用网络接口上层驱动程序(例如 wincap)
    来实现所有数据包,并在短期内编写您的数据包嗅探+防火墙工具
    ,与 cain &able 或 WireShark 相同,并对数据包目标端口号进行一些过滤,
    并做好您的充分准备工作
    建议您确定快速和弱工具方式(1)或
    长时间工作和复杂的工具(2)。
    祝你好运

于 2013-04-21T19:42:55.253 回答