2010-11-04 142 views
1

我有一个用于实现套接字通信的dll,但它并没有向我公开套接字描述符(主机应用程序)。需要获取套接字描述符

我的问题是:

有什么办法,我可以得到它通过这个dll创建的socket描述符?因为我需要在我的应用程序中通过WSAIoctl()和SetSockOpt()来设置套接字。

感谢,

Visli

回答

2

如果库不暴露其内部给你,那么没有,一般是没有办法得到他们。

可以尝试hooking an API function你知道图书馆必须调用,然后截取它的参数或返回值,你知道插座值必须,但是这是一个很大的黑客,可能相当脆弱。

相反,你可以更加努力地看到图书馆揭露。也许它暴露了一个你不认识的名字下的套接字值,或者它提供了自己的方式来操纵套接字的属性,所以你不需要使用你打算使用的API。尽管如此,使用API​​可能会干扰图书馆的工作方式。

如果所有这些都失败了,您可以将当前的套接字库替换为不同的套接字库。有不少图书馆可供选择。除了Delphi的内置插座组件外,您还有Indy,ICSSynapse;都是原生的Delphi库,所以你可以访问任何你想要的东西。

相关问题