CN113536309A - 软件完整性的检测方法、装置、电子装置和存储介质 - Google Patents
软件完整性的检测方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN113536309A CN113536309A CN202110768819.2A CN202110768819A CN113536309A CN 113536309 A CN113536309 A CN 113536309A CN 202110768819 A CN202110768819 A CN 202110768819A CN 113536309 A CN113536309 A CN 113536309A
- Authority
- CN
- China
- Prior art keywords
- detected
- file
- files
- initial
- check code
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 14
- 238000011900 installation process Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process Effects 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种软件完整性的检测方法、装置、电子装置和存储介质,其中,该软件完整性的检测方法包括:获取多个初始文件,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码;获取多个待检测文件,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码;分别判断初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件。通过本申请,解决了对软件的完整性进行检测时可能出现错误判断的技术问题,提高了软件完整性检测的准确性。
Description
技术领域
本申请涉及软件安全领域,特别是涉及软件完整性的检测方法、装置、电子装置和存储介质。
背景技术
由于组态软件在安装或者运行过程中可能出现文件被篡改、丢失等情形,组态软件往往会存在许多漏洞,在使用组态软件时可能会发生组态软件的运行进程被恶意破坏、系统中的资源配置被篡改、恶意文件被植入执行程序以及关键数据被窃取等严重后果。为了及时发现组态软件中的漏洞,避免动态链接库依赖关系不正确、二进制文件缺失以及组态软件基本功能不正常等问题,需要对组态软件安装之后,运行过程中的文件完整性进行检测。
为了实现组态软件的文件完整性检测,现有技术都是先对安装软件进行编码,在安装之后,需要使用软件时再次进行编码,通过前后编码的匹配结果判断软件是否存在修改、破坏等情形,进而得到软件完整性的检测结果。但是,现有技术中在对不同软件进行编码时可能存在编码结果匹配的情形,进而导致对软件的完整性进行检测时可能出现错误判断。
针对相关技术中存在的对软件的完整性进行检测时可能出现错误判断的技术问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种软件完整性的检测方法、装置、电子装置和存储介质,以解决相关技术中对软件的完整性进行检测时可能出现错误判断的问题。
第一个方面,在本实施例中提供了一种软件完整性的检测方法,包括:
获取多个初始文件,分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码,所述初始文件包括待检测软件安装前的所有文件;
获取多个待检测文件,分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码,所述待检测文件为所述待检测软件安装后重新获取的与所述初始文件对应的文件;
分别判断所述初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断所述第一校验码与第二校验码是否匹配,若匹配,则判定所述待检测软件为完整软件。
在其中的一些实施例中,所述分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码包括:
基于消息摘要算法对所述初始文件进行处理,生成多个所述初始文件校验码;
基于消息摘要算法对所述初始文件以及初始文件校验码进行处理,生成所述第一校验码。
在其中的一些实施例中,所述基于所述初始文件以及初始文件校验码生成第一校验码包括:
分别将所述初始文件以及初始文件校验码保存到初始文件集合;
基于所述初始文件集合生成第一校验码。
在其中的一些实施例中,所述分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码包括:
基于消息摘要算法对所述待检测文件进行处理,生成多个所述待检测文件校验码;
基于消息摘要算法对所述待检测文件以及待检测文件校验码进行处理,生成所述第二校验码。
在其中的一些实施例中,所述基于所述待检测文件以及待检测文件校验码生成第二校验码包括:
分别将所述待检测文件以及待检测文件校验码保存到待检测文件集合;
基于所述待检测文件集合生成第二校验码。
在其中的一些实施例中,所述分别判断所述初始文件校验码与待检测文件校验码是否均匹配之后还包括:
若不匹配,则判定所述待检测软件为不完整软件,并返回判断结果。
在其中的一些实施例中,所述判定所述待检测软件为不完整软件之后还包括:
基于所述初始文件对所述待检测文件进行更新。
第二个方面,在本实施例中提供了一种软件完整性的检测装置,包括:
第一获取模块,用于获取多个初始文件,分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码,所述初始文件包括待检测软件安装过程中访问的所有文件;
第二获取模块,用于获取多个待检测文件,分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码,所述待检测文件为所述待检测软件安装后重新获取的与所述初始文件对应的文件;
判断模块,用于分别判断所述初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断所述第一校验码与第二校验码是否匹配,若匹配,则判定所述待检测软件为完整软件。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的软件完整性的检测方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的软件完整性的检测方法。
与相关技术相比,在本实施例中提供的软件完整性的检测方法、装置、电子装置和存储介质,获取多个初始文件,分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码,所述初始文件包括待检测软件安装过程中访问的所有文件;获取多个待检测文件,分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码,所述待检测文件为所述待检测软件安装后重新获取的与所述初始文件对应的文件;分别判断所述初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断所述第一校验码与第二校验码是否匹配,若匹配,则判定所述待检测软件为完整软件。通过初始文件校验码与待检测文件校验码以及第一校验码与第二校验码的匹配关系确定待检测软件的完整性,解决了对软件的完整性进行检测时可能出现错误判断的技术问题,提高了软件完整性检测的准确性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明一实施例的软件完整性的检测方法的终端硬件结构框图;
图2是本发明一实施例的软件完整性的检测方法的流程示意图;
图3是本发明一实施例的软件完整性的检测装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的软件完整性的检测方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的软件完整性的检测方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
请参阅图2,图2是本发明一实施例的软件完整性的检测方法的流程示意图。在本实施例中,软件完整性的检测方法包括:
S202:获取多个初始文件,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码,初始文件包括待检测软件安装前的所有文件。
示例性地,获取待检测软件的初始文件,分别对每个初始文件进行映射处理,生成唯一的校验码,作为每个初始文件对应的初始文件校验码,然后再对所有的初始文件以及初始文件校验码进行整体的映射处理,得到第一校验码。
具体的,待检测软件是需要进行完整性检测的软件,其中软件的完整性包括两个方面,一方面是软件代码本身的完整性,包括软件的所有程序文件、配置信息等;另一方面是软件的运行环境的完整性,例如软件的执行文件、配置文件、附属运行库等,若上述内容发生篡改、丢失、植入等情形,则表明待检测软件是不完整的。在其中一个具体实施例中,待检测软件包括组态软件。组态软件又被称为组态监控系统软件,是指控制过程中数据采集与控制的专用软件,应用于自动控制系统监控层的软件平台和开发环境。
具体的,初始文件可以是待检测软件安装前的所有准备文件,包括待检测软件及其运行环境中的各种文件,由于初始文件未经过安装或者运行,不存在被篡改、丢失等情形,可以作为待检测软件的标准文件。在其中一个具体实施例中,初始文件是待检测软件安装包内的所有文件。
具体的,基于初始文件生成初始文件校验码可以是获取初始文件的源码,将初始文件的源码映射到一个编码,生成初始文件校验码。基于初始文件以及初始文件校验码生成第一校验码可以是将所有初始文件以及初始文件校验码作为一个整体文件,在此基础上生成第一校验码。初始文件校验码和第一校验码分别用于对初始文件和整体文件进行识别,若存在某个文件的校验码与初始文件校验码或者第一校验码匹配,则表明这两个文件相同。
S204:获取多个待检测文件,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码,待检测文件为待检测软件安装后重新获取的与初始文件对应的文件。
示例性地,获取待检测软件的待检测文件,分别对每个待检测文件进行映射处理,生成唯一的校验码,作为每个待检测文件对应的待检测文件校验码,然后对所有的待检测文件以及待检测文件校验码进行整体的映射处理,得到第二校验码。
具体的,待检测文件是待检测软件在运行过程中所访问的与初始文件相对应的文件,包括待检测软件本身的文件以及运行环境中的各种文件。具体的,待检测文件可以是安装后重新获取的与初始文件相对应的文件,用于判断待检测软件在安装过程中是否出现文件篡改、丢失等情形;也可以是软件运行时重新获取的与初始文件相对应的文件,用于判断待检测软件在运行过程中是否出现文件篡改、丢失等情形。在其中一个具体实施例中,当待检测软件需要执行编译、下载或者调试等指令时,获取与初始文件相对应的文件,作为待检测文件,然后基于待检测文件获取待检测文件校验码以及第二校验码。
S206:分别判断初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件。
具体的,依次将获取的初始文件校验码与待检测文件校验码进行对比,若每个初始文件校验码与该初始文件所对应的待检测文件的待检测文件校验码均匹配,则表明所有的初始文件和待检测文件均相同。可以理解的,为了避免不同文件出现匹配编码进而导致错误判断的情形,因此需要进行二次验证,即再次将第一校验码和第二校验码进行对比,若初始文件的第一校验码和待检测文件的第二校验码也匹配,则表明初始文件和待检测文件相同,待检测软件没有发生篡改、丢失等情形,即待检测软件为完整软件。
本实施例获取多个初始文件,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码,初始文件包括待检测软件安装过程中访问的所有文件;获取多个待检测文件,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码,待检测文件为待检测软件安装后重新获取的与初始文件对应的文件;分别判断初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件。通过初始文件校验码以及待检测文件校验码以及第一校验码与第二校验码的匹配关系确定软件的完整性,解决了对软件的完整性进行检测时可能出现错误判断的技术问题,提高了软件完整性检测的准确性。
在另一个实施例中,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码包括:
步骤1:基于消息摘要算法对初始文件进行处理,生成多个初始文件校验码;
步骤2:基于消息摘要算法对初始文件以及初始文件校验码进行处理,生成第一校验码。
示例性地,获取初始文件的二进制格式文件,基于消息摘要算法对二进制格式文件进行处理,生成每个初始文件的初始文件校验码。获取所有初始文件以及初始文件校验码的所有二进制格式文件,生成一个整体的二进制格式文件,基于消息摘要算法对整体的二进制格式文件进行处理,生成第一校验码。其中,消息摘要算法是指对任意长度的输入数据进行映射以生成固定长度的输出数据。消息摘要算法的输入可以是任意长度,该长度越长,输入数据的映射程度就越高,消息摘要算法的输出结果就越安全。同时,消息摘要算法的输出具有随机性和唯一性,随机性是指消息摘要算法是通过随机方式生成数据结果,但是该随机方式又不是绝对的随机方式,因为对相同的输入进行两次消息摘要处理,其结果是相同的,对不同的输入进行消息摘要处理,其结果也不相同,即消息摘要算法具有唯一性。因此,基于消息摘要算法对文件进行处理,若文件相同,消息摘要算法生成的编码也相同,反之则编码不相同。
在其中一个具体实施例中,消息摘要算法包括MD5算法。具体的,通过MD5算法对二进制格式文件进行处理生成校验码包括:对二进制格式文件进行填充,在二进制格式文件的尾部依次填充一个“1”和若干个“0”,直到对该二进制格式文件数据求余数的结果等于448;然后用一个64位数据记录二进制格式文件数据的长度,并将该64位数据加入上述填充后的二进制格式文件数据的尾部;最后加入4个定义的标准数据,对二进制格式文件数据进行循环运算,得到最终的编码结果。应当说明的是,本实施例中获取校验码不仅仅局限于消息摘要算法,还包括循环冗余校验算法、数字签名方法等,本发明对此不再赘述。
本实施例基于消息摘要算法分别生成初始文件校验码和第一校验码,基于初始文件校验码以及第一校验码即可对文件进行判断,只需要生成的验证码一致即可认定相关文件相同,计算成本低,并且映射方式具有随机性和唯一性,映射过程不需要秘钥且生成的校验码无法被反向解密,提高了校验码的安全性。
在另一个实施例中,基于初始文件以及初始文件校验码生成第一校验码包括:
步骤1:分别将初始文件以及初始文件校验码保存到初始文件集合;
步骤2:基于初始文件集合生成第一校验码。
具体的,将所有的初始文件以及对应的初始文件校验码保存到初始文件集合中,该集合在计算机内可以表现为一个文件夹,或者所有初始文件以及初始文件校验码组合而成的整体文件。基于该初始文件集合再次进行映射,生成第一校验码。
在其中一个具体实施例中,初始文件包括软件安装包内的所有程序文件、配置文件、动态链接文件等。对上述初始文件分别进行映射,得到对应的初始文件校验码,将所有的初始文件和初始文件校验码保存到初始文件清单中,并对该初始文件清单再次进行映射,得到第一校验码。
可选的,在得到第一校验码之后,还可以对初始文件清单进行加密,避免初始文件清单中的初始文件以及初始文件校验码在软件运行过程中发生篡改、损毁等情形。
本实施例将初始文件以及初始文件校验码保存到初始文件集合中,并对初始文件集合进行映射以生成第一校验码,不需要先对初始文件以及初始文件校验码进行拼接生成整体文件然后再进行映射,缩短了映射的过程,提高了第一校验码的生成速度。
在另一个实施例中,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码包括:
步骤1:基于消息摘要算法对待检测文件进行处理,生成多个待检测文件校验码;
步骤2:基于消息摘要算法对待检测文件以及待检测文件校验码进行处理,生成第二校验码。
示例性地,获取待检测文件的二进制格式文件,其中该待检测文件是软件安装后重新获取的与初始文件对应的文件。基于消息摘要算法对该待检测文件的二进制文件进行处理,生成每个待检测文件的待检测文件校验码。获取所有待检测文件以及待检测文件校验码,生成一个整体的二进制格式文件,基于消息摘要算法对该整体的二进制格式文件进行处理,生成第二校验码。
本实施例基于消息摘要算法分别生成待检测文件校验码和第二校验码,基于待检测文件校验码和第二校验码实现对待检测文件的检测,以判断待检测文件是否与初始文件相匹配,计算成本低,映射方式具有随机性和唯一性,映射过程不需要秘钥且生成的校验码无法被反向解密,提高了校验码的安全性。
在另一个实施例中,基于待检测文件以及待检测文件校验码生成第二校验码包括:
步骤1:分别将待检测文件以及待检测文件校验码保存到待检测文件集合;
步骤2:基于待检测文件集合生成第二校验码。
具体的,将所有的待检测文件以及对应的待检测文件校验码保存到待检测文件集合中,该待检测文件集合可以是一个文件夹,或者所有待检测文件以及待检测文件校验码组合而成的整体文件。基于该待检测文件集合再次进行映射,生成第二校验码。
在其中一个具体实施例中,待检测文件包括软件安装后重新获取的所有程序文件、配置文件、动态连接文件等。对上述待检测文件分别进行映射,得到对应的待检测文件校验码,将所有的待检测文件和待检测文件校验码保存到待检测文件清单中,并对该待检测文件清单再次进行映射,得到第二校验码。
本实施例将待检测文件以及待检测文件校验码保存到初始文件集合中,并对待检测文件集合进行映射以生成第二校验码,不需要先对待检测文件以及待检测文件校验码进行拼接生成整体文件然后再进行映射,缩短了映射的过程,提高了第二校验码的生成速度。
在另一个实施例中,分别判断初始文件校验码与待检测文件校验码是否均匹配之后还包括:
若不匹配,则判定待检测软件为不完整软件,并返回判断结果。
具体的,分别判断初始文件校验码与初始文件对应的待检测文件的待检测文件校验码是否匹配,若不匹配,则表明初始文件与待检测文件不相同,待检测文件可能出现篡改、丢失等情形。若匹配,则表明初始文件与待检测文件相同,此时再次进行二次校验,判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件,若不匹配,则判定待检测软件为不完整软件。若判定待检软件为完整软件,则继续执行后续操作,例如执行编译、下载、调制等指令;若判定待检测软件为不完整软件,则返回判断结果,告知相关人员进行后续处理。
在其中一个具体实施例中,若判定待检测软件为不完整软件,则对该待检测软件进行报错,告知相关人员哪些文件出现问题,即返回待检测文件中编码与初始文件不一致的文件。
可选的,在判断初始文件校验码与待检测文件校验码是否匹配之前,还包括对初始文件清单进行解密,获取初始文件以及初始文件校验码。
可选的,基于主动方式或者被动方式再次对待检测软件进行检测。具体的,手动方式为相关人员主动对软件的完整性进行检测,执行本实施例的方法步骤,例如在需要待检测软件运行某些功能时,先对待检测软件的完整性进行检测,以避免待检测软件出现问题导致程序崩溃等情形;被动检测方式可以设置为周期性的执行本实施例的方法步骤以对待检测软件进行检测,也可以设置为在需要执行编译、下载等功能或者每次打开软件时,自动对待检测软件进行检测。
在另一个实施例中,判定待检测软件为不完整软件之后还包括:
基于初始文件对待检测文件进行更新。
示例性地,若待检测软件为不完整软件,则获取存在问题的待检测文件,即待检测文件校验码与初始文件校验码不一致的待检测文件,并将该待检测文件替换为相应的初始文件。具体的,删除存在问题的待检测文件,并将对应的初始文件保存到该存储位置。
可选的,本实施例还可以基于手动方式对待检测文件进行更新。具体的,在显示界面返回存在问题的待检测文件及其存储地址,相关人员可基于该待检测文件以及存储地址删除该待检测文件,替换为与该待检测文件对应的初始文件。
本实施例基于初始文件对待检测文件进行更新,在发现待检测软件为不完整软件后,及时对存在问题的待检测文件进行更新,以修复待检测软件的漏洞,避免恶意程序植入、资源篡改等情形,提高了软件的安全性和可靠性。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种软件完整性的检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本实施例的软件完整性的检测装置的结构框图,如图3所示,该装置包括:
第一获取模块,用于获取多个初始文件,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码,初始文件包括待检测软件安装前的所有文件;
第一获取模块,还用于基于消息摘要算法对初始文件进行处理,生成多个初始文件校验码;
基于消息摘要算法对初始文件以及初始文件校验码进行处理,生成第一校验码;
第一获取模块,还用于分别将初始文件以及初始文件校验码保存到初始文件集合;
基于初始文件集合生成第一校验码;
第二获取模块,用于获取多个待检测文件,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码,所检测文件为待检测软件安装后重新获取的与初始文件对应的文件;
第二获取模块,还用于基于消息摘要算法对待检测文件进行处理,生成多个待检测文件校验码;
基于消息摘要算法对待检测文件以及待检测文件校验码进行处理,生成第二校验码;
第二获取模块,还用于分别将待检测文件以及待检测文件校验码保存到待检测文件集合;
基于待检测文件集合生成第二校验码;
判断模块,用于分别判断初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件;
软件完整性的检测装置,还包括不完整软件判定模块;
不完整软件判定模块,用于若不匹配,则判定待检测软件为不完整软件,并返回判断结果。
软件完整性的检测装置,还包括更新模块;
更新模块,用于基于初始文件对待检测文件进行更新。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取多个初始文件,分别基于初始文件生成多个初始文件校验码,并基于初始文件以及初始文件校验码生成第一校验码,初始文件包括待检测软件安装前的所有文件;
S2,获取多个待检测文件,分别基于待检测文件生成多个待检测文件校验码,并基于待检测文件以及待检测文件校验码生成第二校验码,待检测文件为待检测软件安装后重新获取的与初始文件对应的文件;
S3,分别判断初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断第一校验码与第二校验码是否匹配,若匹配,则判定待检测软件为完整软件。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的软件完整性的检测方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种软件完整性的检测方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种软件完整性的检测方法,其特征在于,包括:
获取多个初始文件,分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码,所述初始文件包括待检测软件安装前的所有文件;
获取多个待检测文件,分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码,所述待检测文件为所述待检测软件安装后重新获取的与所述初始文件对应的文件;
分别判断所述初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断所述第一校验码与第二校验码是否匹配,若匹配,则判定所述待检测软件为完整软件。
2.根据权利要求1所述的软件完整性的检测方法,其特征在于,所述分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码包括:
基于消息摘要算法对所述初始文件进行处理,生成多个所述初始文件校验码;
基于消息摘要算法对所述初始文件以及初始文件校验码进行处理,生成所述第一校验码。
3.根据权利要求1所述的软件完整性的检测方法,其特征在于,所述基于所述初始文件以及初始文件校验码生成第一校验码包括:
分别将所述初始文件以及初始文件校验码保存到初始文件集合;
基于所述初始文件集合生成第一校验码。
4.根据权利要求1所述软件完整性的检测方法,其特征在于,所述分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码包括:
基于消息摘要算法对所述待检测文件进行处理,生成多个所述待检测文件校验码;
基于消息摘要算法对所述待检测文件以及待检测文件校验码进行处理,生成所述第二校验码。
5.根据权利要求1所述的软件完整性的检测方法,其特征在于,所述基于所述待检测文件以及待检测文件校验码生成第二校验码包括:
分别将所述待检测文件以及待检测文件校验码保存到待检测文件集合;
基于所述待检测文件集合生成第二校验码。
6.根据权利要求1所述的软件完整性的检测方法,其特征在于,所述分别判断所述初始文件校验码与待检测文件校验码是否均匹配之后还包括:
若不匹配,则判定所述待检测软件为不完整软件,并返回判断结果。
7.根据权利要求6所述的软件完整性的检测方法,其特征在于,所述判定所述待检测软件为不完整软件之后还包括:
基于所述初始文件对所述待检测文件进行更新。
8.一种软件完整性的检测装置,其特征在于,包括:
第一获取模块,用于获取多个初始文件,分别基于所述初始文件生成多个初始文件校验码,并基于所述初始文件以及初始文件校验码生成第一校验码,所述初始文件包括待检测软件安装过程中访问的所有文件;
第二获取模块,用于获取多个待检测文件,分别基于所述待检测文件生成多个待检测文件校验码,并基于所述待检测文件以及待检测文件校验码生成第二校验码,所述待检测文件为所述待检测软件安装后重新获取的与所述初始文件对应的文件;
判断模块,用于分别判断所述初始文件校验码与待检测文件校验码是否均匹配,若均匹配,则进一步判断所述第一校验码与第二校验码是否匹配,若匹配,则判定所述待检测软件为完整软件。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的软件完整性的检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的软件完整性的检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768819.2A CN113536309A (zh) | 2021-07-07 | 2021-07-07 | 软件完整性的检测方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768819.2A CN113536309A (zh) | 2021-07-07 | 2021-07-07 | 软件完整性的检测方法、装置、电子装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113536309A true CN113536309A (zh) | 2021-10-22 |
Family
ID=78097984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110768819.2A Pending CN113536309A (zh) | 2021-07-07 | 2021-07-07 | 软件完整性的检测方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113536309A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090199039A1 (en) * | 2008-02-06 | 2009-08-06 | Inventec Corporation | File data restoring system and method of computer operating system and software thereof |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
CN104732159A (zh) * | 2013-12-24 | 2015-06-24 | 北京慧眼智行科技有限公司 | 一种文件处理方法及装置 |
CN105117650A (zh) * | 2015-09-08 | 2015-12-02 | 北京元心科技有限公司 | 一种移动终端系统安全的保护方法及装置 |
WO2016056856A1 (ko) * | 2014-10-08 | 2016-04-14 | 재단법인 다차원 스마트 아이티 융합시스템 연구단 | 무결성 검증 데이터 생성 방법 및 시스템 |
CN106648953A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种文件完整性检查方法及装置 |
CN110069415A (zh) * | 2019-04-28 | 2019-07-30 | 苏州科达科技股份有限公司 | 用于软件测试过程中的软件完整性校验及软件测试方法 |
CN111709038A (zh) * | 2020-05-07 | 2020-09-25 | 北京中科凡语科技有限公司 | 文件加密解密方法、分布式存储系统、设备及存储介质 |
CN112883427A (zh) * | 2019-11-29 | 2021-06-01 | 航天信息股份有限公司 | 文件完整性的检测方法及装置 |
-
2021
- 2021-07-07 CN CN202110768819.2A patent/CN113536309A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090199039A1 (en) * | 2008-02-06 | 2009-08-06 | Inventec Corporation | File data restoring system and method of computer operating system and software thereof |
CN104732159A (zh) * | 2013-12-24 | 2015-06-24 | 北京慧眼智行科技有限公司 | 一种文件处理方法及装置 |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
WO2016056856A1 (ko) * | 2014-10-08 | 2016-04-14 | 재단법인 다차원 스마트 아이티 융합시스템 연구단 | 무결성 검증 데이터 생성 방법 및 시스템 |
CN105117650A (zh) * | 2015-09-08 | 2015-12-02 | 北京元心科技有限公司 | 一种移动终端系统安全的保护方法及装置 |
CN106648953A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种文件完整性检查方法及装置 |
CN110069415A (zh) * | 2019-04-28 | 2019-07-30 | 苏州科达科技股份有限公司 | 用于软件测试过程中的软件完整性校验及软件测试方法 |
CN112883427A (zh) * | 2019-11-29 | 2021-06-01 | 航天信息股份有限公司 | 文件完整性的检测方法及装置 |
CN111709038A (zh) * | 2020-05-07 | 2020-09-25 | 北京中科凡语科技有限公司 | 文件加密解密方法、分布式存储系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492378B (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
US11093258B2 (en) | Method for trusted booting of PLC based on measurement mechanism | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN109561085B (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
CN107148010B (zh) | 多运营商实现方法、装置、存储介质和计算机设备 | |
US20090260084A1 (en) | Method for verifying conformity of the logical content of a computer appliance with a reference content | |
CN105389177A (zh) | 一种软件版本确认方法、装置及系统 | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
CN105262589A (zh) | 数据安全校验方法、装置及校验设备 | |
US10148440B2 (en) | Binary code authentication | |
CN111666564B (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
WO2002027444A2 (en) | System and method for verifying the integrity of stored information within an electronic device | |
CN110069415B (zh) | 用于软件测试过程中的软件完整性校验及软件测试方法 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
US20100037065A1 (en) | Method and Apparatus for Transitive Program Verification | |
CN116324773A (zh) | 用于保护智能合约免受攻击的方法和装置 | |
CN111259370A (zh) | 一种fpga程序安全验证方法、系统、终端及存储介质 | |
CN109753788B (zh) | 内核运行时的完整性校验方法及计算机可读存储介质 | |
CN107145342B (zh) | 应用的渠道信息的处理方法和装置 | |
CN111953475B (zh) | 一种代码漏洞的修复方法及设备 | |
CN113849859A (zh) | Linux内核的修改方法、终端设备和存储介质 | |
CN112713996A (zh) | 基于区块链的故障验证方法、服务器和终端 | |
CN112711570A (zh) | 日志信息的处理方法、装置、电子设备及存储介质 | |
CN108959915B (zh) | 一种rootkit检测方法、装置及服务器 |
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 |