我有一个用于实现套接字通信的dll,但它没有向我公开Socket描述符(主机应用程序)。
我的问题是:
有没有办法可以获得这个dll创建的套接字描述符?因为我需要在我的应用程序中通过WSAIoctl()和SetSockOpt()设置套接字。
谢谢,
Visli
答案 0 :(得分:2)
如果某个库没有向你公开它的内部,那么不,通常没办法得到它们。
你可以尝试hooking an API function你知道库必须调用,然后拦截它的参数或返回你知道套接字值必须的值,但这是一个很大的黑客,可能非常脆弱。
相反,您可以更加深入地了解库所展示的内容。也许它以您无法识别的名称公开套接字值,或者它可能提供自己的方式来操作套接字的属性,因此您不需要使用您计划使用的API。尽管如此,使用API可能会干扰库的工作方式。
如果一切都失败了,你可以抛弃当前的套接字库以获得不同的套接字库。图书馆不乏可供选择。除了Delphi的内置套接字组件,您还有Indy,ICS和Synapse;所有这些都是本机Delphi库,因此您可以访问任何您想要的内容。