【问题标题】:How do I create a command line application that will force the use of proxies for certain other applications?如何创建一个命令行应用程序来强制对某些其他应用程序使用代理?
【发布时间】:2012-09-23 17:00:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# proxy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

      • 我更喜欢外部应用程序本身对代理一无所知。它只需要知道如何调用命令行工具。我很确定这是可行的,因为widecap可以做到。
      • 在 windows 7 和 Vista 中,UAC 直接尝试阻止这种行为。也许更好的选择是实现一个完整的代理服务器,而不是像 Widecap 那样的伪代理。您可以从这些开源项目中免费获取源代码。
      • 你能解释一下为什么我应该创建一个完整的代理服务器而不是一个伪代理吗?如果可能的话,请给我一个来自此类开源项目的代码示例?
      【解决方案3】:

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

      以下是我知道的 2 个不错的替代品(都具有相同的名称):

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

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-01
          • 2021-10-07
          • 2010-12-05
          • 2014-01-28
          • 2020-11-26
          • 1970-01-01
          • 2020-05-24
          • 1970-01-01
          相关资源
          最近更新 更多