Proxychains.exe - Proxychains for Windows ——通过给动态链接的程序注入一个 DLL,对 Ws2_32.dll 的 Winsock 函数挂钩子的方式来将应用程序的连接重定向到 SOCKS5 代理

Proxychains.exe - Proxychains for Windows 

https://github.com/shunf4/proxychains-windows

构建状态

README | 简体中文文档

Proxychains.exe 是一个适用于 Win32(Windows) 和 Cygwin 平台的命令行强制代理工具(Proxifier)。它能够截获大多数 Win32 或 Cygwin 程序的 TCP 连接,强制它们通过一个或多个 SOCKS5 代理隧道。

Proxychains.exe 通过给动态链接的程序注入一个 DLL,对 Ws2_32.dll 的 Winsock 函数挂钩子的方式来将应用程序的连接重定向到 SOCKS5 代理

Proxychains.exe 是 proxychains4 或者 proxychains-ng 到 Win32 和 Cygwin 的移植产物。它也使用了 uthash 构建一些数据结构,以及使用了 minhook 进行 API 的挂钩。

Proxychains.exe 在 Windows 10 x64 1909 (18363.418)、Windows 7 x64 SP1、Windows XP x86 SP3 和 Cygwin 64-bit 3.1.2 经过测试。注意目标操作系统需要安装 Visual C++ Redistributable for Visual Studio 2015

警告:此工具不能保证匿名性!

警告:此程序只对动态链接的程序有用。同时,Proxychains.exe 和需要运行的目标程序必须是同一架构和平台(用 proxychains_x86.exe 运行 x86 程序,用 proxychains_x64.exe 运行 x64 程序;用 Cygwin 下构建的版本来运行 Cygwin 程序)。

警告:此程序是基于 Hack 的,并且处于开发早期阶段。使用过程中可能会发生任何意外状况。被运行的程序可能会崩溃、无法工作、产生意想不到的运行结果等等。谨慎使用。

警告:此程序可能用于绕过审查。此举在某些国家或地区可能是危险、不符合法律的。 请在用于正式用途前,确保本程序和代理正常工作。 比如,你可以通过连接到一些查询本机 IP 的服务如 ifconfig.me ,确保你未暴露你的真实 IP 地址。

请在确保清楚你要执行的操作及其后果后使用本程序。

免责声明:本程序的作者不对任何滥用、误用此软件的行为以及其可能导致的后果负责。

 

下载

你可以从 Release 页 下载预先构建的二进制文件。


安装

把生成的 proxychains*.exe[cyg/msys-]proxychains_hook*.dll 复制到 PATH 环境变量包含的某个目录下。你可以把主程序(如 proxychains_win32_x64.exe)改为你自己喜欢的名字,如 proxychains.exe

最后你还需要在正确的位置创建配置文件。参见“配置”。

 

配置

Proxychains.exe 按照以下顺序寻找配置:

 

在 Win32 环境中

  • 环境变量 %PROXYCHAINS_CONF_FILE% 或通过 -f 命令行参数指定的文件
  • %USERPROFILE%\.proxychains\proxychains.conf(Win32 用户主目录)
  • (CSIDL_APPDATA)\Proxychains\proxychains.conf(在现代 Windows 版本中,典型的路径如 C:\Users\<用户名>\AppData\Roaming\Proxychains\proxychains.conf
  • (CSIDL_COMMON_APPDATA)\Proxychains\proxychains.conf(在现代 Windows 版本中,典型的路径如 C:\ProgramData\Proxychains\proxychains.conf

 

在 Cygwin 环境中

  • 环境变量 $PROXYCHAINS_CONF_FILE 或通过 -f 命令行参数指定的文件
  • $HOME/.proxychains/proxychains.conf(Cygwin 用户主目录)
  • (SYSCONFDIR)/proxychains.conf
  • /etc/proxychains.conf

关于配置选项,参见 proxychains.conf

 

用例

proxychains ssh some-server

proxychains "Some Path\firefox.exe"

proxychains /bin/curl https://ifconfig.me

运行 proxychains -h 查看更多命令行参数选项。

 

工作原理

  • 主程序 Hook CreateProcessW Win32 API 函数调用。
  • 主程序创建按照用户给定的命令行启动子进程。
  • 创建进程后,挂钩后的 CreateProcessW 函数将 Hook DLL 注入到子进程。当子进程被注入后,它也会 Hook 如下的 Win32 API 函数调用:
    • CreateProcessW,这样每一个后代进程都会被注入;
    • connectConnectEx,这样就劫持了 TCP 连接;
    • GetAddrInfoW 系列函数,这样可以使用 Fake IP 来追踪访问的域名,用于远程 DNS 解析;
    • 等等。
  • 主程序并不退出,而是作为一个命名管道服务端存在。子进程与主程序通过命名管道交换包括日志、域名等内容在内的数据。主程序实施大多数关于 Fake IP 和子进程是否还存在的簿记工作。
  • 当所有后代进程退出后,主程序退出。
  • 主程序收到一个 SIGINT(Ctrl-C)后,终止所有后代进程。

 

posted @ 2022-10-16 18:35  bonelee  阅读(1046)  评论(0编辑  收藏  举报