能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我也想知道答案 帮你顶一下
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
在HOOK的同时,也打开网卡监听 , 看是不是有udp 的包进来 。
另外, 你看看你sendto 里面的内容。是真的DNS查询报文吗?
在同局域网的另一台机器上打开看看能收到这个包不。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
抓包了之后看到udp报文确实回来了, sendto里面也是向8.8.8.8的53的dns报文的. 网络请求是成功的, 页面可以打开,就是hook和断点都进入不了recvfrom的相关函数..
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
你在sendto 的位置反编译。 看看周围有没有调用 recvfrom 的地方?
一般的代码模型下。 这两者是靠在一起的。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
调试的时候发现调用了一堆dnsapi.dll里面的函数, 没有找到recvfrom, 应该是没有运行到吧
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
刚才看了个帖子说dns调用是个rcp的过程, 没明白, 有人能解释下吗,
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
所谓RCP那个是远程过程调用
也就是类似进程外COM
IE进程通过某种方式(比如管道,LPC PORT等等)向DNS服务进程发送DNS解析请求,DNS服务进程再通过socket向DNS服务器查询域名所属IP,然后DNS服务进程再以同样方式将查询结果返回给发起DNS查询操作的进程
整个过程中,IE进程并不需要发送或者接收任何DNS的UDP包
你当然挂不到
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
RPC才是远程过程调用 。。。 remote procedure call... 而且楼主上面也说了。 抓包是有dup包的。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
所以你hook到的sendto 的内容与你抓到的内容一样吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
是的, 现在在跟rpcstringbindingcompose 这个函数, 希望能有所收获
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
如果这样的话,为什么断点可以进入sendto呢, 不解..
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
正解。可以抓包看下 是哪个进程发的请求。
|
能力值:
( LV3,RANK:20 )
|
-
-
14 楼
ntdll!NtDeviceIoControlFile 可以吧
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
问题解决了, ie解析dns报文使用的getaddrinfo, 这个api先使用sendto发送了dns报文, 然后调用了select, 之后调用了wsaioctl来读取数据, 读取数据赚到了自定义的回调函数中, 使用的是完成端口模式, 多以没有调用recvfrom.
谢谢大家的帮助
|
|
|