我正在寻找将出站TCP / IP连接从Windows客户端上的特定端口重定向到其他端口号的方法。 (这需要提供从端口445重定向SMB连接的功能,用于文件和打印机共享。)
除了挂钩WinSock API并更改端口之外,我找不到办法。我找到了AppInit_DLLs技术,我想知道它是否可以用来挂钩Ws2_32.dll(似乎包含WinSock API)?
我的想法是挂钩通常设置端口号的connect和accept API。这只是一个想法,所以我真的很感激有人接受这个,然后才真正开始编码......
答案 0 :(得分:1)
为什么不呢?是的,这是可能的,但不要忘记在挂钩之前加载DLL。因为在加载user32.dll时加载AppInit(并且在加载ws2_32之前肯定会加载)。
看看弯路,或尝试自己制作内联钩子。请注意多线程应用程序,您必须使用多线程安全挂钩。
答案 1 :(得分:-2)
不幸的是,这是不可能的。您最好的办法是制作一个代理DLL,替换您希望与自己挂钩的自定义方法。