zoukankan      html  css  js  c++  java
  • 好多东西都没写,好多东西都是半吊子工程

    花了半宿的时间,把我的 DNS 服务器修改完了

    去年下半年,一个朋友扔给了我一个DNS劫持的工具,类似病毒,但是不是病毒,仅仅有一个监控、劫持DNS的功能,所以顶多也就算是个恶意软件。由于我啥都不会,我也好奇DNS服务器是怎么做的,DNS到底是什么玩艺,所以那时候我开始反汇编那个小程序,但是那时候。。。没做完。。。今天凌晨,我从我的电脑里面找到了我的代码,一边继续反汇编那个程序,一边继续修改代码,把它修改完了。

    我的程序主界面就是这样,感觉很简陋。。。

    图片

    红框位置是三个模式的选择,
    拦截模式:接收全部的数据,但不做回应,也就是全都拦下来了,能看到请求,但是不做回应
    代理模式:作为中间跳板,给 DNS 请求做代理,再稍微修改一下,就是一个DNS劫持的工具,代理转向的 DNS 主服务器地址在粉色方框中
    DNS模式:自己作为一个 DNS 服务器自己做 DNS 解析,使用绿色方框内部的域名表里面的地址,以及黑色方框里面的默认地址作为IP地址,来解析自己收到的全部DNS请求,收到一个请求,去左侧绿色方框里的List里面寻找是否有当前域名对应的IP地址,如果有的话,取出这个IP,返回给发送请求的人,如果没有,就返回黑色框中的默认IP
    (总感觉自己少写了什么,现在想到了。。。但不是上面的这些)

    最下面的那一块,就是收到的全部请求了,可以直接看到哪个地址,哪个端口,请求了哪个域名,然后返回给发送请求的人的IP是什么。

    绿色框中的DNS列表,是可以从文件中读取的,文件格式类似于Windows的DNS本地解析文件

    正常运行的时候,就是下图了。。。

    图片

    我在虚拟机里面写的代码。

    我在虚拟机里面打开了一个我的软件,把模式设置成代理模式,代理目标设置为我宿主机的IP,然后启动代理
    我的宿主机里面,同样打开了一个我的软件,最初把模式也设置成代理模式,代理目标是 8.8.8.8 也就是google的DNS地址
    然后,我在虚拟机里面设置了网卡的默认DNS为虚拟机自己本身
    这样,我打开一个IE之后,DNS请求的走向就是
    IE  ——  虚拟机里面我的程序  ——  宿主机里面我的程序 —— 8.8.8.8
    中间经过了两次跳板

    我首先测试在虚拟机里面打开 fff 这个网址,然后经过两次跳转之后,由 8.8.8.8 解析再按原路返回给我的虚拟机,fff 网站的IP是207.189.109.121 
    正确,没有问题

    然后我把宿主机里面我的程序设置成DNS模式,把baidu 的 IP 设置成本地环网IP ,再次在虚拟机里面发送请求,
    结果很正确,虚拟机里面的程序访问了我虚拟机里面搭建的服务器
    感觉问题不大了

    最后还有个东西我忘记测试了,重新测试的

    图片

    就是红色框里面的东西。。。

    下面那条 baidu 的信息,是我的程序启动 DNS模式 的时候,我自己解析的

    上面那条 baidu 的信息,是我的程序启动 代理模式  的时候,从 8.8.8.8 得到的信息

    没什么问题


    对了,还有个问题

    就是如何设置DNS了,

    实际上,设置DNS的方法有三个

    写代码,直接设置
    写代码启动控制台,调用控制台命令来设置DNS(方便,但是如果没有那个内、外部命令怎么办。。。不考虑)
    手动打开本地连接,点属性,手动设置(不考虑)

    可以考虑的方法只有第一个了,

    据我了解,我知道的设置DNS的Windows API就有2个,这些都不是事。

    但是我认为如果真的用程序来设置DNS的话,那这个程序不就真的成DNS劫持的程序了么。

    后台偷偷设置了DNS,然后主界面隐藏了,这就是一个DNS劫持的工具,我是不想这么做。所以没有加那么多。

    就这样吧。。。留个东西纪录一下。
  • 相关阅读:
    mysql cpu 占用高
    使用cron命令配置定时任务(cron jobs)
    python 获取时间
    linux 免密码登陆
    linux 查看登录日志
    shizhong
    正则(?is)
    python shell
    linux 时间设置
    java获取当前时间前一周、前一月、前一年的时间
  • 原文地址:https://www.cnblogs.com/suanguade/p/4038025.html
Copyright © 2011-2022 走看看