利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析

2023-11-17

电脑的启动过程如下:

机后主动执行BIOS程序,可以通过BIOS去设置CMOS,也可以不设置;

然后BOIS会去识别操作系统引导设备的引导分区,一般也就是电脑里的硬盘中的第一个扇区;

这个扇区中有分区表和主引导分区MBR,我们找到了MBR;

MBR中存放的是引导加载程序(Boot loader),其可以读取内核文件;

内核文件:开始操作系统的功能了。

 

BIOS和CMOS:

 

     

BIOS实际就是ROM里面的一段小程序(芯片总容量大概就是几M),在主板通电时候会硬件加载执行。基本功能就是进行硬件检测,检查没问题就引导bootloader和系统。

首先主板通电,硬件自动加载bios程序。bios程序检查硬件,初始化和设置硬件,然后加载磁盘(启动盘)的MBR扇区到0x7c00,然后跳到0x7c00执行。为什么是0x7c00?可以看【http://www.ruanyifeng.com/blog/2015/09/0x7c00.html】。主要是兼容历史的原因。
 

我们看一下GOOGLE上面的一个问题。

Q:What is CMOS and its function?

ANS:The CMOS is a physical part of the motherboard: it is a memory chip that houses setting configurations and is powered by the onboard battery. The CMOS is reset and loses all custom settings in case the battery runs out of energy, Additionally, thesystem clock resets when the CMOS loses power.

Q:What's the diffrence between BIOS and CMOS RAM?

ANS:Nonvolatile BIOS memory refers to a small memory on PC motherboards that is used to store BIOS settings. It is traditionally called CMOS RAM because it uses a volatile, low-power complementary metal-oxide-semiconductor (CMOS) SRAM (such as the Motorola MC146818 or similar) powered by a small "CMOS" battery when system and standby power is off. It is referred to as non-volatile memory or NVRAM because, after the system loses power, it does retain state by virtue of the CMOS battery. The typical NVRAM capacity is 256 bytes.The CMOS RAM and the real-time clock have been integrated as a part of the southbridge chipset and it may not be a standalone chip on modern motherboards.

 

BIOS界面,我们配置的参数是放在一块可读写的CMOS RAM芯片中的,它保存着系统CPU、软硬盘驱动器、显示器、键盘等部件的信息。关机后,系统通过一块后备电池向CMOS供电以保持其中的信息。如果CMOS中关于微机的配置信息不正确,会导致系统性能降 低、零部件不能识别,并由此引发一系列的软硬件故障。在BIOS ROM芯片中装有一个程序称为"系统设置程序",就是用来 设置CMOS RAM中的参数的。这个程序一般在开机时按下一个或一组键即可进入,它提供了良好的界面供用户使用。这个设置 CMOS参数的过程,习惯上也称为"BIOS设置"。新购的微机或新增了部件的系统,都需进行BIOS设置。

CMOS RAM 各字节含义

CMOS RAM(Complementary Metal Oxide Semiconductor)是采用互补金属氧化物半导体工艺的随机存取存储器 ,是微机主板上的一块可读写的RAM芯 片,用来保存当前系统的硬件配置和用户对某些参数的设定。CMOS可由主板的电池供电,即使系统掉电,信息也不会丢失。 CMOS RAM本身只是一块存储器,只有数据保存功能,而对CMOS中各项参数的设定要通过专门的程序。 早期的CMOS设置程序驻留 在软盘上的(如IBM的PC/AT机型),使用很不方便。现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过特定的按键 就可进……
+ 查看全文
Complementary Metal Oxide SemiconductorCMOS(本意是指互补金属氧化物半导体——一种大规模应用于集成电路芯片制造的原料)是微机主板上的一块可读写的RAM芯 片,用来保存当前系统的硬件配置和用户对某些参数的设定。CMOS可由主板的电池供电,即使系统掉电,信息也不会丢失。 CMOS RAM本身只是一块存储器,只有数据保存功能,而对CMOS中各项参数的设定要通过专门的程序。 

早期的CMOS设置程序驻留 在软盘上的(如IBM的PC/AT机型),使用很不方便。现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过特定的按键 就可进入CMOS设置程序方便地对系统进行设置,因此CMOS设置又被叫做BIOS设置。 早期的CMOS是一块单独的芯片MC146818A(DIP封装),共有64个字节存放系统信息,见CMOS配置数据表。386以后的微机一般将 MC146818A芯片集成到其它的IC芯片中(如82C206,PQFP封装),最新的一些586主板上更是将CMOS与系统实时时钟和后备电池集 成到一块叫做DALLDA DS1287的芯片中。随着微机的发展、可设置参数的增多,现在的CMOS RAM一般都有128字节及至256字节 的容量。 

为保持兼容性,各BIOS厂商都将自己的BIOS中关于CMOS RAM的前64字节内容的设置统一与MC146818A的CMOS RAM格式 一致,而在扩展出来的部分加入自己的特殊设置,所以不同厂家的BIOS芯片一般不能互换,即使是能互换的,互换后也要对 CMOS信息重新设置以确保系统正常运行. 你认识主板上的BIOS芯片吗? 介绍常见的BIOS芯片的识别 ROM BIOS是主板上存放微机基本输入输出程序的只读存贮器,其功能是微机的上电自检、开机引导、基本外设I/O和系统CMOS 设置。 

主板上的ROM BIOS芯片是主板上唯一贴有标签的芯片,一般为双排直插式封装(DIP),上面印有“BIOS”字样。虽然有些BIOS 芯片没有明确印出“BIOS”,但凭借外贴的标签也能很容易地将它认出。 586以前的BIOS多为可重写EPROM芯片,上面的标签起着保护BIOS内容的作用(紫外线照射会使EPROM内容丢失),不能随便撕下。 586以后的ROM BIOS多采用EEPROM(电可擦写只读ROM),通过跳线开关和系统配带的驱动程序盘,可以对EEPROM进行重写,方便 地实现BIOS升级。 常见的BIOS芯片有AMI、Award、Phoenix等,在芯片上都能见到厂商的标记。

CMOS RAM 芯片的特征:

  • 包含一个时钟和一个有128个存储单元的RAM存储器。
  • 该芯片靠电池供电。所以,关机后其内部的时钟仍可正常工作,RAM中的信息不丢失。
  • 128个字节的RAM中,内部时钟占用 0~0dh  单元来保存时间信息,其余大部分单元用于保存系统配置信息,供系统启动时BIOS程序读取。
  • 该芯片内部有两个端口,端口地址为 70h 和 71h 。CPU 通过这两个端口来读写CMOS RAM。
  • 70h 为地址端口存放要访问的 CMOS RAM 单元的地址; 71h  为数据端口,存放从选定的 CMOS RAM 单元中读取的数据,或要写入到其中的数据。
  • 在CMOS RAM 中,存放着当前的时间:年、月、日、时、分、秒。这6个信息的长度都为1个字节,存放单元:且这些数据以 BCD 码的方式存放。

标准的(AT以后主板都兼容的)CMOS RAM只有64字节、128字节两种。
某些芯片组做了扩展,别说256字节,就是更多也有可能,比如AMD 645之后的芯片组,通过72h/73h、74h/75h端口可以访问512字节的CMOS RAM。

具体的每个字节的含义参考:https://blog.csdn.net/astrotycoon/article/details/8787524

进入BIOS系统设置硬件工作参数后,最终保存在哪里?

bios设置的参数保存在电脑主板上的cmos RAM芯片里,要保持这些设置,需要供电,因此主板上会有cmos电池,台式机电脑主板常用CR2032的一次性锂电池,寿命高达3到5年。

所以,如何找到CMOS里面保存的BIOS配置参数成为主要目标!

参考:https://blog.csdn.net/weixin_30481087/article/details/98769873

通过70h/71h读取基本的128个字节信息,通过72h/73h读取扩展的128个字节信息,一共256个字节信息。

 

 

 

参考:

https://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory

https://www.jd.com/phb/zhishi/d1ee827243880fb9.html

http://www.xjishu.com/zhuanli/55/201810504000.html

https://max.book118.com/html/2017/0419/101134876.shtm

https://blog.csdn.net/qq_37232329/article/details/85852517

http://baike.eepw.com.cn/baike/show/word/CMOS%20RAM

https://www.cnblogs.com/TreeDream/p/7058921.html

https://bbs.csdn.net/topics/340137745

https://blog.csdn.net/linzhanglong/article/details/53947455

https://blog.csdn.net/astrotycoon/article/details/8787524

https://www.jianshu.com/p/b700a6c9964e

https://books.google.com.hk/books?id=tcUrXlJbRIgC&pg=PA44&lpg=PA44&dq=BIOS%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%93%AA%E9%87%8C&source=bl&ots=DPE2dwDqlr&sig=ACfU3U1Z6N2-OZwMhdZmJ_u9fDxuGjsx7w&hl=zh-CN&sa=X&ved=2ahUKEwiCoNH33pPlAhWGfXAKHfKvDSsQ6AEwBnoECAgQAQ#v=onepage&q=BIOS%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%93%AA%E9%87%8C&f=false

https://jingyan.baidu.com/article/455a99505fe299a167277862.html

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析 的相关文章

  • 惠普暗影精灵2更新bios系统,防止电池鼓包

    https support hp com cn zh drivers selfservice omen by hp 15 ax000 laptop pc series 10862325 model 12732710 bios版本怎么看 查看
  • Enable VT-x in your BIOS security settings (refer to documentation for your computer)

    创建一个安卓模拟器的时候无法运行 提示为 Intel HAXM 要求运行AVD 但是VT x 没有被允许 意思就是说主机支持VT x xff0c 但是处于未开启状态 你需要进入BOIS中进行设置 BOIS出现Lenovo时按F2进入 选择S
  • UEFI源码解析之UEFI_DRIVER

    Dxe Driver可以视作UEFI中的一个服务 在entry中通过protocol安装自己的服务 在Bds等位置通过locate protocol使用该服务 不必依赖与具体的硬件 当需要封装某个设备 控制器或总线的时候 对应于具体的物理实
  • css样式兼容、注释_CSS中的伪注释(或者,浏览器如何解析样式)

    css样式兼容 注释 The CSS spec does not mention it but you can mimic C style and or Unix style line comments in CSS files with
  • 联想笔记本无线网络无法使用(无线开关已打开,但搜不到无线网络)

    今天 同事拿过来一台笔记本 说收不到无线网络了 插上有线可以上网 让给她看看 我看了一眼 果然是 插上网上后 是可以上网的 但就是收不到无线网络 本子是联想的 应该是很老的本子了 也没找到型号在哪 看了一下它的无线外置开关 是打开状态 但是
  • 主板bios开启虚拟化支持

    Inter和AMD生产的主流CPU都支持虚拟化技术 但很多电脑或主板BIOS出厂时默认禁用虚拟化技术 某些比较老的CPU是不支持虚拟化技术 要确定其电脑CPU是否支持虚拟化技术 可以在 5分享 镜像 虚拟机下载检测工具 1 打开虚拟化检测工
  • 关于联想G480BIOS中的设置

    由于一段时间对笔记本电脑中的BIOS设置很感兴趣 故在网上搜索一下 找到这篇博客 为了以后那天能用上就先转载一下 以备后用 地址为 关于G480BIOS设置
  • EDK2安装教程

    1 1基础搭建 相关文件请自行百度下载 1 安装VS2015到C盘 请勿修改默认目录 否则需要修改C edk2 Conf tools def txt 2 如安装包所示 安装python2 7到C盘并设置环境变量如下 3 将nasm解压到C
  • 华硕主板怎么进入bios

    bios是电脑的基本输入输出系统 有一些电脑系统设置等需要在bios系统内完成 比如说cpu电压 温度等参数设置 磁盘模式修改 硬盘启动项顺序修改等等都是需要bios内完成 有使用华硕电脑的用户不知道华硕主板怎么进入bios 下面小编就教下
  • Docker Compose 配置文件 docker-compose.yml 详解

    Docker Compose配置文件是Docker Compose的核心 用于定义服务 网络和数据卷 格式为YAML 默认路径为 docker compose yml 可以使用 yml或 yaml扩展名 目前Compose配置文件格式的最新
  • 使用 DOS 或 BIOS 显示字符

    翻翻拉尔夫 布朗的中断列表 我发现有很多不同的方法可以将文本字符输出到屏幕上 ROM BIOS API 提供以下功能 AH 09h 在光标位置写入字符和属性 AH 0Ah 仅在光标位置写入字符 AH 0Eh 电传打字机输出 AH 13h 写
  • AH=2 的 BIOS INT 13H 每次只能读取 72 个扇区。为什么?

    我正在使用 Bochs 2 4 5 编写引导扇区代码 我使用 INT 13H 从软盘读取扇区 但我发现如果读取的扇区数 gt 72 INT13就会失败 返回码为AH 1 下面是代码 这是INT13 返回码为AH 1 为什么INT 13H不能
  • 是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

    我正在尝试编写一个程序 该程序将成为 BIOS 选项 开机自检后 我希望应用程序有一个漂亮的 GUI 而不是基于文本 这有多种原因 本地化就是其中之一 我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制 是否可以使用MASM32
  • NASM 引导加载程序中的 jmp $

    我试图编写引导加载程序引导装载程序 写的代码是 BITS 16 start mov ax 07C0h Set up 4K stack space after this bootloader add ax 288 4096 512 16 by
  • 引导加载程序如何读取 DVD(cd)?

    我有一个用汇编语言编写的第一阶段引导加载程序 我需要它从 DVD 或 CD 加载第二阶段引导加载程序 我只找到了从软盘或硬盘读取的示例 那里使用的中断是13h 在中断描述中它说它可以读取软盘和硬盘 我尝试使用 13h 来读取 CD 就好像它
  • 我的 BIOS 设置中没有启用 Hyper-V 的选项

    我是 Windows Phone 8 应用程序开发新手 我安装了SDK 8 0 当我运行应用程序时 它显示一条错误 告诉我启用 Hyper V 在搜索过程中我发现这个 MSDN 文档BIOS 中有解决方案 但是当进入我的BIOS设置时 却没
  • 读取 BIOS 级汇编中的输入? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在创建一个非常低级的应用程序 并且我已准备好引导加载程序 我本质上必须重建 scanf 函数 因为
  • 启动时自动运行 EFI 应用程序

    I can 构建并手动执行 http sourceforge net apps mediawiki tianocore index php title Getting Started Writing Simple ApplicationUE
  • UEFI引导加载程序

    我正在考虑开发一个简单的 首先 UEFI 引导加载程序来加载 ELF 映像 并且想知道是否有人有一个很好的切入点 可以进入任何现有项目 或者我可以用来开始使用的示例 另外 我想知道是否有人有让虚拟机运行 EFI 应用程序的经验 我已经设置了
  • BIOS 是否将 512 字节引导加载程序复制到 0x7c00

    我正在编写内核 在写这么复杂的东西之前 我认为对内核 引导加载程序 寄存器 BIOS 等进行一些理论阅读不仅会有所帮助 而且是必要的 本文 http lennartb home xs4all nl bootloaders node3 htm

随机推荐

  • gitlab项目代码仓库管理指南(自用)

    gitlab项目管理流程 注意事项 任何项目开始即创建对应项目仓库 issues应覆盖项目从原始需求 gt 项目结题过程中各环节 记录问题 解决思路等 及时整理 及时归档 流程图 git常用命令图 创建项目团队 注意事项 正式项目应所属团队
  • 相似性度量总结

    整理自 机器学习中的相似性度量 余弦距离 欧氏距离和杰卡德相似性度量的对比分析 在做分类时常常需要估算不同样本之间的相似性度量 Similarity Measurement 这时通常采用的方法就是计算样本间的 距离 Distance 采用什
  • VS2017突然不检查语法错误

    VS2017用着用着不检查语法错误 生成只说失败 错误列表显示0 只需要退出软件 到工程目录中删除 vs文件夹 重启软件即可 VS2019也是一样的
  • 关于https://goproxy.cn,direct与https://proxy.golang.org的问题,国内无法访问https://proxy.golang.org设置了GOPROXY仍不可行

    关于https goproxy cn direct与https proxy golang org的问题 国内无法访问https proxy golang org设置了GOPROXY仍不可行 一步一步说 首先 遇到报错信息 go github
  • NLP基础知识点:BLEU(及Python代码实现)

    Bleu 1 是IBM在2002提出的 用于机器翻译任务的评价 BLEU还有许多变种 根据n gram可以划分成多种评价指标 常见的指标有BLEU 1 BLEU 2 BLEU 3 BLEU 4四种 其中n gram指的是连续的单词个数为n
  • 校招真题练习008 浇花(百度)

    浇花 题目描述一个花坛中有很多花和两个喷泉 喷泉可以浇到以自己为中心 半径为r的圆内的所有范围的花 现在给出这些花的坐标和两个喷泉的坐标 要求你安排两个喷泉浇花的半径r1和r2 使得所有的花都能被浇到的同时 r1 2 r2 2 的值最小 输
  • GCC编译优化应用预编译头

    服务器编译优化记录 对项目编译优化过程中一些思路和脚本工具实现 对内存受限的编译环境有一些帮助 工具 https github com wangxiaobai dd GccPrecompiledHeader 环境 32G内存 16核 Mak
  • 入职华为外包一个月,我离职了

    我入职华为外包公司已经有一个月了 一开始我对这份工作充满了期待和热情 毕竟 华为是一家全球知名的科技公司 而我也有机会成为其中的一员 我相信这份工作会给我带来许多机遇和挑战 然而 随着时间的推移 我开始发现外包公司的工作条件并不如我所想象的
  • 指标实现层级_有了指标怎么用层次分析法建立模型?

    电脑 MATLAB软件 方法 步骤 建立层次结构模型 目标层 这一层次中只有一个元素 一般它是分析问题的预定目标或理想结果 因此也称为目标层 准则层 这一层次中包含了为实现目标所涉及的中间环节 它可以由若干个层次组成 包括所需考虑的准则 子
  • TQ210学习笔记:TQ210移植qt

    这几天搞了一块TQ210的板子 由于要求 需要移植qt进去 于是搞了近一个星期 现在终于看到了一点希望 开始找了一篇博客 我是按照他的步骤来 http emouse cnblogs com 首先是移植TSLIB 移植这个的原因是 因为电磁噪
  • C++进阶--对象指针

    对象指针定义形式 类名 对象指针名 例 Point a 5 10 Point ptr ptr a 通过指针访问对象成员 对象指针名 gt 成员名 例 ptr gt getx 就相当于 ptr getx this指针 隐含于类的每一个非静态成
  • 行为型模式 - 状态模式State

    状态模式的定义与特点 状态 State 模式的定义 对有状态的对象 把复杂的 判断逻辑 提取到不同的状态对象中 允许状态对象在其内部状态发生改变时改变其行为 状态模式是一种对象行为型模式 其主要优点如下 结构清晰 状态模式将与特定状态相关的
  • 算法设计与分析(期末复习重点)更新中

    第一章 算法设计基础 算法的五大特性 输入 输出 可行性 有穷性 确定性 1 输入 一个算法有零个或多个输入 2 输出 一个算法有一个或多个输出 3 可行性 算法描述的操作可以通过已经实现的基本操作执行有限次来实现 每步可执行 4 有穷性
  • React State Hooks的闭包陷阱,在使用Hooks之前必须掌握

    伴随着 React Hooks 的正式发布 因为其易用性以及对于逻辑代码的复用性更强 毫无疑问越来越多的同学会偏向于使用 Hooks 来写自己的组件 但是随着使用的深入 我们发现了一些 State Hooks 的陷阱 那么今天我们就来分析一
  • 蛇形走线的长度受控问题

    目录 序言 分析 结束语 序言 有一次 小编的layout同事问了一个问题 蛇形走线时是否需要控制绕线的长度 小编一时竟难以回答 不是这个问题有多复杂 只是 这个问题不容易量化 解释起来颇费周章 因此 有必要将其单独列为一个话题进行讨论 具
  • VMware Workstation 英文改中文界面

    在控制面板 时间和语言 语言 区域中设置中文简体 感谢
  • 使用PhotoShop制作蓝底证件照

    准备 白底照片 ps 步骤 1 打开ps将图片拖入 2 复制图层 3 选择快速选择工具 4 点击图片背景 可以看到背景被圈出 5 单击del删除 可以发现背景没有了 6 点击右下角圆圈 7 选择纯色 设置R0 G125 B255 8 完成
  • 数据库存储引擎及查询sql执行流程

    通过公开课学习的 记录一下 数据库主要存储引擎 myisam 支持表级别的锁 不支持事务 读写不能并发进行 插入和查询会锁表 但因为直接存储了行数 则执行count更快 但是加上条件就不行了 innodb 支持事务 支持行级锁表级锁两种粒度
  • CVE-2016-5159 脏牛内核提权

    Linux内核提权 脏牛提权漏洞 Linux内核的子系统在处理写入时复制至产生了竞争条件 恶意用户可以利用此漏洞来获得高权限 对只读内存映射进行访问 并且在提权的时候 杀毒软件并不会检测到 影响范围 Linux内核 gt 2 6 22 20
  • 利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析

    电脑的启动过程如下 机后主动执行BIOS程序 可以通过BIOS去设置CMOS 也可以不设置 然后BOIS会去识别操作系统引导设备的引导分区 一般也就是电脑里的硬盘中的第一个扇区 这个扇区中有分区表和主引导分区MBR 我们找到了MBR MBR