CN102467644B - 系统管理中断的执行方法 - Google Patents

系统管理中断的执行方法 Download PDF

Info

Publication number
CN102467644B
CN102467644B CN201010551694.XA CN201010551694A CN102467644B CN 102467644 B CN102467644 B CN 102467644B CN 201010551694 A CN201010551694 A CN 201010551694A CN 102467644 B CN102467644 B CN 102467644B
Authority
CN
China
Prior art keywords
identification code
system management
operating system
block
management interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010551694.XA
Other languages
English (en)
Other versions
CN102467644A (zh
Inventor
卢盈志
王郁蕙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Zhongke Electric Co., Ltd.
Original Assignee
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN201010551694.XA priority Critical patent/CN102467644B/zh
Publication of CN102467644A publication Critical patent/CN102467644A/zh
Application granted granted Critical
Publication of CN102467644B publication Critical patent/CN102467644B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种系统管理中断的执行方法。在执行开机自我测试时,产生第一识别码并储存第一识别码至存储器的系统管理模式区块。在启动操作系统的过程中,从系统管理模式区块中读取第一识别码来作为第二识别码,而储存第二识别码至存储器的操作系统区块。当操作系统欲使用系统管理中断时,分别从系统管理模式区块与操作系统区块读取出第一识别码与第二识别码。比较第一识别码与第二识别码是否相同。若第一识别码与第二识别码相同,执行系统管理中断。

Description

系统管理中断的执行方法
技术领域
本发明涉及一种系统管理中断的执行方法,尤其涉及一种保护系统管理中断的执行方法。
背景技术
系统管理模式(System Management Mode,SMM)为现今一般电脑系统所用的中央处理单元(Central Processing Unit,CPU)的一种特别功能。当系统管理中断(System Management Interrupt,SMI)被触发到中央处理单元时,便会进入系统管理模式。在系统管理模式下,CPU将执行基本输入输出系统(Basic Input Output System,BIOS)的系统管理中断处理程序(SMIhandler routine,以下简SMI处理程序),以由SMI处理程序来服务此系统管理中断,再者,此SMI处理程序位于系统管理随机存取存储器(SystemManagement Random Access Memory,SMRAM)内。
近年来,BIOS大量使用软件SMI(Software SMI,SW SMI)以回避操作系统(Operating System,OS)来执行一些重要程序。例如:执行BIOS的更新、致能或禁能先进组态与电源介面(Advanced Configuration and PowerInterface,ACPI)、注入错误校正码(Error Correction Code,ECC)等。倘若软件SMI使用不当将会破坏系统的稳定性,甚至破坏BIOS,造成无法开机。
由于软件SMI的输入输出端口(IO port)容易被得知,因而让恶毒软件便可利用软件SMI来破坏系统。例如,软件SMI的输入输出端口地址通常储存于固定先进组态与电源介面描述表(Fixed ACPI Description Table,FACP)中,恶毒软件由FACP表格中便能够获得软件SMI的输入输出端口地址。或者,恶毒软件也能够由南桥晶片的制造商识别码及装置识别码来获得软件SMI的输入输出端口地址。
发明内容
本发明提供一种系统管理中断的执行方法,以避免恶毒软件直接来使用系统管理中断。
本发明提出一种系统管理中断的执行方法。在执行开机自我测试时,产生第一识别码并储存第一识别码至存储器的系统管理模式区块。其中,该系统管理模式区块在操作系统执行之下被隐藏。在启动操作系统的过程中,从系统管理模式区块中读取第一识别码来作为第二识别码,而储存第二识别码至存储器的操作系统区块。当操作系统欲使用系统管理中断时,分别从系统管理模式区块与操作系统区块读取出第一识别码与第二识别码。比较第一识别码与第二识别码是否相同。若第一识别码与第二识别码相同,执行系统管理中断。
在本发明的一实施例中,上述系统管理中断的执行方法还包括:在产生第一识别码的步骤之后,将第一识别码加密为第一加密识别码。并且,在将第一识别码当作第二识别码的步骤之后,将第二识别码加密为第二加密识别码。
在本发明的一实施例中,上述系统管理中断的执行方法中,当操作系统欲使用系统管理中断时,分别从系统管理模式区块与操作系统区块读取出该第一识别码与该第二识别码的步骤包括:从操作系统区块读取第二加密识别码,而解密为第二识别码,并且,进入系统管理模式,从系统管理模式区块读取第一加密识别码,而解密为第一识别码。
在本发明的一实施例中,上述系统管理中断的执行方法中,当操作系统欲使用系统管理中断时,将第二识别码的存储器地址写入至暂存器中的步骤后,还包括:当中央处理单元接收到系统管理中断时,进入系统管理模式,将暂存器的值写入至系统管理模式区块。接着,执行中断处理程序,通过中断处理程序从系统管理模式区块中读取第二识别码的存储器地址。并且,依据存储器地址来取得第二识别码。
在本发明的一实施例中,第一识别码为全域唯一识别码(GloballyUnique Identifier,GUID)。
在本发明的一实施例中,上述系统管理中断的执行方法中,可建立识别码读取程序,通过识别码读取程序从系统管理模式区块读取第一识别码。并且还可建立识别码传送程序,通过识别码传送程序将第一识别码作为第二识别码,而储存第二识别码至操作系统区块。
在本发明的一实施例中,上述通过识别码读取程序从系统管理模式区块读取第一识别码的步骤包括:在启动操作系统的过程中,呼叫识别码读取程序以产生专用系统管理中断。并且利用专用系统管理中断从系统管理模式区块中读取第一识别码。
在本发明的一实施例中,上述储存第二识别码至操作系统区块的步骤包括:在启动操作系统的过程中,呼叫识别码传送程序。并且,利用识别码传送程序将第一识别码传送至操作系统区块来作为第二识别码。
基于上述,本发明在操作系统区块与系统管理模式区块分别储存了一个识别码。当欲使用系统管理中断时,比较两个识别码是否相同,以在两个识别码相同时才执行系统管理中断。据此,可避免恶毒软件轻易地来使用系统管理中断。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是依照本发明第一实施例所示出的系统管理中断的执行方法的流程图。
图2是依照本发明第二实施例所示出的系统管理中断的执行方法的流程图。
附图标记:
S105~S120、S205~S255-步骤。
具体实施方式
第一实施例
图1是依照本发明第一实施例所示出的系统管理中断的执行方法的流程图。请参照图1,在步骤S105中,在执行开机自我测试(Power On Self Test,POST)时,产生第一识别码,并将第一识别码储存至存储器的系统管理模式区块。在本实施例中,存储器包括操作系统区块(让操作系统所使用的区块)、系统管理模式区块以及给其他程序所使用的区块。其中,系统管理模式区块在操作系统执行之下是被隐藏而看不到。举例来说,系统管理模式区块例如为系统管理随机存取存储器(System Management Random Access Memory,SMRAM),SMRAM只有在进入系统管理模式(System Management Mode,SMM)时看得到,也就是说在进入SMM模式时,方会将SMRAM映射至存储器地址空间。
接着,在步骤S110中,在执行操作系统的过程中,从系统管理模式区块中读取第一识别码来作为第二识别码,而将第二识别码储存至存储器的操作系统区块。例如,通过操作系统产生中断编号为F1h的专用系统管理中断(System Management Interrupt,SMI)以从系统管理模式区块中取得第一识别码。并且,将此第一识别码作为第二识别码而储存至操作系统区块中。另外,还可将此专用系统管理中断设定在每次开机只能执行一次。
另外,为了提高安全性,在POST过程中,在产生第一识别码之后还可将第一识别码加密为第一加密识别码,再将第一加密识别码储存至系统管理模式区块中。而当在执行操作系统的过程中,利用自订SMI来取出第一加密识别码并解密之后,将第一识别码作为第二识别码。此时,也可将第二识别码加密为第二加密识别码,再储存至操作系统区块。
然后,在步骤S115中,当操作系统欲使用SMI时,分别从系统管理模式区块与操作系统区块读取出第一识别码与第二识别码。当操作系统欲使用SMI时,操作系统将第二识别码传送给SMI处理程序(SMI Handler),并且SMI处理程序会从系统管理模式区块取得第一识别码。在此,储存于操作系统区块为第二加密识别码,则操作系统会先将第二加密识别码解密再传送给SMI处理程序。
最后,在步骤S120中,若第一识别码与第二识别码相同,执行系统管理中断。由SMI处理程序来比较第一识别码与第二识别码是否相同。在两者吻合的状况之下,才会执行操作系统所要求的SMI。
据此,上述实施例是利用第一识别码来当作是执行SMI的金钥,也就是在系统管理模式区块与操作系统区块中各自储存一个识别码,当操作系统欲使用SMI时,若比较两个识别码相同,才允许执行SMI。由于要经过操作系统来读取第二识别码并传送至SMI处理程序,因此只有知道第二识别码的应用程序方能够有效地执行SMI。如此一来,恶毒软件便无法不经由操作系统而直接使用SMI。
第二实施例
为了避免每次开机时所产生的识别码重复,在本实施例中,利用全域唯一识别码(Globally Unique Identifier,GUID)来作为识别码。另外,在此所使用的SMI机制为软件SMI(Software SMI,SW SMI)
图2是依照本发明第二实施例所示出的系统管理中断的执行方法的流程图。
请参照图2,在步骤S205中,基本输入输出系统(Basic Input OutputSystem,BIOS)于POST过程中产生一个GUID_1。接着,在步骤S210中,将GUID_1加密为GUID_1E。之后,在步骤S215中,将GUID_1E储存至存储器的系统管理模式区块(例如SMRAM)。
当BIOS执行完POST之后,开始启动操作系统。在启动操作系统的过程中(操作系统尚未启动完成),如步骤S220所示,产生专用SW SMI,以从系统管理模式区块中读取GUID_1E,并将其解密为GUID_1。
举例来说,建立识别码读取程序,例如:AML(ACPI Machine Language)程序的程序(method)_INI,以通过识别码读取程序从系统管理模式区块读取GUID_1。在启动操作系统的过程中,呼叫(call)识别码读取程序,倘若为第一次呼叫识别码读取程序,则产生一专用SW SMI(例如,中断编号为F1h),利用此专用SW SMI从系统管理模式区块中读取第一识别码。在此,专用SW SMI只执行一次,以避免被恶毒软件来利用。
之后,在步骤S225中,将GUID_1当作GUID_2,并将GUID_2加密成为GUID_2E而储存至操作系统区块。具体而言,可建立一识别码传送程序,例如:AML程序的程序(method)_SWSK,以通过识别码传送程序将GUID_1作为GUID_2。也就是在启动操作系统的过程中,呼叫识别码传送程序,利用识别码传送程序将GUID_1传送至操作系统区块来作为GUID_2,并且将GUID_2加密为GUID_2E。此时,将GUID_2E储存至操作系统区块之后,便可将GUID_2清除。
在操作系统启动完成之后,当操作系统欲使用SW SMI时,如步骤S230所示,操作系统取出GUID_2E而解密为GUID_2,并将GUID_2的存储器地址写入至中央处理单元的暂存器(例如EAX)中,然后触发SW SMI。例如,使用SMI命令端口(Command Port)B2h。
当中央处理单元接收到SW SMI时,如步骤S235所示,进入SMM模式,并将暂存器的值(例如CPU Context,当中包括EAX)写入至系统管理模式区块。也就是将GUID_2的存储器地址写入至系统管理模式区块。这是因为在进入SMM模式之后,中央处理单元会将现有的状态储存至系统管理模式区块(例如为SMRAM)里。
接着,在步骤S240中,执行SMI处理程序时,依据系统管理模式区块中储存的GUID_2的存储器地址去读取GUID_2。并且,从系统管理模式区块中取得GUID_1E,并将GUID_1E解密为GUID_1。
之后,在步骤S245中,SMI处理程序会比较GUID_1与GUID_2是否相同。倘若两者相同,如步骤S250所示,执行SW SMI。倘若两者不相同,如步骤S255所示,退出SMM模式。据此,可保护SMI不被恶毒软件所使用。
综上所述,本发明在操作系统区块与系统管理模式区块分别储存了一个识别码。当欲使用系统管理中断时,比较两个识别码是否相同,以在两个识别码相同时才执行系统管理中断。在操作系统之下使用的系统管理中断都会受到保护,应用程序只能通过操作系统来下达系统管理中断。
据此,可避免恶毒软件直接来使用系统管理中断。并且,在每次开机时都会动态产生一识别码,减少被恶毒软件破解的机会。
虽然本发明已以实施例揭示如上,但并非用以限定本发明,任何所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此,本发明的保护范围当以权利要求限定的范围为准。

Claims (9)

1.一种系统管理中断的执行方法,其特征在于,包括:
在执行开机自我测试时,产生第一识别码并储存该第一识别码至存储器的系统管理模式区块,其中该系统管理模式区块在操作系统执行之下被隐藏;
在启动该操作系统的过程中,从该系统管理模式区块中读取该第一识别码来作为第二识别码,而储存该第二识别码至该存储器的操作系统区块;
当该操作系统欲使用系统管理中断时,分别从该系统管理模式区块与该操作系统区块读取出该第一识别码与该第二识别码;
比较该第一识别码与该第二识别码是否相同;
若该第一识别码与该第二识别码相同,执行该系统管理中断;以及
若该第一识别码与该第二识别码不同,禁止执行该系统管理中断。
2.根据权利要求1所述的系统管理中断的执行方法,其特征在于,还包括:
在产生该第一识别码的步骤之后,将该第一识别码加密为第一加密识别码;以及
在将该第一识别码当作该第二识别码的步骤之后,将该第二识别码加密为第二加密识别码。
3.根据权利要求2所述的系统管理中断的执行方法,其特征在于,其中当该操作系统欲使用该系统管理中断时,分别从该系统管理模式区块与该操作系统区块读取出该第一识别码与该第二识别码的步骤包括:
从该操作系统区块读取该第二加密识别码,而解密为该第二识别码;以及
进入系统管理模式,从该系统管理模式区块读取该第一加密识别码,而解密为该第一识别码。
4.根据权利要求1所述的系统管理中断的执行方法,其特征在于,还包括:
当该操作系统欲使用该系统管理中断时,将该第二识别码的存储器地址写入至暂存器中。
5.根据权利要求4所述的系统管理中断的执行方法,其特征在于,其中在将该第二识别码的该存储器地址写入至该暂存器中的步骤之后,还包括:
当中央处理单元接收到该系统管理中断时,进入系统管理模式,将该暂存器的值写入至该系统管理模式区块;
执行中断处理程序,通过该中断处理程序从该系统管理模式区块中读取该第二识别码的存储器地址;以及
依据该存储器地址来取得该第二识别码。
6.根据权利要求1所述的系统管理中断的执行方法,其特征在于,其中该第一识别码为全域唯一识别码。
7.根据权利要求1所述的系统管理中断的执行方法,其特征在于,还包括:
建立识别码读取程序,通过该识别码读取程序从该系统管理模式区块读取该第一识别码;以及
建立识别码传送程序,通过该识别码传送程序将该第一识别码作为该第二识别码,而储存该第二识别码至该操作系统区块。
8.根据权利要求7所述的系统管理中断的执行方法,其特征在于,其中通过该识别码读取程序从该系统管理模式区块读取该第一识别码的步骤包括:
在启动该操作系统的过程中,呼叫该识别码读取程序以产生专用系统管理中断;以及
利用该专用系统管理中断从该系统管理模式区块中读取该第一识别码。
9.根据权利要求7所述的系统管理中断的执行方法,其特征在于,其中储存该第二识别码至该操作系统区块的步骤包括:
在启动该操作系统的过程中,呼叫该识别码传送程序;以及
利用该识别码传送程序将该第一识别码传送至该操作系统区块来作为该第二识别码。
CN201010551694.XA 2010-11-17 2010-11-17 系统管理中断的执行方法 Expired - Fee Related CN102467644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010551694.XA CN102467644B (zh) 2010-11-17 2010-11-17 系统管理中断的执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010551694.XA CN102467644B (zh) 2010-11-17 2010-11-17 系统管理中断的执行方法

Publications (2)

Publication Number Publication Date
CN102467644A CN102467644A (zh) 2012-05-23
CN102467644B true CN102467644B (zh) 2014-09-03

Family

ID=46071270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010551694.XA Expired - Fee Related CN102467644B (zh) 2010-11-17 2010-11-17 系统管理中断的执行方法

Country Status (1)

Country Link
CN (1) CN102467644B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293838B (zh) * 2016-08-11 2019-09-27 浪潮电子信息产业股份有限公司 侦测和防止硬盘gpt启动分区guid相同的方法
CN107886005B (zh) * 2017-11-24 2019-11-08 广东虹勤通讯技术有限公司 一种系统管理中断的加密处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1228177A (zh) * 1996-06-21 1999-09-08 英特尔公司 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
US5987604A (en) * 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6446153B2 (en) * 1997-03-14 2002-09-03 Intel Corporation Shared embedded microcontroller interface
CN1892608A (zh) * 2005-07-05 2007-01-10 英业达股份有限公司 中断控制系统及方法
CN101000565A (zh) * 2006-01-10 2007-07-18 英业达股份有限公司 计算机平台主机控制单元数据写入控制方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043729B2 (en) * 2002-08-08 2006-05-09 Phoenix Technologies Ltd. Reducing interrupt latency while polling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1228177A (zh) * 1996-06-21 1999-09-08 英特尔公司 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
US6446153B2 (en) * 1997-03-14 2002-09-03 Intel Corporation Shared embedded microcontroller interface
US5987604A (en) * 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
CN1892608A (zh) * 2005-07-05 2007-01-10 英业达股份有限公司 中断控制系统及方法
CN101000565A (zh) * 2006-01-10 2007-07-18 英业达股份有限公司 计算机平台主机控制单元数据写入控制方法及系统

Also Published As

Publication number Publication date
CN102467644A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
US9542114B2 (en) Methods and apparatus to protect memory regions during low-power states
CN102236621B (zh) 计算机接口信息配置系统及方法
CN100489805C (zh) 运行时间安全保证的自动存储器检测器及其方法
CN101770406A (zh) 用于运行时间完整性校验的设备和方法
TW201502764A (zh) 用以從睡眠狀態加速回復之專用啟動路徑
KR101618535B1 (ko) 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호
US7725637B2 (en) Methods and apparatus for generating system management interrupts
CN105378663A (zh) 更新引导代码
KR20160110504A (ko) 컴퓨팅 디바이스의 초기화 트레이스
JP2018523201A (ja) ファームウェア関連イベント通知
US10185633B2 (en) Processor state integrity protection using hash verification
US10540524B2 (en) Memory access protection using processor transactional memory support
US10248486B2 (en) Memory monitor
CN114385189A (zh) 一种面向深度嵌入式系统的函数地址空间布局随机化方法
CN102467644B (zh) 系统管理中断的执行方法
CN107667346B (zh) 用于基于熔断的固件块分派的设备、方法和系统
US11086658B2 (en) System performance enhancement with SMI on multi-core systems
CN116157795A (zh) 分层保护域中的安全性增强
US20180226136A1 (en) System management mode test operations
WO2024063864A1 (en) A mechanism to secure an execution environment
CN101414284A (zh) 数据保护方法及其存取权限管理方法
WO2016184180A1 (zh) 一种系统安全启动方法及装置
US8909837B2 (en) Method for executing system management interrupt by using identifiers
EP3915031B1 (en) System management memory coherency detection
EP4095725A1 (en) Electronic device and security protection method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Tang Sai

Inventor after: Li Aiwu

Inventor after: Xiao Hong

Inventor after: Yang Lijun

Inventor after: Zhu Jingliang

Inventor after: Zou Deyi

Inventor after: Xiao Peng

Inventor before: Lu Yingzhi

Inventor before: Wang Yuhui

CB03 Change of inventor or designer information
TR01 Transfer of patent right

Effective date of registration: 20170425

Address after: Yueyang economic and Technological Development Zone, Yueyang Road, Hunan branch of Industrial Park

Patentee after: Hunan Zhongke Electric Co., Ltd.

Address before: Taipei City, Taiwan Chinese Shilin District Hougang Street No. 66

Patentee before: Inventec Corporation

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140903

Termination date: 20171117

CF01 Termination of patent right due to non-payment of annual fee