1.biosԴ?源码뽲??
2.求易语言获取电脑信息源码
3.二十年重回首——CIH病毒源码分析
4.ç¼åbiosç¨åºç¨ä»ä¹ç¼è¯å¨
5.Linux0.12内核源码解读(2)-Bootsect.S
biosԴ?뽲??
本篇内容不讲解uboot源码,只总结面试中高频问到的讲解重要知识点。内容适用于嵌入式新人了解uboot,源码对老手有复习和查漏补缺的讲解作用。
1、源码PC机启动:上电后,讲解网站视频播放源码BIOS程序初始化DDR内存和硬盘,源码从硬盘读取OS镜像到DDR,讲解跳转执行OS。源码
2、讲解嵌入式Linux系统启动:上电后执行uboot,源码初始化DDR、讲解Flash,源码将OS从Flash读到DDR,讲解启动OS。源码
3、uboot定义与作用:uboot属于bootloader,作为单线程裸机程序,主要作用是蚂蚁待办源码初始化硬件、内存、flash等,引导内核启动。
4、uboot启动阶段(不同平台差异):MTK平台:boot rom -> preloader -> lk -> kernel;RK平台:bootrom -> spl(miniloader) -> uboot -> trust -> kernel;NXP平台:bootrom -> bl2 -> ATF -> uboot -> kernel。
5、uboot支持多种启动方式:SPI Flash/eMMC/Nvme/SD/Hard Disk/U-Disk/net。启动方式不同,固件存放位置也不同。
6、掌握uboot的关键点:命令和环境变量。uboot启动后大部分工作在shell中完成,命令用于操作,环境变量如bootcmd和bootargs,用于设置启动参数。
7、bootargs参数详解:root用于指定rootfs位置,console用于设置控制台,表白appandriod源码mem用于指定内核使用内存大小,ramdisk_size用于设置ramdisk大小,initrd用于指定initrd参数,init用于指定启动脚本,mtdparts用于设置分区。
8、常用bootargs组合:文件系统为ramdisk、jffs2类型、nfs等不同情况下的bootargs设置示例。
总结,了解uboot是嵌入式开发的基础,掌握其启动过程和关键参数,对提高开发效率和解决问题有重要作用。
求易语言获取电脑信息源码
你不是会吗?
好吧,就说吧。
取系统信息()‘就是操作系统以及位数
取BIOS信息()’这个很好理解,不多说,就是easypr源码剖析BIOS信息
取CPU信息()‘CPU生产厂商及配置
取声卡名称()’声卡厂商以及配置
取硬盘信息()‘硬盘厂商等信息
取本机名()’计算机名
二十年重回首——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中,通过dr0寄存器记录病毒安装状态,分配系统内存,并将病毒代码复制到内存中。之后,病毒安装钩子,当有文件读写调用时,会执行病毒代码。
当系统调用参数为关闭文件时,病毒进行时间判断,直到每月日,统一开始破坏BIOS和硬盘。破坏BIOS的方法包括映射BIOS内容、设置BIOS可写性。硬盘破坏则通过VXD驱动调用命令。
综上所述,CIH病毒利用了Win9x系统的漏洞,通过修改SEH和中断描述符表进入内核,安装系统调用钩子,感染文件并在特定时间执行破坏操作。然而,其在WinNT及后续系统上的感染能力已失效。尽管如此,CIH病毒的源码和分析过程对了解历史和安全漏洞仍具有重要价值。
ç¼å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.内核启动过程中的关键作用。