CN1704901A - 禁止制作启动盘的移动存储装置及方法 - Google Patents
禁止制作启动盘的移动存储装置及方法 Download PDFInfo
- Publication number
- CN1704901A CN1704901A CN 200410027453 CN200410027453A CN1704901A CN 1704901 A CN1704901 A CN 1704901A CN 200410027453 CN200410027453 CN 200410027453 CN 200410027453 A CN200410027453 A CN 200410027453A CN 1704901 A CN1704901 A CN 1704901A
- Authority
- CN
- China
- Prior art keywords
- code
- sector
- memory device
- flash memory
- mbr
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种禁止制作启动盘的移动存储装置及方法,该移动存储装置包括数据存储控制单元,所述数据存储控制单元设有固化软件,该固化软件通过修改与启动相关的参数以禁止存储装置被制作启动盘启动主机系统。该禁止移动存储装置制作启动盘的方法包括:在存储装置内设置禁止启动的固化软件,所述固化软件在上电时执行检测逻辑0扇区尾部的启动标志,确认启动扇区;确认并修改MBR的启动代码,或修改启动扇区中的启动代码。本发明制作的移动存储装置具有禁止被制作启动盘的功能,对数据安全要求相对较高的行业用户而言,有助于提高用户主机数据的安全。
Description
技术领域
本发明关于移动存储领域,特别涉及主机系统启动的移动存储装置及方法。
背景技术
随着信息技术不断发展,信息技术被越来越广泛的应用于各种领域,保障系统的运行的稳定性,特别是数据存储的安全性就越发重要,而通过非法或违规重新启动计算机会对数据造成的相当的破坏性,在移动存储装置,特别是在快闪存储装置被广泛应用的当前,绝大部分计算机系统均能通过快闪存储装置进行启动,为提高系统运行的平稳性,提高数据存取的安全,禁止快闪存储装置具有重新启动计算机系统功能,就越来越重要。
现有移动存储装置没有禁止启动的保护功能,用户很容易制作启动盘启动主机系统,这对于特定的行业使用,如银行、教育、电力、通信等系统而言,使用不带安全保护的操作系统(如MS-DOS)启动计算机,将对数据的安全造成的重大的威胁。
发明内容
现有移动存储装置没有禁止启动的保护功能,本发明要解决的技术问题禁止移动存储装置被制作启动盘。
本发明的技术方案是提供一种禁止制作启动盘的移动存储装置,包括数据存储控制单元,其特征在于:所述数据存储控制单元设有固化软件,该固化软件通过修改与启动相关的参数以禁止存储装置被制作启动盘启动主机系统。
本发明关于一种禁止移动存储装置制作启动盘的方法,该方法包括:设置禁止启动的固化软件在存储装置内,所述固化软件在上电时执行步骤包括:检测逻辑0扇区尾部的启动标志,确认启动扇区;确认并修改MBR的启动代码,或修改启动扇区中的启动代码,禁止移动存储装置制作启动盘。
相对于现有技术,本发明制作的移动存储装置具有禁止被制作启动盘的功能,对数据安全要求相对较高的行业用户而言,有助于提高用户主机数据的安全。
附图说明
图1是本发明禁止启动程序的流程。
具体实施方式
本实施方案提供了固化软件实现USB闪存式存储设备禁止启动主机系统的方案,所谓禁止启动,即禁止通过目前PC机操作系统所支持的USB外围设备启动方式来达到启动PC机的目的,如通过USB-HDD(硬盘启动),USB-ZIP,USB-FDD(软盘启动)以及USB-CDROM(光驱启动)的方式启动PC机,考虑到USB闪存式存储设备必须在装载特定的固化软件的情形下才能模拟USB-FDD,USB-CDROM,所以要避免通过这两种方式启动PC系统,只要USB存储设备没有刻意的模拟这两种设备即可,USB存储设备则不能被制作为USB-FDD或USB-CDROM启动盘。
对于USB-HDD,USB-ZIP这两种启动方式,用户可以利用普通的闪存式存储设备制作启动盘,所以本方案主要从设备级上实现了避免USB闪存式存储设备被制作为USB-HDD启动和USB-ZIP启动盘的方法,从而避免了任何人都可以利用该USB闪存式设备任意制作启动盘启动PC的情况。
USB-HDD闪存盘和USB-ZIP闪存盘既不属于HDD也不属于ZIP设备,因为HDD和ZIP这两种设备都使用的是磁性介质,并且在PC机上作为主要存储介质已经有相当久远的历史了,而USB-HDD和USB-ZIP只是利用了USB这种新的传输方式而已。闪存盘之所以能以USB-HDD或者USB-ZIP的方式启动是因为PC机把它认作了HDD或ZIP设备。而PC机在启动时对HDD和ZIP的区分并不是那么有确定性,对于一个闪存盘而言,PC机在认为它是HDD设备的同时也可以认为它是ZIP设备,也就是对于同一个闪存盘设备,在PC端的BIOS(基本输入输出系统)里可以设置选择USB-HDD启动,在不对盘上内容做任何更改的情况下,可以选择USB-ZIP启动,所以对于USB-HDD和USB-ZIP启动的禁止,是方案实现的最大难点。
为清楚的描述具体的实现方案,先提及PC机的启动过程。通常PC机在上电后,首先从FFFF:0000的地址开始执行ROM BIOS中的相关代码,完成对PC机的初始化过程,然后根据用户设置存储在CMOS中的启动顺序,生成BIOS Boot Specification中定义的IPL优先级表,以后系统每次调用Int19h时,都是按照这个优先级来寻找设备上的可引导信息。在BIOS Boot Specification中定义的Int19h实现了从优先级表中的第一个设备上重新开始尝试启动;而Int18h实现了跳过当前设备,从优先级表中的下一设备上继续尝试引导系统。对于一般的磁盘类设备(HDD或者ZIP),其启动代码都放在0扇区,通常称为启动扇区,BIOS在启动过程中搜索设备的0扇区,如果该扇区有启动标志,也就扇区最后两个字节为0x55AA,BIOS就将该扇区的内容读入到内存中地址为0000:7C00的地方,并跳转过去,把CPU的控制权交给启动扇区中包含的代码。
固化软件实现禁止启动功能的基本思路如下:在USB枚举时,也就是PC端准备使用该闪存盘时,检查闪存盘上与启动相关的数据(包含代码)是否存在,如果存在,并且有可能导致以任何一种方式的启动有可能成功的话,就修改该数据(包含代码),使其不能以任何一种方式启动。
所以固化软件实现不能启动的总体过程如下:固化软件上电或者USB重新开始枚举时,检查0扇区是否包含启动标志;如果包含启动标志则开始检查其中包含的启动代码是否为不可启动的;如为不启动代码,直接退出;如果是可启动代码则准备用已经设定好的不可启动代码代替;写入不可启动代码到设备的0扇区。
通过改变MBR(Master Boot Record,主引导记录,提供了对存储介质的逻辑分区,它包含了引导代码和分区表两个数据结构),启动代码的方法可以有效的阻止USB-HDD的启动,而对于USB-ZIP,虽然也存在MBR,但是BIOS只会对其有效性做基本的检查,然后直接去处理第一分区启动扇区中的代码,通常为固定的32扇区,所以固件还需要处理这个地方的代码,使其直接把操作权返回给BIOS。
最好的办法是在更改MBR中启动代码的同时,也更改存储设备上每一分区中的逻辑0扇区的启动代码。
在PC机上,从任何存储介质引导系统,该存储介质的0扇区都扮演着很重要的作用,通常启动扇区为0扇区,该扇区一般包含了从该存储介质上引导系统的重要数据结构和代码,在存在MBR情况下,0扇区存放MBR,如果不存在MBR,那么0扇区就称为启动扇区,直接负责系统的引导。不存在MBR时,直接修改修改启动代码;对于0扇区存在MBR,那么PC系统可能把其识别为HDD或者ZIP盘,通过对MBR中代码的修改,可以保证识别为HDD的启动被禁止;如果闪存盘上某一分区起始扇区为第32扇区,更改该扇区的代码内容,可以保证ZIP启动被禁止。对以上提到的两者都进行修改,可以保证了无论PC系统识别闪存盘为HDD还是ZIP,都可以禁止使用该闪存盘来引导系统。
对于通过修改MBR代码来实现禁止启动,MBR中的代码区中的代码首先对MBR中的分区表进行简单的正确性判断,选出其中引导标志为0x80的启动分区,并载入运行该分区的启动扇区中的代码,使引导过程继续。这段代码在HDD启动时起作用,通过将其修改为不启动的代码就禁止了HDD的引导。
根据现有AMI版本的BIOS Boot Specification,Int18h代码用于放弃本设备的启动尝试,将系统控制权返回给BIOS,由BIOS选择启动列表中的下一个设备启动,Int19h称为软复位中断,同样是把系统控制权返回给BIOS,不过不是从启动列表中的下一个设备尝试启动,而是重新从第一个设备开始尝试。
针对MBR更改代码时,只需要把代码区,也就是该扇区的头几个字节的代码数据改为直接调用int18h或者int19h中断,然后把其它部分的代码全部清除即可。这时候的代码只剩下一条指令:0xCD18(X86体系机器码),计算机在启动过程中执行到这条指令时,就会把控制权返回给BIOS代码,去选择下一个可引导设备。
在不存在MBR时,对启动扇区中代码的修改,也可以称针对PBR(PartitionBoot Record,分区引导记录)代码的修改,其所用的方法与修改MBR时使用的方法基本相同,需要注意的是,对于MicroSoft公司的典型启动扇区代码,在扇区的头两个字节是一个短跳转指令,其16进制形式为0xEB 0x3C,在更改启动扇区代码时不能修改这两个字节,因为MicroSoft的操作系统依赖这种指令格式的数据来识别启动扇区的存在,并通过该跳转指令指向启动扇区,所以对启动扇区的代码进行改更时,在应当保留该跳转指令,对应该跳转指令所指向的位置的代码,可以直接修改为0xCD 0x18,即int18h,并把后面的无效代码清除为0x00,就可以实现ZIP设备的不可启动。对于ZIP这样的设备,某些PC在BIOS实现时存在一个问题,即便调用int18h也不是选择下一设备来启动,而是和调用int19h起到同样的效果,在这种情况下可能会使PC机看似进入了死锁状态,原因是调用int18h指令,返回了操作权给BIOS后,BIOS又试图从本设备启动,又再次调用了int18h指令,从而构成死循环,在这个地方的代码中加入适当的信息提示代码,提示用户拔出闪存盘就可以使系统继续启动。
USB-FDD的第0个扇区就是启动扇区,而USB-ZIP通常是第32个扇区是启动扇区,两者的更改方法一致,都是上面提到的将所涉扇区的头几个字节的代码数据改为直接调用int18h或者int19h中断,然后把其它部分的代码全部清除即可。
以上通过直接调用Int18h或者Int19h修改MBR的启动代码或启动扇区的启动代码仅为针对AMI版本的BIOS系统的具体的实施方式,对MBR的启动代码或启动扇区启动代码的修改实质上可以利用通过非启动代码替换启动代码即可实现禁止存储装置对主机系统的启动。
调用Int18h或者Int19h修改MBR的启动代码或启动扇区的启动代码仅为针对AMIBIOS系统支持的具体的指令系统,对其主板BIOS版本的升级或技术进步的所增加的相关的启动指令或其它版本的BIOS,如AWARD版本的系统则可类似的调用其它指令。
对于禁止从外存储设备端对主机系统进行启动,需要在外存储设备的控制器中嵌入相应的禁止启动程序,根据前述对从外存储设备端对主机系统进行启动的情形的描述,请参阅图1所示的禁止启动程序模块的流程:
步骤1:USB重新枚举激发禁止启动程序模块;
步骤2:检查逻辑0扇区尾部是否包含0x55AA(Big-endian)标志,如果不包含0x55AA,则禁止启动程序退出;
步骤3:判断0扇区是否为MBR,若否,直接修改启动代码;
步骤4:如果0扇区是MBR,则解析分区表,是否有分区的起始扇区在第33扇区,若否,修改MBR的启动代码;
步骤5:如果有分区的起始扇区在第33扇区,则修改或覆盖该分区的启动代码,并同时修改MBR的启动代码;
步骤6:退出禁止启动程序。
考虑到某些PC BIOS在ZIP启动时直接去第33个扇区寻找启动代码,所以要始终保证该扇区无法支持启动,由于Windows2000以上的微软操作系统在格式化本地盘时就是只分出一个区,并且该分区的起始扇区是第64扇区,MBR和起始扇区之间相隔63个扇区,所以第33个扇区也包含在内,这部分扇区为隐藏扇区,覆盖第33扇区并不影响外存储设备的正常使用。
本发明的禁止制作启动盘的移动装置及方法,其接口方式不限于USB接口,随着技术的发展,其它主板BIOS支持主机启动的接口方式,如IEEE13944,利用该接口方式制作的移动存储装置均可采用本发明的禁止移动存储装置制作启动盘的方案。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,对本发明所作的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种禁止制作启动盘的移动存储装置,包括数据存储控制单元,其特征在于:所述数据存储控制单元设有固化软件,该固化软件通过修改与启动相关的参数以禁止存储装置被制作启动盘启动主机系统。
2.如权利要求1所述禁止制作启动盘的移动存储装置,其特征在于:所述启动相关的参数包括MBR的启动代码和启动扇区的启动代码。
3.如权利要求2所述禁止制作启动盘的移动存储装置,其特征在于:对MBR的启动代码的修改包括通过将该扇区的代码数据改为直接调用Int18或Int19中断。
4.如权利要求2所述禁止制作启动盘的移动存储装置,其特征在于:对启动扇区的启动代码的修改包括通过将该扇区的代码数据改为直接调用Int18或Int19中断。
5.一种禁止移动存储装置制作启动盘的方法,该方法包括:
设置禁止启动的固化软件在存储装置内,所述固化软件在上电时执行步骤包括:
检测逻辑0扇区尾部的启动标志,确认启动扇区;
确认并修改MBR的启动代码,或修改启动扇区中的启动代码。
6.如权利要求5禁止移动存储装置制作启动盘的方法,其特征在于:该方法还包括步骤:在存在MBR时,如果有分区的起始扇区在第33扇区,则修改或覆盖该分区的启动代码。
7.如权利要求5或6所述禁止移动存储装置制作启动盘的方法,其特征在于,对MBR的启动代码的修改包括通过将该扇区的代码数据改为直接调用Int18或Int19中断。
8.如权利要求5或6所述禁止移动存储装置制作启动盘的方法,其特征在于,对启动扇区的启动代码的修改包括通过将该扇区的代码数据改为直接调用Int18或Int19中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410027453XA CN100511144C (zh) | 2004-05-31 | 2004-05-31 | 禁止制作启动盘的移动存储装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410027453XA CN100511144C (zh) | 2004-05-31 | 2004-05-31 | 禁止制作启动盘的移动存储装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1704901A true CN1704901A (zh) | 2005-12-07 |
CN100511144C CN100511144C (zh) | 2009-07-08 |
Family
ID=35577203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410027453XA Expired - Lifetime CN100511144C (zh) | 2004-05-31 | 2004-05-31 | 禁止制作启动盘的移动存储装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100511144C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104361298A (zh) * | 2014-10-30 | 2015-02-18 | 中国人民解放军信息工程大学 | 信息安全保密的方法和装置 |
-
2004
- 2004-05-31 CN CNB200410027453XA patent/CN100511144C/zh not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104361298A (zh) * | 2014-10-30 | 2015-02-18 | 中国人民解放军信息工程大学 | 信息安全保密的方法和装置 |
CN104361298B (zh) * | 2014-10-30 | 2017-10-10 | 中国人民解放军信息工程大学 | 信息安全保密的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100511144C (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1258702C (zh) | 为不同的指令集结构所编写的固件之间进行通信的方法 | |
CN1029336C (zh) | 保护个人计算机中系统应用程序的装置 | |
CN101763279B (zh) | 一种BootLoader架构设计方法 | |
CN1607503B (zh) | 在虚拟机器中使用合成指令的系统和方法 | |
Francillon et al. | Defending embedded systems against control flow attacks | |
JP5602814B2 (ja) | 仮想アーキテクチャにおいて使用される装置、方法及びシステム | |
CN101351774B (zh) | 将存储页面与程序相关联的页面着色的方法、装置和系统 | |
EP1761850B1 (en) | Support for nested faults in a virtual machine environment | |
EP2705422B1 (en) | Dynamically redirecting boot to another operating system | |
CN103455733A (zh) | 处理器资源和执行保护方法及装置 | |
CN1723465A (zh) | 加载可信操作系统的方法和装置 | |
CN103988181A (zh) | 用于给虚拟映像打补丁的方法和系统 | |
US8473945B2 (en) | Enabling system management mode in a secure system | |
CN102867141A (zh) | 对主引导记录恶意程序进行处理的方法及装置 | |
CN102930201A (zh) | 对主引导记录恶意程序进行处理的方法及装置 | |
CN100507850C (zh) | 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法 | |
US20090300307A1 (en) | Protection and security provisioning using on-the-fly virtualization | |
CN101236498B (zh) | 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法 | |
CN101373457B (zh) | Windows环境下一种基于USB设备的硬盘写保护锁的方法 | |
CN100511144C (zh) | 禁止制作启动盘的移动存储装置及方法 | |
CN1308846C (zh) | 在硬盘上实现保护计算机操作系统的方法 | |
CN1856772A (zh) | 用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法 | |
KR101013419B1 (ko) | 시스템 보호 장치 및 방법 | |
KR101014814B1 (ko) | 커널 감시기가 설치된 컴퓨터 시스템 및 커널 감시 방법 | |
CN115422554A (zh) | 请求处理方法、编译方法和可信计算系统 |
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 |