让Windows通过TCP协议发送DNS请求

本文系转载,原文地址:http://is.gd/A5YGIt

起因是我这(beijing urban network co. ltd)把DNS服务器改为8.8.8.8或者8.8.4.4的时候就无法使用了,表现为发出DnsQuery后没有任何响应,猜测大概是GFW搞的鬼吧。唔。。。不管是不是反正这黑锅都让GFW来背,呵呵。

默认情况下Windows的DNS交互使用UDP协议承载,于是抱着试试的心理尝试了一下用TCP来发送DNS请求,结果Google DNS很给力的返回了结果。

接下来的工作就是怎样让Windows用TCP来发送了。悲催的是翻了一遍组策略,网络连接属性等等都没找到哪个选项可以让Windows发送TCP的DNSQuery,也不知道是真没有还是没找到。没办法只好自己动手丰衣足食啦,分析后发现判断用UDP或TCP的关键位置在DnsApi.dll中,修改之,覆盖,重启,用Wireshark看到发送的都是TCP的DNS请求,目前除了nslookup工具,其他使用一切正常,用nslookup发出的请求不受影响,默认还是UDP的,反正不影响上网,无视了。

提一下用的系统是Win7 Ultimate X86,版本号 6.1.7601
DnsApi.dll版本号为6.1.7601.17570

.text:6DC08FC8 8B 46 10        mov     eax, [esi+10h]
.text:6DC08FCB 89 45 F4        mov     [ebp+var_C], eax
关键代码,此处让var_C值为2即可,这里给出我的修改方法
85A0: 90 90 90 90 90 -> 33 C0 40 EB 25
85C8: 8B 46 10 -> EB D6 40

继续阅读

Google HTTPS搜索服务遭DNS污染

本文系转载,原文地址:http://www.williamlong.info/archives/2263.html

  Google上个月把Https搜索转到另外一个域名encrypted.google.com下面,所有的https搜索都会自动重定向,Google称这个操作是为了方便美国学校和企业过滤新的域名,但当时我就知道,这个域名危险了。

  整整一个月后的今天,终于还是等到了这一天,虽然对于没做任何设置的中国用户,Google默认会把https搜索重定向到谷歌香港的http搜索,尽量避免中国用户使用HTTPS搜索,但这一天终于还是来了,Google的HTTPS加密搜索服务器域名 encrypted.google.com 被DNS污染而无法访问。

  关于判断DNS污染的文章可以参看此文,我们在命令行下通过这样一条命令 nslookup encrypted.google.com 144.223.234.234,即可判断该域名是否被污染,由于144.223.234.234不存在,理应没有任何返回。但我们却得到了一个错误的IP:93.46.8.89。可见 encrypted.google.com 这个域名已经被DNS污染了。

  解决的方法有三个:

  1、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。

  2、修改hosts文件,Windows系统中Hosts文件的优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持,目前可用的encrypted.google.com的IP有66.249.89.104和209.85.225.104。

  3、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。这类软件可参见这里和这里。

  最后,我谴责这种通过DNS污染干扰用户上网的流氓手段。

网友发文揭穿IPv9奥秘 称域名转换类似DNS劫持

本文非原创,文章来源:IT时报

  几年前曾经打着维护中国网络主权的IPv9技术(或者被称为十进制网络)现在已经悄无声息,当初其发明人谢建平、十进制网络标准工作组及其学术团队 一直以“商业机密”为由,拒绝公开有关IPv9的技术细节,不过最近一位名叫yx9fun的网友发文揭穿IPv9背后的奥秘。
继续阅读