1.二十年重回首——CIH病毒源码分析
2.什么是源码嵌入式系统的PMON
二十年重回首——CIH病毒源码分析
CIH病毒源码分析
随着双十一的临近,我在考虑为自己的源码电脑添置一块NVME协议的固态硬盘。然而,源码我发现自己老款主板并不支持NVME协议。源码在探索解决方案时,源码我偶然回想起了CIH病毒,源码openrc 源码分析一款曾引起巨大破坏的源码古老病毒。出于好奇,源码我决定深入分析CIH源码,源码回顾那段历史,源码并分享分析过程与心得。源码
CIH源码在GitHub上能找到,源码版本1.4。源码json源码精简源码的源码编写者习惯良好,代码中包含了功能更新的源码时间和具体细节。时间线如下:
1.0版于年4月日完成,基本功能实现,代码长度字节。
1.1版于5月日完成,增加了操作系统判断,若为WinNT则不执行病毒,长度字节。
1.2版于5月日,加入删除BIOS和破坏硬盘功能,长度字节。趣劳务源码
1.3版于5月日,修复了感染WinZIP自解压文件的错误,长度字节。
1.4版于5月日,彻底修复错误,长度字节。
CIH病毒于年7月日在美国大面积传播,8月日全球蔓延,引发公众恐慌。最终,病毒作者陈盈豪公开道歉,提供了解毒程序和防毒软件,跳表源码分析病毒逐渐被控制。
源码的第一部分是PE文件头,用于符合PE文件格式,确保Windows识别和执行。接下来,病毒开始运行,通过修改SEH(Structured Exception Handling)来识别操作系统类型。如果为WinNT或之后版本,病毒将自行产生异常并停止运行。
病毒通过修改中断描述符表,获得Ring0权限。然而,技术源码网在WinNT操作系统中,这种方法已失效。因此,修改SEH的目的是判断当前操作系统,以避免在非Win9x系统上感染。
病毒在Win9x系统中,通过修改中断描述符表,将异常处理函数指向病毒自定义的MyExceptionHook。病毒利用此函数安装系统调用钩子,当执行文件操作时,会运行到病毒代码中。
病毒在MyExceptionHook中,通过dr0寄存器记录病毒安装状态,分配系统内存,并将病毒代码复制到内存中。之后,病毒安装钩子,当有文件读写调用时,会执行病毒代码。
当系统调用参数为关闭文件时,病毒进行时间判断,直到每月日,统一开始破坏BIOS和硬盘。破坏BIOS的方法包括映射BIOS内容、设置BIOS可写性。硬盘破坏则通过VXD驱动调用命令。
综上所述,CIH病毒利用了Win9x系统的漏洞,通过修改SEH和中断描述符表进入内核,安装系统调用钩子,感染文件并在特定时间执行破坏操作。然而,其在WinNT及后续系统上的感染能力已失效。尽管如此,CIH病毒的源码和分析过程对了解历史和安全漏洞仍具有重要价值。
什么是嵌入式系统的PMON
PMON是一个兼有BIOS和boot loader部分功能的开放源码软件,多用于嵌入式系统。
与BIOS相比功能不足,与常见的bootloader 相比,功能要丰富的多。基于龙芯的系统采用 pmon 作为类 BIOS 兼 bootloader,并做了很多完善工作。现在PMON与开始时的代码已经有较大不同了,看代码注释可以知道里面有一些中科院计算所和中科龙梦的人往里面添加了代码。在国外,PMON已经是一个死掉的项目了。国人把它继承下来,继续开发。所以说是国人延续了PMON的生命。不过,PMON中的代码有点乱,管理得不好,这个问题在不久可能会得到解决。
PMON 有如下主要特点:
支持ext2, fat, ram 文件系统
支持网络引导(tftp),磁盘引导,flash 引导
内建调试功能 (强大,调试内核举重若轻)
USB 2.0 Mass Storage 支持
支持MIPS、ARM、PowerPC 平台
BSD Licensed
常用命令:
load
功能:加载文件
加载PMON,刷新BIOS
load -r -f bfc tftp://..1./gzrom.bin
执行这个后,再重启主板,就会进入新的PMON中。
g
功能:执行程序
devls
功能:显示设备
ping
功能:测试网络
ifaddr
功能:配置网卡
m
功能:查看内存内容
env
功能:查看环境变量
set
功能:设置环境变量
usb
功能:查看及设置USB设备
reboot
功能:重启
h
功能:打印出帮助信息