我编写了自己的 LSP,运行良好。但是,我无法捕获 dns 查询。例如,没有像 WSPGetHostByName 或 WSPGetAddrInfo 这样的函数。
我的 lsp 也支持 UDP 协议,但它不工作。如果我从控制台(cmd.exe)运行 nslookup,它似乎可以工作,但我无法捕获 gethostbyname。有谁知道这是怎么做到的吗?我不认为编写NSP(Name Service Provider)是一个解决方案。但我可能错了。
Thanks
我们开发了一个可以“拦截”DNS 查询的LSP。唯一的方法是连接所有 DNS 功能,请记住您需要解决一些挑战:
- 您需要使用一个良好的挂钩库来支持 32 位和 64 位代码。
- 库许可证必须适合您的应用程序,有一些免费库,但只能在免费项目中自由使用。
- 当您挂钩函数时,您需要确保不要修改某些不基于 IP 的值,并将查询推迟到实际函数。
拦截 UDP 将不起作用,因为查询是从 MS DNS 客户端发出的,因此除非您编写低级驱动程序,例如:TDI、NDIS 或 WFP,否则您必须挂钩这些函数(或编写 NSP)。 NSLookup 适合您,因为它自己创建 DNS 查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)