dico 发表于 2012-12-24 08:28:34

请问如何通过HOOK得到IIS的远程IP[在看雪无人能回答,希望....

IIS是通过inetinfo.exe进程运行的,开放了80端口。现在我需要通过HOOK的手段获取到连接到IIS的远程客户的IP地址,我尝试HOOK了WSAAccept和AcceptEx(注:使用的是EASYHOOK库),通过XUETR看到都HOOK成功了的,但是在访问80端口时,却没有得到IP地址,通过调试发现根本就没有进入我自定义的这两个API函数,也就是说IIS下似乎没有使用这两个API来接受远程用户连接。请问究竟应该HOOK哪个API才能得到IP呢?
注:
1.我通过HOOK WSARecv倒是能HOOK到数据,可是得到的IP却是0.0.0.0,貌似是这东西异步的,调用完就关闭SOCKET了,所以根本拿不到。但是我认为我是在调用真实的WSARecv之前拦截的API,按理等我处理完了再继续执行WSARecv才对的啊,所以说应该还没有关闭SOCKET的啊。看来还是只能通过建立连接的API拿IP
2.我想要的是通过RING3来HOOK,不是RING0
3.有网友提示说HOOK WSAIoctl这个函数,可是我试过还是不行
听说IOCP貌似都是通过内核实现的,不需要用应用层的函数么?有大牛能指教下么?

sanyoo 发表于 2012-12-24 09:13:07

枚举当前的TCP链接就可以吧

dico 发表于 2012-12-24 12:06:28

枚举TCP连接是一种办法,但是我的业务需要用HOOK的方式获取到

Tesla.Angela 发表于 2012-12-24 14:00:02

dico 发表于 2012-12-24 12:06 static/image/common/back.gif
枚举TCP连接是一种办法,但是我的业务需要用HOOK的方式获取到

同楼上,枚举TDP连接,然后根据PID找出相应的进程即可:http://www.m5home.com/bbs/thread-6655-1-1.html
如果你非要用什么HOOK方法,我只能说你是闲着蛋疼。但也不是不行,你只要Hook NtDeviceIoControlFile,就能找到你想要的信息。

dico 发表于 2012-12-24 16:02:07

请问Hook NtDeviceIoControlFile是需R0么?R3能HOOK么?
我不是闲,是因为我要在我指定的IP连接上后立刻能响应并对该套接字做处理,通过TCP列举达不到我的要求

sanyoo 发表于 2012-12-25 08:41:38

R3也可以hook NtDeviceIoControlFile ,google 一下能看到很多相关帖子

dico 发表于 2012-12-26 08:04:29

sanyoo 发表于 2012-12-25 08:41 static/image/common/back.gif
R3也可以hook NtDeviceIoControlFile ,google 一下能看到很多相关帖子

好的,我去网上找找,谢谢你了
页: [1]
查看完整版本: 请问如何通过HOOK得到IIS的远程IP[在看雪无人能回答,希望....