本平台为商业科创服务平台 非政府政务服务网站

一种清洗硬盘固件区恶意代码的方法发明专利

更新时间:2026-11-01
一种清洗硬盘固件区恶意代码的方法发明专利 专利申请类型:发明专利;
地区:四川-内江;
源自:内江高价值专利检索信息库;

专利名称:一种清洗硬盘固件区恶意代码的方法

专利类型:发明专利

专利申请(专利权)人:四川效率源信息安全技术股份有限公司
权利人地址:四川省内江市市中区汉渝大道1号

专利发明(设计)人:梁效宁,董超,许超明,彭炼

专利摘要:本发明公开了一种清洗硬盘固件区恶意代码的方法,其特征在于包括以下步骤:S100:获取当前硬盘固件区的地址范围及字节长度;S200:读取当前硬盘中系统文件列表,包括0卷的202文件、0卷的203文件及0卷的204文件;S300:解析当前硬盘的系统文件列表,获取并记录各个系统文件的卷号和ID号;S400:统计清洗区域;S500:清洗所统计的清洗区域。将所统计各个清洗区域中数据填零,用以清洗硬盘固件区恶意代码。

主权利要求:一种清洗硬盘固件区恶意代码的方法
技术领域
[0001] 本发明属于数据恢复与硬盘固件安全技术领域,涉及一种清洗硬盘固件区恶意代码的方法。
背景技术
[0002] 在信息安全领域,随着硬盘容量的不断增加以及硬盘使用量的不断扩大,用户的信息安全以及数据安全也受到了严重的威胁。针对一系列的安全威胁,国内外出现了不少的安全软件,针对用户的信息安全都可以做到很好的保护,无论是硬盘固件感染后的清洗,还是硬盘固件的感染检测,以及针对已知的固件感染进行拦截隔离,这些安全软件都缺少对硬盘固件的安全保护。现有技术中尚无针对硬盘固件安全的技术方案。
[0003] 虽然市面上没有硬盘固件安全的产品,但是针对硬盘固件区恶意代码的清洗也有部分的技术方案,比如完整性检测以及原始固件升级包覆盖的方法。通过这样的方法去检测并覆盖固件区的固件,但这样的现有技术方案有很大的局限性和不完整性,第一,不是每个型号的硬盘都有固件升级包;第二,就是这样的覆盖方式,仅仅是固件区的一小部分区域进行覆盖,所以就导致了这个方案的不适用性。本发明就针对硬盘固件区恶意代码的清洗提出了一个更加实用可靠的技术方案。
发明内容
[0004] 针对现有技术的不足,本发明提供了一种清洗硬盘固件区恶意代码的方法,通过计算并统计硬盘的清洗区域并对清洗区域进行清洗,达到清洗硬盘固件区恶意代码的方法。本发明申请包括以下步骤:
[0005] S100:获取当前硬盘固件区的地址范围及字节长度;
[0006] S200:读取当前硬盘中系统文件列表,包括0卷的202文件、0卷的203文件及0卷的204文件;

[0007] S300:解析当前硬盘的系统文件列表,获取并记录各个系统文件的卷号和ID号,包括以下步骤:
[0008] S301:以当前系统文件列表的首地址为起始地址,读取第0x06、第0x07字节的内容作为当前系统文件列表所包含系统文件的个数;
[0009] S302:以当前系统文件列表的第0x08字节为起始地址,以12字节长度为单位,在所获取的当前硬盘固件区的地址范围内,顺序读取各个系统文件的描述信息;
[0010] S303:所获取的各个系统文件中,读取第1至第3字节内容为当前系统文件的起始地址;
[0011] S304:所获取的各个系统文件中,读取第5、第6字节内容为当前系统文件的ID号;
[0012] S305:所获取的各个系统文件中,读取第9至第11字节内容为当前系统文件的字节长度,其单位为扇区;
[0013] S306:所获取的各个系统文件中,读取第12字节内容的高4位作为当前系统文件所在的磁头号,其中,所述高4位为零,表示磁头1,不为零则表示磁头0;
[0014] S400:统计清洗区域;
[0015] S500:清洗所统计的清洗区域:将所统计各个清洗区域中数据填零,用以清洗硬盘固件区恶意代码。
[0016] 优选地,所述步骤S400包括以下步骤;
[0017] S401:根据所述步骤S200所获取的系统文件的卷号及所述步骤S300所获取系统文件的ID号,对比表一所示的系统文件列表并记录与表一具有相同系统文件的卷号及相同系统文件的ID号的系统文件,其中,所述表一中系统文件列表的数据格式为X‑Y‑Z,其中,X表示系统文件所在的磁头号,Y表示系统文件的卷号,Z表示系统文件ID号,其表示硬盘中不影响硬盘工作的系统文件列表ID号;
[0018] 表一:系统文件列表
[0019]
[0020]
[0021] S402:统计第一清洗区域:与所述表一具有相同系统文件的卷号及系统文件的ID号的系统文件的区域作为所述第一清洗区域,根据系统文件的起始地址及字节长度,计算并获取所述第一清洗区域的地址范围;
[0022] S403:将固件保留区域作为第二清洗区域,其中,所述固件保留区域为当前硬盘固件区的地址范围中不包含系统文件所占用的区域。
[0023] 本发明具有以下有益效果是:清洗范围更大,更加灵活,局限性小。
附图说明
[0024] 图1为本发明所提供的方法的总流程图;
[0025] 图2为本发明的一个实施例中系统文件列表的数据结构示意图。
具体实施方式
[0026] 图1示出了本发明所提供的方法的总流程图。如图1所示,包括以下步骤:
[0027] S100:获取当前硬盘固件区的地址范围及字节长度。
[0028] 通过COM口获取当前硬盘的固件磁道结构,并从该数据中解析出固件区的地址范围及字节长度。具体地,在硬盘的2级下发送命令“x1”,并接收返回的数据,如下所示,[0029]
[0030] 其中,矩形框中的数据表示固件区的地址范围,即,0x00000000至0x000F319F扇区,换言之,固件区的字节长度为0x000F319F扇区。
[0031] S200:读取当前硬盘中系统文件列表,包括0卷的202文件、0卷的203文件及0卷的204文件,换言之,在读取当前硬盘中系统文件列表的同时,也获取了各个系统文件的卷号,例如0卷、1卷。

[0032] S300:解析当前硬盘的系统文件列表,获取并记录各个系统文件的卷号和ID号。
[0033] 步骤S300包括以下步骤:
[0034] S301:以当前系统文件列表的首地址为起始地址,读取第0x06、第0x07字节的内容作为当前系统文件列表所包含系统文件的个数;
[0035] 图2示出了本发明的一个实施例中系统文件列表的数据结构示意图。如图2所示,以当前系统文件列表的首地址为起始地址,读取如图2所示的第0x06、第0x07字节的内容0x0010作为当前系统文件列表所包含系统文件的个数,即,系统文件的个数为0x10个,其以小端格式存储,故实际数据为0x0010,以下同。

[0036] S302:以当前系统文件列表的第0x08字节为起始地址,以12字节长度为单位,在所获取的当前硬盘固件区的地址范围内,顺序读取各个系统文件的描述信息;例如,如图2所示的0x08字节至0x13字节的内容为第一个系统文件。
[0037] S303:所获取的各个系统文件中,读取如图2所示的第1至第3字节内容0x1E039C为当前系统文件的起始地址;
[0038] S304:所获取的各个系统文件中,读取如图2所示的第5、第6字节内容0x0000为当前系统文件的ID号;
[0039] S305:所获取的各个系统文件中,读取如图2所示的第9至第11字节内容0x00000C为当前系统文件的字节长度,其单位为扇区;
[0040] S306:所获取的各个系统文件中,读取如图2所示的第12字节内容0x10的高4位,即,0001,作为当前系统文件所在的磁头号,其中,高4位为零,表示磁头1,本实施例中的高4位是0001,表示磁头0。
[0041] S400:统计清洗区域,包括以下步骤;
[0042] S401:根据步骤S200所获取的系统文件的卷号及步骤S300所获取系统文件的ID号,对比表一所示的系统文件列表并记录与表一具有相同系统文件的卷号及相同系统文件的ID号的系统文件,其中,表一中系统文件列表的数据格式为X‑Y‑Z,其中,X表示系统文件所在的磁头号,Y表示系统文件的卷号,Z表示系统文件ID号,其表示硬盘中不影响硬盘工作的系统文件列表ID号。
[0043] 例如,表一中的第一个系统文件为0‑0‑205,表示磁头号0、卷号0及文件ID号为205的系统文件。
[0044] 如果步骤S200所获取的系统文件的卷号为0且步骤S300所获取系统文件的ID号为205,则将该系统文件0‑0‑205记录下来。

[0045] 表一:系统文件列表
[0046]
[0047]
[0048] S402:统计第一清洗区域:与表一具有相同系统文件的卷号及系统文件的ID号的系统文件的区域作为第一清洗区域,根据系统文件的起始地址及字节长度,计算并获取第一清洗区域的地址范围;
[0049] 例如,将所记录的该系统文件0‑0‑205所在区域作为第一清洗区域。具体地,根据前述获取的该系统文件的起始地址及字节长度,计算并获取第一清洗区域的地址范围,并将所计算的清洗区域的地址范围记录下来。对所有与表一具有相同系统文件的卷号及系统文件的ID号的系统文件进行计算并获取清洗区域的地址范围,将所有计算并获取清洗区域的地址范围记录为第一清洗区域的地址范围。
[0050] S403:将固件保留区域作为第二清洗区域,其中,固件保留区域为当前硬盘固件区的地址范围中不包含系统文件所占用的区域。
[0051] 例如,整个固件区的区域为0x00000000至0x000F319F扇区,其中系统文件占用0x00000000‑0x000F0000扇区,那么0x000F0001至0x000F319F扇区的区域为固件保留区。

[0052] S500:清洗所统计的清洗区域:将所统计各个清洗区域中数据填零,用以清洗硬盘固件区恶意代码。换言之,将所统计的第一清洗区域及第二清洗区域中数据填零。
[0053] 通过本发明提供的方法,解决了现有技术中尚无一种清洗硬盘固件区恶意代码的方法的技术问题。
[0054] 应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

专利地区:四川

专利申请日期:2019-11-29

专利公开日期:2023-08-01

专利公告号:CN111008378B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
搜索
搜本页
欢迎咨询

扫码可加微信,手机访问拨打咨询

欢迎咨询

欢迎咨询
数据加载中...