
A SOCKS proxy for Citrix.
Ica2Tcp 是一款用 C 语言开发的工具,允许在 Citrix ICA 连接内代理任意 TCP 连接。它之于 Citrix 就像 ssh -D 之于 SSH。
更多信息请参见:https://www.sstic.org/2022/presentation/ica2tcp/
本工具是作为实习项目开发的,目前仍在开发中。它按“原样”发布,因此部分代码仍有些杂乱。你可能会偶尔遇到崩溃。一个更干净的版本正在开发中,很快就会发布。 不过,欢迎任何关于此版本的意见!
服务器端独立二进制文件和客户端共享库都必须构建。 详情请参阅相应的 README:
为了方便起见,本仓库已包含所有必需的 Citrix 头文件和库(适用于 Linux64 客户端和 Win32 服务器端)(位于 citrix_sdk_files/)。它们全部来自公开可用的 Virtual Channel SDK 和 WFAPI SDK:
本仓库中的 CMakeLists.txt 文件允许使用这些包含的文件来构建服务器端和客户端二进制文件。如果你想使用最新的 SDK 文件或为其他目标架构构建,可以自行手动下载并安装这些 SDK,但你可能需要修改相应的 CMakeLists.txt。
一切都构建完成后,你需要安装客户端共享库。
首先,将构建输出文件 DRIVER.DLL 复制到 <CITRIX_INSTALL_FOLER>/ICAClient/<DRIVER_NAME>.DLL
然后,按如下方式修改 <CITRIX_INSTALL_FOLER>/ICAClient/config/module.ini 配置文件:
[ICA 3.0] 部分的 VirtualDriver 列表中添加 <VIRTUAL_DRIVER_NAME>(将 <VIRTUAL_DRIVER_NAME> 替换为任何你想要的内容)。[ICA 3.0] 部分,添加一行 <VIRTUAL_DRIVER_NAME>=On[<VIRTUAL_DRIVER_NAME>] 部分:DriverName = <DRIVER_NAME>.DLL
LogPath = /path/to/logs/folder/
Port = <PORT_NUMBER_FOR_SOCKS> //default: 33556
Address = <LISTENING_IP_ADDRESS> //default: 127.0.0.1, use 0.0.0.0 to open the socks for non local clients
就这样!
一旦客户端驱动程序正确安装,你只需将服务器端二进制文件复制到服务器上,并在活动的 ICA 会话中执行它。
它会在客户端侧按 module.ini 文件中指定的地址和端口打开一个 SOCKS 服务。