我有已运行程序的句柄,有什么方法能该程序的socket句柄??? (50分)

  • 主题发起人 主题发起人 chinaweiling
  • 开始时间 开始时间
C

chinaweiling

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经捕获一个客户端程序运行时的句柄,有什么方法才能得到该程序与服务器联接的
socket句柄???谢谢!小弟已为此问题付出了几百大分,现在已是穷困潦倒了!!!
 
神啊!救救我吧!
 
应该可以用,
你用这个函数 WSADuplicateSocket

The Windows Sockets WSADuplicateSocket function returns a WSAPROTOCOL_INFO structure that can be used to create a new socket descriptor for a shared socket.

int WSADuplicateSocket (

SOCKET s,
DWORD dwProcessId,
LPWSAPROTOCOL_INFO lpProtocolInfo
);


Parameters

s

[in] Specifies the local socket descriptor.

dwProcessId

[in] Specifies the ID of the target process for which the shared socket will be used.

lpProtocolInfo

[out] A pointer to a buffer allocated by the client that is large enough to contain a WSAPROTOCOL_INFO structure. The service provider copies the protocol info structure contents to this buffer.
 
TO张无忌
我现在只知道该客户端的句柄,我想通获得它与服务器通信时所打开socket句柄,来得到
通信时的本地端口,不知是否可行???谢谢

 
我只知道这个函数可用,具体的我没有用过,不好意思[:(]
 
T0:张无忌
小弟曾打算用ntdll.dll中的NtQuerySystemInformation()函数,来获得系统中所有socket
句柄,然后根据这些句柄获得端口号和文件名来确定。却试了很多方法也无法将
NtQuerySystemInformation()调用成功。大侠能否给予指点。谢谢
 
NtQuerySystemInformation()这个函数可能要给他赋予权限才能搞定
 
我现在已是Administrator权限了,比如将NtQuerySystemInformation()中的参数1
dwRecordType设为0或3,就是取系统cpu占用率、开机时间等都能正确调用,但取
16时就调用不正常了
 
大侠,50分嫌少了吗?
 
大侠,50分嫌少了吗?
 
大侠,50分嫌少了吗?
 
Socket句柄类型是ox1a(winNT,2000)或ox1c(winxp)
 
To chinaweiling:
我没有使用过这个函数
WSADuplicateSocket 前一个参数是TSocket类型,是你提供
后一个是你要共享进程的进程ID,最后一个是一个协议数据
(我自己的称呼),返回值就是你要共享的TSocket ,我只
知道这么多了.......[:D]
 
NtQuerySystemInformation这个函数怎么用啊,能通过它得到系统信息如资源状况吗:)
 
后退
顶部