自建 DNS 根服务器

前言

今天晚上博主突发奇想:既然根域名服务器的存根文件是公开的,那为什么不自建一个呢?使用现有的资源,我们完全可以在短时间内自己搭建一个 DNS 根服务器,并且让你的递归 DNS 使用它。

DNS 解析原理

  1. 你打开电脑上的浏览器,输入了https://www.baidu.com/想要访问网页。此时你的浏览器会将你输入的 URL 中的域名取出,并根据你设置的系统 DNS 请求到域名服务器。
  2. 域名服务器检查自身缓存是否存在www.baidu.com.的记录,如存在则直接返回,如不存在则继续请求下去。
  3. 域名服务器向根域名服务器发出query www.baidu.com.请求,根服务器返回了.com顶级域名的顶级域名服务器地址a.gtld-servers.net.
  4. 域名服务器向顶级域名服务器发出query www.baidu.com.请求,得到baidu.com权威域名服务器地址dns.baidu.com
  5. 域名服务器向权威域名服务器发出query www.baidu.com.请求,得到www子域的解析记录。
  6. 重复以上步骤,直到得到可被用于请求的 IP 地址。并将其存入缓存后返回给客户端。如无记录,则根据域名状态返回错误码。
  7. 你的浏览器得到了 IP地址,向它发送请求。服务器返回页面。

到上述第六步时,DNS 解析过程就已经完成了。看似复杂,实则只在几十毫秒内。

自建 DNS 根服务器

目前可选的 DNS 服务器程序很多,例如广为人知的PowerDNSBIND9。本文选择了PowerDNS作为服务器程序。

  1. 安装 PowerDNS: apt install pdns-server pdns-backend-mysql
  2. 修改它的配置文件,使其支持BIND格式的 zone 文件。
    vim /etc/powerdns/pdns.d/bind.conf
1
2
3
4
launch=bind
bind-config=/etc/powerdns/bind.conf
bind-check-interval=60
bind-ignore-broken-records=yes
  1. IANA 下载 root.zone 文件。
  2. 对 root.zone 作一些修改:
  • 删除所有第 1 列是.,并且第 4 列是NS的行。
  • 在最开头添加以下三行:
1
2
.                       86400   IN      NS      root-server.你的域名.
root-server.你的域名. 86400 IN A 你的服务器IP

注意:所有的域名后面的.不可省略!

  • 删除所有第 4 列不是 A,AAAA,SOA,NS 或者 DS 的行(这些记录与 DNSSEC 有关,而我们的更改会破坏 DNSSEC,因此直接删除即可)。
1
2
mv root.zone root.zone.bak
cat root.zone.bak | awk '{if ($4=="A" || $4=="AAAA" || $4=="SOA" || $4=="NS" || $4=="DS") print $0}' > root.zone

如果有多台服务器要成为根服务器,重复以上步骤几次即可。
5. 新建/etc/powerdns/bind.conf文件,添加如下内容。

1
zone "." { type native; file "/etc/powerdns/root.zone"; };
  1. systemctl restart pdns重启 PowerDNS 服务器。

验证你的成果

  1. 运行dig @你服务器 IP,应当会得到如下回复(其中root-server.omn.cc是我设置的域名):
    结果
  2. 运行dig @你服务器IP www.example.com,得到如下回复:

    ;; AUTHORITY SECTION:
    com. 172800 IN NS m.gtld-servers.net.
    com. 172800 IN NS l.gtld-servers.net.
    com. 172800 IN NS k.gtld-servers.net.
    ……

    ;; ADDITIONAL SECTION:
    m.gtld-servers.net. 172800 IN AAAA 2001:501:b1f9::30
    m.gtld-servers.net. 172800 IN A 192.55.83.30
    l.gtld-servers.net. 172800 IN AAAA 2001:500:d937::30
    l.gtld-servers.net. 172800 IN A 192.41.162.30
    ……

恭喜!你的根服务器已经搭建好了!

使用你的根服务器来进行递归解析

有了根服务器,接下来就可以配置你的递归 DNS 服务器,让它们使用你自己的根服务器完成解析了。
将你在root.zone文件里自己添加的两行/三行(如果你有IPV6)内容保存为roots.hint文件,传到你的递归 DNS 服务器上去。
然后在 PowerDNS Recursor 的配置文件中新加一行:

1
hint-file=/etc/powerdns/root.hint

如果你开了 DNSSEC 验证,还需要添加一行:

1
lua-config-file=/etc/powerdns/script.lua

然后在/etc/powerdns/script.lua中写入:

1
addNTA(".")

保存后重启 PowerDNS Recursor 即可。

使用 IDA 反编译 Windows 扫雷

前言

本文中博主使用IDA Pro简单分析并反编译了 Windows 扫雷 (winmine.exe),请注意:反编译不可能获取源代码!

Windows 扫雷是一款内置于 Windows XP 操作系统里的小游戏,博主小学的时候曾经玩过,不过就连初级都没有通关过(现在也一样 T_T)
扫雷

正文

话不多说开始操作。首先打开 IDA 进入主界面并分析 winmine.exe。ida

修正数据

跳到data段,将有很长的空白数据的位置合并为数组 (快捷键:小键盘*号)(字符串合并为字符串数组 Alt+A)
合并数组
同时,需要对一些变量类型进行修复。比如说明明占用四个字节但是却显示为byte的变量,就要修改为int

分析代码

处理完数据后,去start函数找到main函数并将声明写出来,别忘了去函数中修改声明。WinMain

接下来定位到WinMain函数,分析主窗口的消息处理。跟进去将数值替换为WM_xxxx的宏。然后分析代码,将能理解的代码改写为自然语言。分析代码
感觉分析的差不多之后,就可以按Ctrl+F5导出C代码了。同时使用Resource Hacker导出一下数据文件。

处理后续

进入VS开一个新项目,将资源文件复制进去编译,根据输出的错误处理资源文件。

将代码复制进去并把ida自带的defs.h加入到项目中。
然后开始修代码

成果(

我建站的这三年 - 第三次丢数据后的回忆

建站历程

我是从2020年开始建站的,一开始是使用虚拟主机+DiscuzX建了个小论坛,后来发现没啥人又关了用wordpress。2020年10月正式选择了typecho+handsome这样的组合来搭建个人博客。第一次搭建的博客存活了大概一年,一年后服务器到期我也无心再维护,因此就跑了。(不过那个时候还没有用这个域名)。

9941y.top这个域名被启用是2022年的时候,我又萌生了建博客想法,于是就用这个域名(别人手里买来的)来建站,建站的结果就是之前陪伴了各位将近一年半的Sh1zuku的小屋

在2023年10月16日,我的上游服务商有人离职删库,把我的数据删了😅所以那个神奇の小网站就不服存在了,取而代之的是这个网站!

建站回忆

重建之后回头看看2020年至今三年来我走过的路,不得不感叹三年里我确实成长了好多。从一个啥也不会的小白变成了一个会一点但不多的小白。这三年里有无数帮助我的群友和路人,其中一部分成为了我很好的朋友或合作伙伴,也有一部分成为了被我厌恶、唾弃的人。我2020年-2021年曾和一群人一起开“业务”(小学生最爱的那些IDC之类的)。现在再找上他时发现他成为了我并不喜欢的那种人。

总结

我文笔不好,想说的很多,写下来就只有这点了。三年来我结交了很多的朋友,这三年也塑造了现在的我。

如果没有这三年,我现在可能会在一个更好的学校(四校八大?),但这绝不是我想要的。现在这样自由自在的生活就刚刚好~

感谢那些陪了我三年的朋友以及愿意停下来看这篇文章的陌生人~

复制学校三菱电梯卡的过程

本校科学楼有电梯,但是使用了梯控系统只允许有电梯卡的老师坐电梯TT。今天同学搞来了张学校的电梯卡,于是尝试复制到空白卡上,这样就可以实现电梯自由力!

先查看下卡的信息,是IC卡,SAK为08。也就是说可以进行读取和复制。
卡的信息
使用MCT工具尝试读取,发现所有数据都能读出来,但是扇区一存在一个密钥没有被解密,变成未知数据(但是数据都被读取了,只有密钥空白)扇区1
不知道会不会有影响,尝试解密。但是手头没有PM3设备不能破解,只能尝试爆破。在网上找来了几份NFC密钥词典进行爆破,花了大概两个小时成功爆破到密钥4D454C2D4300

然后突然发现获得密钥对数据没有任何影响……

等我周一到学校尝试复制出来的卡再说吧!

博客复活

博客服务器被服务商删除了数据,所以之前的文章都丢失了😥😥😥

不过好在我已经找到了可靠的服务商,可以继续运行博客了。

详细事件经过将在本周末另开一篇文章。

我会在周末恢复友链,如有遗漏请联系我

附上博客复活后的截图:复活啦!

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×