1.二十年重回首——CIH病毒源码分析
2.bochs源代码
3.å¦ä½å级bios
4.ç¼åbiosç¨åºç¨ä»ä¹ç¼è¯å¨
5.Linux0.12内核源码解读(2)-Bootsect.S
6.Legacy(传统)BIOS的网站历史和不足 -原创
二十年重回首——CIH病毒源码分析
CIH病毒源码分析
随着双十一的临近,我在考虑为自己的源码源码电脑添置一块NVME协议的固态硬盘。然而,下载我发现自己老款主板并不支持NVME协议。网站在探索解决方案时,源码源码我偶然回想起了CIH病毒,下载客房管理系统 源码一款曾引起巨大破坏的网站古老病毒。出于好奇,源码源码我决定深入分析CIH源码,下载回顾那段历史,网站并分享分析过程与心得。源码源码
CIH源码在GitHub上能找到,下载版本1.4。网站源码的源码源码编写者习惯良好,代码中包含了功能更新的下载时间和具体细节。时间线如下:
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中,app小说分销源码通过dr0寄存器记录病毒安装状态,分配系统内存,并将病毒代码复制到内存中。之后,病毒安装钩子,当有文件读写调用时,会执行病毒代码。
当系统调用参数为关闭文件时,病毒进行时间判断,直到每月日,统一开始破坏BIOS和硬盘。破坏BIOS的方法包括映射BIOS内容、设置BIOS可写性。硬盘破坏则通过VXD驱动调用命令。
综上所述,CIH病毒利用了Win9x系统的漏洞,通过修改SEH和中断描述符表进入内核,安装系统调用钩子,感染文件并在特定时间执行破坏操作。然而,k线趋势源码其在WinNT及后续系统上的感染能力已失效。尽管如此,CIH病毒的源码和分析过程对了解历史和安全漏洞仍具有重要价值。
bochs源代码
Bochs源代码可以从/ECSWebSite/Downloads/Category_Download.aspx?MenuID=6&LanID=2左边é
Product Category
主æ¿
Socket AM2+ (AMD)
产å
AGM-M3
Version
V1.0
ç¶åæ交ï¼å°±å¯ä»¥ä¸è½½ææ°BIOSäºï¼è¿æç²¾è±ä¸»æ¿æä¾çå·BIOSç软件ï¼
å»ºè®®ä½ ä¸è¦é便å·ï¼ä¸è¬å·BIOSçç®çå¦ä¸ï¼å·åäºæ¯ä¸ä¿ä¿®çå¦ï¼
ï¼1ï¼.æ´æ°BIOSæºä»£ç 以æ¯æå级çCPUï¼
ï¼2ï¼.ä¿®è¯ç¨åºç¼ºé·ï¼
ï¼3ï¼.åºå®¢æ·è¦æ±ï¼ä¿®æ¹ä¸äºä¸è¥¿ã
è¿æ¯ç²¾è±å®æ¹çBIOSå级说æï¼
ç¼åbiosç¨åºç¨ä»ä¹ç¼è¯å¨
ç¼åbiosç¨åºï¼æ¥¼ä¸»é®é¢æ²¡ææè¿°æ¸ æ¥ã
å¦ææ¯ä½ æ头æbiosçæºä»£ç ï¼é£ä¹ç¨å¾®è½¯çMSVCç¼è¯å¨å°±å¯ä»¥ã
å¦æä½ ä» ä» æ¯æ³æBIOSæ件ç§å½å°ä¸»æ¿ä¸ï¼é£ä¹ä¸è¬çç¼ç¨å¨åªè¦æ¯æBIOSçflash romçé½å¯ä»¥ï¼æ¯å¦SF.
Linux0.内核源码解读(2)-Bootsect.S
本文深入解读Linux0.内核源码中的Bootsect.S,揭秘计算机启动过程的迷雾。
回顾计算机启动过程,当按下电源键,CPU进入实模式状态,初始化寄存器CS:IP为0xFFFF;0x,指向BIOS程序存储的0xFFFF0地址处。BIOS程序事先被刷入只读存储器ROM中,通过地址总线将指令从ROM中取出并执行,BIOS负责自检并设置启动顺序。
当BIOS自检完成,启动磁盘的启动扇区MBR(主引导记录)被加载到内存的0x7C地址处,设置CS=0xC0,IP=0x,计算机控制权转移至操作系统手中。
Bootsect.S的主要任务是加载操作系统到内存中。它首先将自身从MBR中搬运到内存的0x7C地址,并设置段基址,以便后续程序访问内存。接着,Bootsect.S将自己再次搬运到0x地址,为加载setup.s做准备。
之后,Bootsect.S通过BIOS的中断程序将setup.s加载到内存的0x地址,为后续操作系统加载铺平道路。当setup.s加载完成,计算机控制权转移到setup程序手中。
最后,Bootsect.S通过int 0x中断在屏幕上显示"Loading"提示,操作系统开始加载到内存中的0x地址。由于操作系统较大,加载过程需要通过子程序处理磁道、扇区和磁头的计算,以及可能的内存段切换。
Bootsect.S工作流程结束于jmpi 0,SETUPSEG,将控制权转移给setup程序。通过本文的解析,我们深入了解了Bootsect.S在Linux0.内核启动过程中的关键作用。
Legacy(传统)BIOS的历史和不足 -原创
提到BIOS,就必须提及IBM,它不仅发明了BIOS,同时催生了IBV(Independent BIOS Vendor)独立BIOS供应商这一产业角色,至今已成计算机产业生态中重要组成部分。
IBM从生产收银机和制表机的小公司逐步发展成计算机行业的巨头,开创了个人计算机的新时代。其在计算机领域贡献巨大,如制造了第一个硬盘驱动器、第一个软盘驱动器、第一个广泛使用的高级编程语言FORTRAN、关系数据库、第一台超级科学计算机、第一个RISC设计和第一块DRAM芯片等。
通用计算机的时代始于第二次世界大战期间,科学家们为美国军方设计出世界第一台存储程序通用电子计算机EDVAC,其“冯·诺伊曼-电子计算机体系结构”影响至今。
IBM在年决定开发商用电脑,并于年研制出IBM第一台存储程序计算机IBM ,这是通常意义上的电脑,标志着计算机全面引入商业领域。
年,Intel发布首枚位微处理器。IBM采用第三方软硬件组装方案,于年8月日推出首款个人电脑IBM ,即IBM Personal Computer。这款产品大受欢迎,销量巨大,对PC(个人计算机)市场产生了深远影响。
在IBM 中,自研的BIOS(基本输入输出系统)在开机时对硬件进行状态检测和初始化,确保硬件正常后加载操作系统,连接上下游处理器、操作系统和其他外设硬件。IBM PC的诞生开创了个人计算机时代,IBM也成为行业巨头。
由于BIOS源代码的开放性,许多公司通过参考IBM手册和逆向工程自研BIOS,推出了更便宜的PC兼容机,对IBM市场形成冲击。尽管IBM通过法律手段阻止了部分公司,但市场格局已经改变。
独立BIOS供应商(IBV)由此诞生,如AMI、Award、Chips & Technologies、General Software、Microid Research、Quadtel、Unicore等,形成产业链重要一环。后来,Intel、AMD和微软推出UEFI行业标准,BIOS逐渐淡出历史舞台。
BIOS在计算机产业链中扮演关键角色,连接CPU、操作系统和各类硬件,起承上启下的作用。它具有开机检查、引导操作系统和提供中断服务的三大功能。
然而,随着技术发展,Legacy BIOS(传统BIOS)的不足逐渐显现:安全防护弱、性能低、支持硬盘容量有限、扩展设备支持有限、扩展能力有限以及使用汇编语言开发,维护难度高。
UEFI(可扩展固件接口)等新技术的出现,使得BIOS逐步被取代。思考BIOS是否必需存在,答案是肯定的,因为BIOS确保硬件在特定平台的初始可用状态,满足不同平台对硬件的兼容性要求。虽然传统BIOS已被淘汰,但新型BIOS技术将随产业不断发展。