2010-11-04 143 views
1

我有一個用於實現套接字通信的dll,但它並沒有向我公開套接字描述符(主機應用程序)。需要獲取套接字描述符

我的問題是:

有什麼辦法,我可以得到它通過這個dll創建的socket描述符?因爲我需要在我的應用程序中通過WSAIoctl()和SetSockOpt()來設置套接字。

感謝,

Visli

回答

2

如果庫不暴露其內部給你,那麼沒有,一般是沒有辦法得到他們。

可以嘗試hooking an API function你知道圖書館必須調用,然後截取它的參數或返回值,你知道插座值必須,但是這是一個很大的黑客,可能相當脆弱。

相反,你可以更加努力地看到圖書館揭露。也許它暴露了一個你不認識的名字下的套接字值,或者它提供了自己的方式來操縱套接字的屬性,所以你不需要使用你打算使用的API。儘管如此,使用API​​可能會干擾圖書館的工作方式。

如果所有這些都失敗了,您可以將當前的套接字庫替換爲不同的套接字庫。有不少圖書館可供選擇。除了Delphi的內置插座組件外,您還有Indy,ICSSynapse;都是原生的Delphi庫,所以你可以訪問任何你想要的東西。

相關問題