CN110955885B - 一种数据写入方法及装置 - Google Patents
一种数据写入方法及装置 Download PDFInfo
- Publication number
- CN110955885B CN110955885B CN201911190724.6A CN201911190724A CN110955885B CN 110955885 B CN110955885 B CN 110955885B CN 201911190724 A CN201911190724 A CN 201911190724A CN 110955885 B CN110955885 B CN 110955885B
- Authority
- CN
- China
- Prior art keywords
- data
- boot area
- program
- main boot
- main
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012545 processing Methods 0.000 claims description 19
- 238000005192 partition Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 241000700605 Viruses Species 0.000 abstract description 17
- 230000006870 function Effects 0.000 description 26
- 230000015654 memory Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种数据写入方法及装置,涉及计算机安全技术领域,可以避免主引导程序被恶意程序或病毒感染,从而保证主引导程序可以引导计算机操作系统正常启动。该方法包括:获取待写入主引导区的第一数据;确定第一数据为修改主引导区中的主引导程序的数据;确定预设白名单中包含第一数据的特征码;将第一数据写入主引导区。
Description
技术领域
本申请涉及计算机安全技术领域,尤其涉及一种数据写入方法及装置。
背景技术
随着黑客技术和高级持续性威胁(advanced persistent threat,APT)技术的发展,越来越多的恶意程序或病毒通过在计算机上隐藏、驻留,从而达到操控计算机系统和收集信息的目的。
对于计算机硬盘,其感染恶意程序或病毒的区域通常位于硬盘主引导区,若硬盘主引导区被感染,则硬盘主引导区中的主引导程序可能被感染。从而在主引导程序引导操作系统启动时,可能会导致计算机无法装载操作系统或损坏硬盘主引导区。
现有技术中,通常可以将未被感染的主引导程序固化在基本输入输出系统(basicinput output system,BIOS)中。计算机的操作系统启动时,在硬盘主引导区中的主引导程序加载到计算机内存后,计算机可以使用该未被感染的主引导程序替换计算机内存中的主引导程序,从而保证即使硬盘主引导区中的主引导程序被恶意程序或病毒感染,计算机操作系统也可以在该未被感染的主引导程序的引导下正常启动。
然而,将未被感染的主引导程序固化在BIOS中,通常需要修改主板的固件程序,可操作性差。另外,当计算机升级操作系统时,引导升级后操作系统启动的主引导程序可能会发生改变,如此,使用升级前固化在BIOS中主引导程序可能无法引导升级后的操作系统正常启动。
发明内容
本申请提供一种数据写入方法及装置,可以避免主引导程序被恶意程序或病毒感染,从而保证主引导程序可以引导计算机操作系统正常启动。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种数据写入方法,该方法包括:获取待写入主引导区的第一数据;确定第一数据为修改主引导区中的主引导程序的数据;确定预设白名单中包含第一数据的特征码;将第一数据写入主引导区。
第二方面,本申请提供一种数据写入装置,该装置包括:获取单元、确定单元和处理单元;获取单元,用于获取待写入主引导区的第一数据;确定单元,用于确定获取单元获取的第一数据为修改主引导区中的主引导程序的数据;该确定单元,还用于确定预设白名单中包含第一数据的特征码;处理单元,用于根据确定单元确定的结果将获取单元获取的第一数据写入主引导区。
第三方面,提供一种数据写入装置,包括:处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行计算机程序或指令,以执行上述第一方面所述的数据写入方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述第一方面所述的数据写入方法。
本申请提供了一种数据写入方法及装置,可以获取待写入主引导区的第一数据,并在确定第一数据为修改主引导区中的主引导程序的数据后,判断预设白名单中是否包含第一数据的特征码,若确定预设白名单中包含第一数据的特征码,则可以将第一数据写入主引导区。由于预设白名单中包含第一数据的特征码,可以表示第一数据为合法数据(即第一数据不是感染恶意程序或病毒的数据),因此,可以根据预设白名单对修改主引导程序的数据进行筛选,并确定是否将第一数据写入主引导区,从而,可以避免感染恶意程序或病毒的数据被写入主引导区。进而,能够防止感染恶意程序或病毒的数据影响计算机操作系统的正常启动。
附图说明
图1为本申请实施例提供的数据写入装置的结构示意图一;
图2为本申请实施例提供的数据写入方法的流程示意图一;
图3为本申请实施例提供的数据写入方法的流程示意图二;
图4为本申请实施例提供的数据写入方法的流程示意图三;
图5为本申请实施例提供的数据写入装置的结构示意图二;
图6为本申请实施例提供的数据写入装置的结构示意图三。
具体实施方式
下面结合附图对本申请实施例提供的数据写入方法及装置进行详细地描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
通常主机在安装操作系统时,操作系统的安装程序会执行重新分区操作,使指定安装磁盘的主引导扇区(即主引导区)被修改。不同版本的windows操作系统在执行分区操作时,写入的主引导数据可能有轻微差别,主引导数据的代码版本是有限的,代码对应的功能也基本一致。在安装操作系统后,主机还可以通过一些分区工具调整已有分区的个数或者大小,这些分区工具通常只会修改主引导区中的分区表,但也有少数分区工具或者磁盘工具会修改主引导程序。由于主引导程序在引导操作系统启动的过程中至关重要,因此,为防止非法修改主引导程序,本申请提供了一种数据写入方法。
参考图1,图1为本申请提供的一种数据写入方法所应用的一种数据写入装置的结构示意图,该装置可以包括:物理硬件(hardware)和操作系统(operating system)。其中,该物理硬件可以包括主板、中央处理器(central processing unit,CPU)、内存、电源、显卡、声卡、网卡、硬盘、软驱、光驱等,该操作系统可以包括操作系统内核态和操作系统用户态,该操作系统可以为windows操作系统。
进一步的,该装置还可以包括运行在操作系统内核态的钩子驱动和运行在操作系统用户态的扫描程序。其中,钩子驱动是回调函数的一种,可以用于截获windows消息,扫描程序可以用于对钩子驱动截获的消息进行处理。
具体的,钩子驱动可以通过挂钩启动磁盘的端口驱动设备对象中的写扇区函数,在主引导区有写入请求的时候截获待写入内容,并将截获的待写入内容发送至扫描程序,扫描程序接收到钩子驱动发送的待写入数据后,可以通过扫描和用户确认得到扫描结果,并将扫描结果返回给钩子驱动,钩子驱动接收到扫描结果后可以根据扫描结果对待写入内容进行处理。
需要说明的,本申请中钩子驱动执行的动作均为本申请实施例提供的一种数据写入方法的执行主体调用钩子驱动执行的动作,扫描程序执行的动作均为该执行主体调用扫描程序执行的动作。
如图2所示,图2示出了本申请实施例提供的一种数据写入方法的流程示意图。该方法的执行主体为写入设备,该写入设备可以为上述数据写入装置,也可以为包括上述数据写入装置的系统。该方法包括:
S101、写入设备获取待写入主引导区的第一数据。
写入设备可以通过上述扫描程序和上述钩子驱动获取待写入主引导区的第一数据。该主引导区可以为安装磁盘的0磁头0磁道1扇区。
具体的,应用程序可以在操作系统上注册成服务程序,因此,扫描程序作为应用程序的一种,也可以在操作系统上注册成服务程序。如此,在写入设备启动后,扫描程序可以以后台服务的方式启动。
扫描程序启动后,可以通过操作系统提供的API接口获取启动磁盘(即安装操作系统的磁盘)的接口类型,例如,该接口类型可以是串行高级技术附件(serial advancedtechnology attachment,SATA),小型计算机系统接口(small computer systeminterface,SCSI),电子集成驱动器(integrated drive electronics,IDE)等。之后,扫描程序可以将获取到的接口类型发送给钩子驱动。
如图3所示,图3为钩子驱动挂钩写扇区函数的流程示意图。具体可以包括:
S201、钩子驱动接收扫描程序发送的启动磁盘的接口类型。
S202、钩子驱动根据该接口类型确定端口驱动设备对象。
具体的,钩子驱动可以通过遍历操作系统内核态中所有驱动设备对象链表的方式,确定与该接口类型对应的端口驱动程序、以及执行该端口驱动程序的端口驱动设备对象。
S203、钩子驱动可以从该端口驱动设备对象中获取写扇区函数的地址。
S204、钩子驱动可以使用预定义的钩子函数地址替换该写扇区函数的地址。
钩子驱动使用预定义的钩子函数地址替换写扇区函数的地址后,就可以通过该预定义的钩子函数截获其它程序对启动磁盘的写入内容。
可选的,在操作系统内核态中,不同类型的磁盘可以对应不同的端口驱动程序和端口驱动设备对象。例如,接口类型为SCSI的磁盘对应的端口驱动程序可以为scsiport.sys,对应的端口驱动设备对象为运行scsiport.sys程序的设备。
需要说明的是,端口驱动设备对象是操作系统内核态中的一个结构化数据,写扇区函数的地址保存在该端口驱动设备对象的数据结构中的特定位置。当其它程序对启动磁盘发起数据写入请求后,写入设备可以通过调用该端口驱动设备对象中保存的写扇区函数执行写入操作。
钩子驱动挂钩写扇区函数后,写入设备可以通过调用该预定义的钩子函数获取待写入主引导区的第一数据。
需要说明的是,钩子驱动可以随着写入设备的启动而启动。在初始启动阶段该钩子驱动可以不执行任何操作。若接收到扫描程序发送的启动磁盘接口类型,则执行挂钩写扇区函数的操作。而扫描程序在向钩子驱动发送接口类型后,则进入等待钩子驱动发送数据的状态,在该状态下,扫描程序可以不执行任何操作,因此,不会占用写入设备的运行内存。
S102、写入设备确定第一数据为修改主引导区中的主引导程序的数据。
可选的,钩子驱动还可以从上述端口驱动设备对象中获取读扇区函数的地址,之后,钩子驱动可以通过调用该读扇区函数获取主引导区中的第二数据。该第二数据是指主引导区的当前数据,即钩子驱动获取第一数据时主引导区的数据。
需要说明的,主引导区包括主引导程序和分区表,该第一数据可以为修改主引导程序的数据,也可以为修改分区表的数据,还可以为既修改主引导程序,也修改分区表的数据。
可选的,钩子驱动可以通过比对第一数据和第二数据,确定第一数据是否为修改主引导程序的数据。
具体的,第一数据和第二数据分别包括512个字节,其中,0000H-0088H字节为主引导程序,占用446个字节;01BEH-01FDH字节为分区表,占用64个字节。钩子驱动可以通过比对第一数据和第二数据确定第一数据的哪些字节发生了改变。其中,相对于第二数据,若仅第一数据的0000H-0088H字节中的至少一个字节发生了改变,则第一数据为修改主引导程序的数据,若仅第一数据的01BEH-01FDH字节中的至少一个字节发生了改变,则第一数据为修改分区表的数据,若第一数据的0000H-0088H字节和第一数据的01BEH-01FDH字节都存在至少一个字节发生了改变,则第一数据为既修改主引导程序,也修改分区表的数据。
可选的,若确定第一数据为只修改主引导区中的分区表的数据,则钩子驱动可以直接调用上述写扇区函数将第一数据写入主引导区。
若确定第一数据为修改主引导程序的数据,则钩子驱动可以向扫描程序发送该第一数据,由扫描程序进一步确认是否可以将该第一数据写入主引导区。
S103、写入设备确定预设白名单中包含第一数据的特征码。
本申请中,预设白名单中可以包括多个特征码,且预设白名单中的多个特征码均为合法数据的特征码,该合法数据是指未感染恶意程序或病毒的数据。写入设备可以确定第一数据的特征码,之后,写入设备可以通过调用扫描程序扫描预设白名单,从而确定预设白名单中是否包含第一数据的特征码。若确定预设白名单中包含第一数据的特征码,则表示第一数据为合法数据,从而写入设备可以通过扫描程序向钩子程序发送第一扫描结果,该第一扫描结果可以用于指示钩子程序将第一数据写入主引导区。
若确定预设白名单中不包含第一数据的特征码,则表示第一数据可能为非法数据,从而写入设备可以显示提示信息,该提示信息可以用于使用户输入操作指令,该操作指令可以用于指示是否将第一数据写入主引导区。用户根据该提示信息输入操作指令后,写入设备可以通过扫描程序获取用户输入的操作指令。
进一步地,若用户输入的操作指令指示将第一数据写入主引导区,则写入设备可以通过扫描程序向钩子程序发送第一指示信息,该第一指示信息用于指示钩子程序将第一数据写入主引导区。若用户输入的操作指令指示禁止将第一数据写入主引导区,则写入设备可以通过扫描程序向钩子程序发送第二指示信息,该第二指示信息用于指示禁止将第一数据写入主引导区。
本申请实施例中,由于写入设备可以通过白名单筛选待写入主引导区的数据,因此,本申请不仅可以防御已知的恶意程序和病毒,还可以防御未知的恶意程序和病毒。
可选的,写入设备可以从已知的Windows操作系统、分区工具以及磁盘工具中收集主引导区的主引导记录(master boot record,MBR)。之后,写入设备可以根据收集到的MBR确定该MBR的特征码,从而不断更新上述预设白名单。
具体的,写入设备可以使用反汇编工具分析MBR的二进制指令,并选择特定位置的二进制代码与该特定位置共同组成该MBR的特征码。
例如,该特定位置可以为相对于MBR起始位置的偏移位置。写入设备可以先确定预设偏移值,再根据该预设偏移值确定MBR的偏移位置,以及该偏移位置上对应的二进制代码,最后生成包括预设偏移值、二进制代码、预设偏移值和二进制代码之间对应关系的特征码。
需要说明的是,每个特征码中的二进制代码可以为MBR中用于执行必要指令的二进制代码,该必要指令可能位于MBR中的任意位置,因此,预设偏移值可以根据该必要指令的不同而设定。
可选的,写入设备可以通过预设的加密算法对预设白名单进行加密,在扫描程序使用预设白名单之前,写入设备可以先通过与该加密算法对应的解密算法解密该预设白名单,然后再调用扫描程序扫描该预设白名单。
S104、写入设备将第一数据写入主引导区。
若钩子驱动接收到扫描程序发送的第一扫描结果(用于指示钩子程序将第一数据写入主引导区),则钩子驱动可以调用上述写扇区函数将第一数据写入主引导区。
可选的,在写入设备获取用户输入的操作指令之后,写入设备可以根据操作指令,处理第一数据。若操作指令指示将第一数据写入主引导区,则将第一数据写入主引导区。若操作指令指示禁止将第一数据写入主引导区,则丢弃第一数据。
具体的,若操作指令指示将第一数据写入主引导区,则钩子驱动可以接收到扫描程序发送的第二扫描结果,钩子驱动可以根据第一指示信息,调用写扇区函数,并通过该写扇区函数将第一数据写入主引导区。若操作指令指示禁止将第一数据写入主引导区,则钩子驱动可以接收到扫描程序发送的第三扫描结果,钩子驱动可以根据第二指示信息,丢弃第一数据,并重新获取新的待写入主引导区的数据。
需要说明的是,在写入设备卸载钩子驱动时,写入设备可以重新将预定义的钩子函数地址替换为写扇区函数的地址。
本申请提供了一种数据写入方法,可以获取待写入主引导区的第一数据,并在确定第一数据为修改主引导区中的主引导程序的数据后,判断预设白名单中是否包含第一数据的特征码,若确定预设白名单中包含第一数据的特征码,则可以将第一数据写入主引导区。由于预设白名单中包含第一数据的特征码,可以表示第一数据为合法数据(即第一数据不是感染恶意程序或病毒的数据),因此,可以根据预设白名单对修改主引导程序的数据进行筛选,并确定是否将第一数据写入主引导区,从而,可以避免感染恶意程序或病毒的数据被写入主引导区。进而,能够防止感染恶意程序或病毒的数据影响计算机操作系统的正常启动。
下面再结合图4对本申请实施例提供的数据写入方法所对应的软件程序的完整执行流程进行进一步详细说明。
写入设备可以获取第一数据和第二数据,之后,写入设备可以通过比对第一数据和第二数据确定第一数据是否为修改主引导程序的数据。若第一数据不是修改主引导程序的数据,则可以将第一数据写入主引导区。若第一数据为修改主引导程序的数据,则判断预设白名单中是否包含第一数据的特征码。若预设白名单中包含第一数据的特征码,则写入设备可以将第一数据写入主引导区。若预设白名单中不包含第一数据的特征码,则写入设备可以获取用户输入的操作指令,可选的,写入设备可以先显示提示信息,再根据该提示信息获取用户输入的操作指令,若该操作指令指示将第一数据写入主引导区,则写入设备可以将第一数据写入主引导区。若该操作指令指示禁止将第一数据写入主引导区,则写入设备可以丢弃第一数据。
参考图5,本申请实施例还提供一种数据写入装置,该装置可以包括:获取单元100、确定单元200和处理单元300。其中,获取单元100,可以用于获取待写入主引导区的第一数据。确定单元200,可以用于确定获取单元100获取的第一数据为修改主引导区中的主引导程序的数据;确定预设白名单中包含第一数据的特征码。处理单元300,可以用于根据确定单元200确定的结果将获取单元100获取的第一数据写入主引导区。
可选的,本发明实施例中,上述获取单元100,还可以用于在确定单元200确定第一数据为修改主引导区中的主引导程序的数据之前,获取主引导区中的第二数据。上述确定单元200,具体可以用于通过比对第一数据和获取单元100获取的第二数据,确定第一数据为修改主引导程序的数据。
可选的,本发明实施例中,上述获取单元100,还可以用于若确定预设白名单中不包含第一数据的特征码,则获取用户输入的操作指令,该操作指令用于指示是否将第一数据写入主引导区。上述处理单元300,还可以用于根据获取单元100获取的操作指令,处理第一数据。
可选的,本发明实施例中,上述处理单元300,具体可以用于若操作指令指示将第一数据写入主引导区,则将第一数据写入主引导区;或者,若操作指令指示禁止将第一数据写入主引导区,则丢弃第一数据。
可选的,本发明实施例中,上述处理单元300,还可以用于在获取单元100获取待写入主引导区的第一数据之后,若确定第一数据为只修改主引导区中的分区表的数据,则将第一数据写入主引导区。
本申请提供了一种数据写入装置,可以获取待写入主引导区的第一数据,并在确定第一数据为修改主引导区中的主引导程序的数据后,判断预设白名单中是否包含第一数据的特征码,若确定预设白名单中包含第一数据的特征码,则可以将第一数据写入主引导区。由于预设白名单中包含第一数据的特征码,可以表示第一数据为合法数据(即第一数据不是感染恶意程序或病毒的数据),因此,可以根据预设白名单对修改主引导程序的数据进行筛选,并确定是否将第一数据写入主引导区,从而,可以避免感染恶意程序或病毒的数据被写入主引导区。进而,能够防止感染恶意程序或病毒的数据影响计算机操作系统的正常启动。
图6示出了上述实施例中所涉及的数据写入装置的一种可能的结构示意图。包括:处理器402。处理器402用于对该数据写入装置的动作进行控制管理,例如,执行上述图5中的确定单元200和处理单元300执行的步骤,和/或用于执行本文所描述的技术的其它过程。
上述处理器402可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
可选的,该数据写入装置还可以包括通信接口403、存储器401和总线404,通信接口403用于支持数据写入装置与其他网络实体的通信。例如,执行上述图5中的获取单元100执行的步骤,和/或用于执行本文所描述的技术的其它过程。存储器401用于存储该数据写入装置的程序代码和数据。
其中,存储器401可以是数据写入装置中的存储器,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线404可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当数据写入装置执行该指令时,该数据写入装置执行上述方法实施例所述的方法流程中数据写入装置执行的各个步骤。
本申请实施例还提供一种芯片,包括至少一个处理器和通信接口,通信接口和至少一个处理器耦合,处理器用于运行指令,以执行上述实施例所述的数据写入方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种数据写入方法,其特征在于,所述方法包括:
接收扫描程序发送的启动磁盘的接口类型,根据所述接口类型确定端口驱动设备对象;
从端口驱动设备对象中获取写扇区函数的地址,使用预定义的钩子函数地址替换所述写扇区函数的地址;
通过调用所述预定义的钩子函数地址获取待写入主引导区的第一数据;
获取主引导区中的第二数据;
通过比对所述第一数据和所述第二数据的字节,确定所述第一数据为只修改主引导区中的分区表的数据,则将所述第一数据写入所述主引导区;
通过比对所述第一数据和所述第二数据的字节,确定所述第一数据为修改主引导区中的主引导程序的数据;
在确定所述第一数据为修改所述主引导程序的数据的情况下,确定预设白名单中包含所述第一数据的特征码,将所述第一数据写入所述主引导区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述预设白名单中不包含所述第一数据的特征码,则获取用户输入的操作指令,所述操作指令用于指示是否将所述第一数据写入所述主引导区;
根据所述操作指令,处理所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作指令,处理所述第一数据,包括:
若所述操作指令指示将所述第一数据写入所述主引导区,则将所述第一数据写入所述主引导区;或者,
若所述操作指令指示禁止将所述第一数据写入所述主引导区,则丢弃所述第一数据。
4.一种数据写入装置,其特征在于,所述装置包括获取单元、确定单元和处理单元;
所述确定单元,用于根据接收的扫描程序发送的启动磁盘的接口类型确定端口驱动设备对象;
所述处理单元,用于从端口驱动设备对象中获取写扇区函数的地址,使用预定义的钩子函数地址替换所述写扇区函数的地址;
所述获取单元,用于通过调用所述预定义的钩子函数地址获取待写入主引导区的第一数据;
所述获取单元,还用于获取主引导区中的第二数据;
所述确定单元,用于通过比对所述第一数据和所述第二数据的字节,确定所述第一数据为只修改主引导区中的分区表的数据,
所述处理单元,用于在确定第一数据为只修改主引导区中的分区表的数据的情况下,将所述第一数据写入所述主引导区;
所述确定单元,还用于通过比对所述第一数据和所述获取单元获取的所述第二数据的字节,确定所述第一数据为修改主引导区中的主引导程序的数据;
所述确定单元,还用于在确定所述第一数据为修改所述主引导程序的数据的情况下,确定预设白名单中包含所述第一数据的特征码;
所述处理单元,还用于在确定预设白名单中包含所述第一数据的特征码的情况下,将所述获取单元获取的所述第一数据写入所述主引导区。
5.根据权利要求4所述的装置,其特征在于,
所述获取单元,还用于若确定所述预设白名单中不包含所述第一数据的特征码,则获取用户输入的操作指令,所述操作指令用于指示是否将所述第一数据写入所述主引导区;
所述处理单元,还用于根据所述获取单元获取的所述操作指令,处理所述第一数据。
6.根据权利要求5所述的装置,其特征在于,所述处理单元,具体用于若所述操作指令指示将所述第一数据写入所述主引导区,则将所述第一数据写入所述主引导区;或者,若所述操作指令指示禁止将所述第一数据写入所述主引导区,则丢弃所述第一数据。
7.一种数据写入装置,其特征在于,所述装置包括:处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行计算机程序或指令,以实现如权利要求1至3任一项所述的数据写入方法。
8.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有指令,当计算机执行所述指令时,该计算机执行上述权利要求1至3任一项所述的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190724.6A CN110955885B (zh) | 2019-11-28 | 2019-11-28 | 一种数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190724.6A CN110955885B (zh) | 2019-11-28 | 2019-11-28 | 一种数据写入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955885A CN110955885A (zh) | 2020-04-03 |
CN110955885B true CN110955885B (zh) | 2022-11-22 |
Family
ID=69978789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911190724.6A Active CN110955885B (zh) | 2019-11-28 | 2019-11-28 | 一种数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955885B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116035B (zh) * | 2022-01-26 | 2022-05-10 | 深圳市吉方工控有限公司 | Windows下的BIOS设置方法、装置及存储介质 |
CN115525933B (zh) * | 2022-08-26 | 2023-05-12 | 杭州杰峰科技有限公司 | 数据防篡改方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415382B1 (en) * | 1999-04-30 | 2002-07-02 | Adaptec, Inc. | Hard disk bootstrap redirection |
CN102867141A (zh) * | 2012-09-29 | 2013-01-09 | 北京奇虎科技有限公司 | 对主引导记录恶意程序进行处理的方法及装置 |
CN102930201A (zh) * | 2012-09-29 | 2013-02-13 | 北京奇虎科技有限公司 | 对主引导记录恶意程序进行处理的方法及装置 |
CN103065094A (zh) * | 2011-12-28 | 2013-04-24 | 卡巴斯基实验室封闭式股份公司 | 用于检测目标为计算机引导过程的恶意软件的系统和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1352425A (zh) * | 2001-11-27 | 2002-06-05 | 北京实达铭泰计算机应用技术开发有限公司 | 一种增强计算机系统数据安全的方法 |
CN100573480C (zh) * | 2008-02-29 | 2009-12-23 | 中国科学院计算技术研究所 | 一种磁盘数据保护方法和系统 |
CN101667161A (zh) * | 2008-09-02 | 2010-03-10 | 联想(北京)有限公司 | 存储设备的数据保护方法、数据保护装置及计算机系统 |
CN103150506B (zh) * | 2013-02-17 | 2016-03-30 | 北京奇虎科技有限公司 | 一种恶意程序检测的方法和装置 |
CN105260132B (zh) * | 2015-09-18 | 2018-10-02 | 久盈世纪(北京)科技有限公司 | 一种热加载磁盘过滤驱动的方法与设备 |
US10019279B2 (en) * | 2015-12-17 | 2018-07-10 | International Business Machines Corporation | Transparent secure interception handling |
-
2019
- 2019-11-28 CN CN201911190724.6A patent/CN110955885B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415382B1 (en) * | 1999-04-30 | 2002-07-02 | Adaptec, Inc. | Hard disk bootstrap redirection |
CN103065094A (zh) * | 2011-12-28 | 2013-04-24 | 卡巴斯基实验室封闭式股份公司 | 用于检测目标为计算机引导过程的恶意软件的系统和方法 |
CN102867141A (zh) * | 2012-09-29 | 2013-01-09 | 北京奇虎科技有限公司 | 对主引导记录恶意程序进行处理的方法及装置 |
CN102930201A (zh) * | 2012-09-29 | 2013-02-13 | 北京奇虎科技有限公司 | 对主引导记录恶意程序进行处理的方法及装置 |
Non-Patent Citations (2)
Title |
---|
"染毒"硬盘主引导区信息的恢复;孙小齐;《石河子科技》;19961231;第41-43页 * |
防止软盘启动的硬盘保护程序设计;谢宇枫等;《计算机工程与设计》;20060616(第11期);第166-168页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110955885A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10528735B2 (en) | Malicious code protection for computer systems based on process modification | |
KR101232558B1 (ko) | 컴퓨터 구현 방법 및 시스템 | |
KR101802800B1 (ko) | 다중 운영 시스템 환경을 위한 미디어 보호 정책 시행 | |
EP1918815B1 (en) | High integrity firmware | |
US7793091B2 (en) | Method, computer-readable media, devices and systems for loading a selected operating system of interest | |
KR101748000B1 (ko) | 다른 운영 체제로의 부팅의 동적 리디렉션 | |
JP4960364B2 (ja) | ハードウェア支援されたデバイス設定検出 | |
EP2317454A2 (en) | Providing authenticated anti-virus agents a direct access to scan memory | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
KR20040111222A (ko) | 바이러스 방역 장치 및 시스템 | |
US9684518B2 (en) | Option read-only memory use | |
KR20110050592A (ko) | 휴대용 저장 장치를 위한 동적 파일 시스템 제약 | |
US20130036431A1 (en) | Constraining Execution of Specified Device Drivers | |
CN113761482A (zh) | 一种程序代码保护方法和装置 | |
CN110955885B (zh) | 一种数据写入方法及装置 | |
US9448888B2 (en) | Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank | |
CN105335197A (zh) | 终端中应用程序的启动控制方法和装置 | |
CN108021372A (zh) | 一种应用程序的管理方法和装置 | |
CN112219202B (zh) | 用于客户操作系统的存储器分配 | |
US8732843B2 (en) | Software validity period changing apparatus, method, and installation package | |
US9003172B2 (en) | Intelligently controlling loading of legacy option ROMs in a computing system | |
US20060080518A1 (en) | Method for securing computers from malicious code attacks | |
CN112231761B (zh) | 一种设备挂载方法、计算设备及可读存储介质 | |
KR20020081909A (ko) | 컴퓨터의 부팅 방법 및 컴퓨터 시스템 | |
CN111382433B (zh) | 模块加载方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |