1

我正在寻找将出站 TCP/IP 连接从 Windows 客户端上的特定端口重定向到不同端口号的方法。(这是提供从用于文件和打印机共享的端口 445 重定向 SMB 连接的能力所必需的。)

除了挂钩 WinSock API 并在那里更改端口之外,我找不到其他方法。我找到了AppInit_DLLs技术,我想知道它是否可以用来挂钩 Ws2_32.dll(这似乎包含 WinSock API)?

我的想法是连接接受通常设置端口号的 API。这一切都只是一个想法,所以在我真正开始编码之前,我会很感激有人对此采取了行动......

4

2 回答 2

1

为什么不?是的,这是可能的,但不要忘记在挂钩之前加载 DLL。因为 AppInit 在 user32.dll 加载时被加载(而且肯定是在加载 ws2_32 之前)。

看看弯路,或者尝试制作一个自己的内联钩子。请注意多线程应用程序,您必须使用多线程安全挂钩。

于 2014-08-13T12:42:38.603 回答
-2

不幸的是,这是不可能的。您最好的办法是制作一个代理 DLL,用您自己的方法替换您希望挂钩的自定义方法。

于 2016-01-12T19:03:57.423 回答