前几天,半个美国的吃瓜群众纷纷表示上不了网了。经过各种调查,发现是一个代号为 Mirai(日语:未来)的病毒感染了物联网设备,形成了一个僵尸网络,最终这个超大型的僵尸网络向美国某 DNS 公司的服务器发起了 DDoS 攻击。Mirai 的 C 语言源码在网上很容易获取到,刚好我最近在上计算机病毒课,于是就下载下来研究了一下,顺便看一下以自己现在的能力可以理解到哪一步。
下载下来之后粗略看了一下,第一感觉就是作者的代码风格真的是超级好!不光代码格式很赞(虽说大括号放到了下一行),而且变量名、文件名都很有目的性,重要的地方都写了注释或者打了 log,因此分析起来还是相对比较简单的。
目录结构
Mirai 源码目录结构是这样的:
Mirai_Source_Code ├─loader # 加载器 │ ├─bins # 一部分二进制文件 │ └─src # 加载器的源码 │ └─headers └─mirai # 病毒本体 ├─bot # 攻击、扫描器、域名解析等模块 ├─cnc # 使用 go 语言写的服务器程序 └─tools # 存活状态检测、加解密、下载文件等功能