DQQQQQ 发表于 2021-11-11 14:36

windows解析DNS的核心逻辑

本帖最后由 DQQQQQ 于 2021-11-11 17:20 编辑

吐槽一下,这个发帖要贴个图片。好麻烦。。。。。。。。。。

WIN10处理逻辑调试技巧。由于DNS可以使用命令清除缓存,然后使用Ping命令,触发DNS解析。因此调试时候遇到不确定的是否是关键调用。可以先用 ipconfig /flushdns 清除缓存。然去反汇编调试器上面步过,确认是否是关键调用1.      首选准备测试程序


测试方法。找一个IP。然后本地使用命令ipconfig/flushdns 清空DNS查询 使用IDA查看函数




进去


WSALookupServiceNextA具体函数作用未知。但是通过命令,发现不存在的DNS在WSAloolupservice执行之后,有了新增的。使用x64dbg查看这个函数实现


调用Unicode的函数版本 后面就主要进入mssock.dll一直跟进,直到


然后进入DNSapi.dll


上面大致逻辑就是对于 localhost, localmachine.loopring之类的进行解析。如果不是就去查询注册表是否设置了DNS。如果还不是,就进入RPC调用


所以win10上面。Windows解析DNS的逻辑就是先去判断是不是localhost,localmachine之类的。如果不是就再去查是不是注册表中设置了这个DNS,如果还不是就使用RPC和SVCHOST.exe进行通讯。让服务去查询DNS。处理完成之后,使用WSNoteSuccessfulHostentLookup去查询对应的IP。 Win7处理逻辑开头和win10基本区别不大,也是进入WSALookupServiceNextA


然后统一进入Unicode版本函数


WSALookupServiceNextW的实现


这之后通过几个函数的跳转进入到mssocket.dll,明显这里开始进行网络处理了。通过GetProcAddress找到DnsQueryExW


然后又是判断是不是那些特殊的本地域名


然后又是进入关键地方,进行RPC的调用


RPC核心调用位置:


最后到达这里应该就是RPC正式调用了


吐槽一下:win7的RPC代码,感觉比起WIN10乱了好多。 总结:windows 对于DNS的处理,都是交给一个系统进程(svchost.exe)去处理,其他程序需要DNS时候,windows先去看是否是本地的一些代表本地的特殊DNS。如果不是,则进行进程RPC通讯,交个系统进程去处理DNS。然后RPC取得返回结果,正式因为有单独进程处理,所以才可以使用命令清除DNS来找关键CALL

Hmily 发表于 2021-11-11 17:17

DQQQQQ 发表于 2021-11-11 17:14
后面那一堆图片怎么删除呀。我编辑了,貌似也没有删除。没注意到有附件图片。一开始附件去了,结果不显示 ...

在到附件上传那可以看到上传后的附件列表,里面点删除就行了。

DQQQQQ 发表于 2021-11-17 09:11

dgclan 发表于 2021-11-16 21:01
记得DNS解析不对打不开网页

只是不能用域名访问网站。但是如果你知道IP,或者域名解析网站上面查询到对应的IP。可以直接用IP访问,但是访问域名解析网站又需要DNS。emmm.....开始套娃了

Hmily 发表于 2021-11-11 16:11

贴图确实不是很先进,是十年前的产品了,但最好不要从其他地方复制过来粘贴这样不容易编辑,我给你编辑一下,换了行好看一些,你把多的图贴到文章里吧。

DQQQQQ 发表于 2021-11-11 17:12

Hmily 发表于 2021-11-11 16:11
贴图确实不是很先进,是十年前的产品了,但最好不要从其他地方复制过来粘贴这样不容易编辑,我给你编辑一下 ...

谢谢,第一次正式吾爱发文章。我原来是word写的。。。。。搞了好久,才搞出来怎么贴图片。

DQQQQQ 发表于 2021-11-11 17:14

DQQQQQ 发表于 2021-11-11 17:12
谢谢,第一次正式吾爱发文章。我原来是word写的。。。。。搞了好久,才搞出来怎么贴图片。

后面那一堆图片怎么删除呀。我编辑了,貌似也没有删除。没注意到有附件图片。一开始附件去了,结果不显示。我又图片上传了一次

hibeautifulworl 发表于 2021-11-11 21:42

学习了!

bolanzhenyv 发表于 2021-11-12 08:03

搞久了,才能搞定贴图片!!!

sunnyxyy 发表于 2021-11-12 08:09

谢谢楼主,学习了。

jupiterarrow 发表于 2021-11-12 08:18

这个有意思,收藏起来慢慢看,谢谢楼主DQQQQQ{:1_893:}

xiahhhr 发表于 2021-11-12 08:58

感谢楼主,讲的很细致,解决了心中的疑惑
页: [1] 2 3 4 5 6
查看完整版本: windows解析DNS的核心逻辑