CN117786666A - 功能代码的启动校验方法、装置、电子设备及存储介质 - Google Patents
功能代码的启动校验方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117786666A CN117786666A CN202410209368.2A CN202410209368A CN117786666A CN 117786666 A CN117786666 A CN 117786666A CN 202410209368 A CN202410209368 A CN 202410209368A CN 117786666 A CN117786666 A CN 117786666A
- Authority
- CN
- China
- Prior art keywords
- function
- code
- verification
- codes
- functional
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006870 function Effects 0.000 claims description 277
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 23
- 230000004044 response Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000000875 corresponding effect Effects 0.000 description 67
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000011835 investigation Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000008263 repair mechanism Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及数据识别技术,公开了一种功能代码的启动校验方法,包括:在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;对当前加载的功能代码进行校验;启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;若是,则判定功能模组启动完成。本申请还公开了一种启动校验装置、电子设备和计算机可读存储介质。本申请旨在保证功能代码在启动过程中的安全性和完整性的同时,提高功能模组的响应速度。
Description
技术领域
本申请涉及数据识别技术领域,尤其涉及一种功能代码的启动校验方法、启动校验装置、电子设备以及计算机可读存储介质。
背景技术
目前,为了应对电子设备因遭受非法攻击而导致核心的程序被改写,以及为了防止电子设备的存储器在上下电或其他不稳定环境下发生存储内容的错误,导致有的代码丢失或无法读取,因此一些电子设备的功能模组需要在启动时加入代码校验功能,以校验代码是否安全、完整,从而保证相应的功能可以正常使用。
但这样一来,又不可避免的会影响到功能模组启动响应的效率,尤其对于一些响应时间要求较高的场景(如使用对讲机进行即时通讯时,音频处理模组的启动响应),这种启动速度的降低是难以接受的。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种功能代码的启动校验方法、启动校验装置、电子设备以及计算机可读存储介质,旨在保证功能代码在启动过程中的安全性和完整性的同时,提高功能模组的响应速度。
为实现上述目的,本申请提供一种功能代码的启动校验方法,包括以下步骤:
在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
对当前加载的功能代码进行校验;
启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
若是,则判定功能模组启动完成。
可选的,所述对当前加载的功能代码进行校验的步骤包括:
计算当前加载的功能代码对应的校验值;
检测所述校验值是否符合预设要求;
若符合,则判定功能代码通过校验;
若不符合,则判定功能代码未通过校验。
可选的,所述计算当前加载的功能代码对应的校验值的步骤包括:
获取当前加载的功能代码中的各组子代码对应的第一校验值,其中,在加载功能代码时,对各组子代码进行逐次加载,且每加载一组子代码,则计算子代码对应的第一校验值;
根据各组子代码对应的第一校验值,计算第二校验值。
可选的,所述功能代码的启动校验方法的步骤还包括:
每计算一组子代码对应的第一校验值,则更新第二校验值;
每更新一次第二校验值,则根据第二校验值的更新次数,获取相应的预设值;
检测到最新的第二校验值与获取到的预设值不对应时,判定相应的功能代码未通过校验;
其中,在加载功能代码时,根据各组子代码对应的预设次序,对各组子代码进行逐次加载。
可选的,所述在功能模组启动时,加载第一等级的功能代码的步骤之前,还包括:
根据各功能代码对功能模组的重要程度,为各功能代码分配相应的等级。
可选的,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若功能代码未通过校验,则针对未通过校验的功能代码进行异常处理。
可选的,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若当前加载的功能代码未通过校验,则检测未加载的功能代码是否与未通过校验的功能代码存在依赖关系;
若不存在依赖关系,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤。
为实现上述目的,本申请还提供一种启动校验装置,包括:
加载模块,用于在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
校验模块,用于对当前加载的功能代码进行校验;
运行模块,用于启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
处理模块,用于若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
判定模块,用于若是,则判定功能模组启动完成。
为实现上述目的,本申请还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述功能代码的启动校验方法的步骤。
为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述功能代码的启动校验方法的步骤。
本申请提供的功能代码的启动校验方法、启动校验装置、电子设备以及计算机可读存储介质,通过逐级加载和校验功能模组中的各个功能代码,以保证功能代码在启动过程中的安全性和完整性,同时也减少了启动时的等待校验的时间,提高了功能模组的响应速度。
附图说明
图1为本申请一实施例中功能代码的启动校验方法步骤示意图;
图2为本申请一实施例中启动校验装置示意图;
图3为本申请一实施例的电子设备的内部结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制,基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,若本申请中涉及“第一”、“第二”等的描述,仅用于描述目的(如用于区分相同或类似元件),而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
参照图1,在一实施例中,所述功能代码的启动校验方法包括:
步骤S10、在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
步骤S20、对当前加载的功能代码进行校验;
步骤S30、启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
步骤S40、若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
步骤S50、若是,则判定功能模组启动完成。
本实施例中,实施例的执行终端可以是电子设备,也可以是控制电子设备的其他设备或装置(如启动校验装置)。
如步骤S10所述,对于电子设备上的各功能模组,可以是根据所属软件应用划分,也可以是根据相关硬件模块所实现的功能划分。
其中,若按照所属软件应用划分,则功能模组可以是集成了特定功能的软件组件,例如声音、图像处理、网络连接等等,每个应用都可以包括多组功能代码,以实现相应的功能;若按照硬件模块所实现的功能划分,则功能模组可以是实现特定硬件模块相关功能的软件组件,例如启动芯片、声卡、显卡、网卡等,同样可包括多种功能代码,用于实现这些模组的功能。
例如,以电子设备为对讲机为例,对讲机中包括的主控模组、无线通信模组、音频处理模组等,即为对讲机的各个功能模组;而音频处理模组中,又可以实现音频输入输出功能、降噪/防啸叫功能、存储功能、模式切换功能等,这些功能均有与之对应的功能代码。
可选的,预先为电子设备上的功能模组中不同的功能代码分配相应的等级。这个等级的分配可以根据不同的考虑因素来确定,如功能的重要性、依赖关系、性能需求和安全性要求等。
首先,对功能模组中的不同功能进行评估,确定它们的重要性和对系统操作的影响程度。一些核心功能可以按需要分配到最高优先级的等级(即第一等级),以确保其始终能够优先加载和启动。例如对于对讲机的音频处理模组而言,音频输入输出功能是最基础也是最重要的功能,则需要分配第一等级,以满足对讲机的基本通信需求;而在实现音频输入输出功能的基础上,有针对性对音频进行优化,以确保音频质量的提升,从而提高用户的使用体验,因此降噪/防啸叫功能可以分配第二等级;至于其他功能(如存储功能、模式切换功能)则是次要的,则可以分配较低的等级。
其次,考虑功能之间的依赖关系(可通过依赖树体现)。某些功能可能依赖于其他功能的加载和初始化,因此需要确保其所依赖的功能代码优先加载和启动。
同时,还可以考虑性能需求。对于对响应时间要求较高的功能,可以将其分配到较高的优先级等级,以便在启动过程中尽早加载和启动,从而减少响应延迟。
最后是安全性考虑。对于与设备安全性密切相关的功能或功能代码,可以将其分配到较高的优先级等级,以确保其在启动时先行加载和校验,确保系统的安全性。
根据以上考虑因素,为不同的功能代码分配相应的等级,以便在启动过程中有序加载和启动这些功能。这样可以确保在启动过程中兼顾安全性和性能,并最大程度地满足不同功能的启动响应需求。
可选的,在电子设备的功能模组启动时,优先加载该功能模组中第一等级的功能代码。
如步骤S20所述,代码校验的目的是确保每个功能模组内加载的功能代码是真实、有效和安全的。在进行功能代码校验时,可以执行以下操作:
(1)校验功能代码的版本:确保使用的功能代码版本是最新的,或在符合设备需求的范围内。在更新代码版本时,应进行数据备份和恢复,防止数据丢失。
(2)校验功能代码的完整性:确保每个功能模组中的功能代码没有缺失或损坏,这可以通过MD5或SHA-256哈希算法验证初始代码的完整性。
(3)校验功能代码的安全性:确保每个功能模组内的代码没有安全漏洞和威胁,例如注入漏洞、溢出漏洞等。可以使用静态代码分析和动态测试工具来识别潜在的安全漏洞,并修复或替换相关的函数或算法等。
通过以上校验,可以保证在电子设备上加载的功能代码是真实、有效和安全的,从而确保电子设备的正常运行。
如步骤S30所述,在功能代码校验通过后,可以进一步启动和运行校验通过的功能代码对应的服务。这样可以确保功能模组能够正常提供相应的功能。
并且根据等级分配,按照优先级顺序启动相关的功能代码对应的服务。首先启动第一等级的功能代码对应的服务,确保最基础和重要的功能能够正常运行。
当当前加载的功能代码完成校验后,可以进一步检测是否所有等级的功能代码都已经完成了校验。这样可以确保所有功能模组的代码都经过了验证,避免因某个等级的功能代码校验未完成而导致的运行问题。
如步骤S40所述,若检测到并非所有等级的功能代码已校验完毕(即仍有等级比当前加载的功能代码低的功能代码未进行校验),则应继续加载下一等级的功能代码,直至所有等级的功能代码都已经完成了校验。
加载下一等级的功能代码之后,应该返回到上述“对当前加载的功能代码进行校验”的步骤(即步骤S20),继续对当前加载的功能代码进行校验。这样可以确保在最终完成所有等级的功能代码校验之前,将所有等级的功能代码依次加载并完成校验。
如步骤S50所述,若检测到所有等级的功能代码均已加载,并且均成功通过校验,以及启动相应的服务,则可以判定该功能模组已经启动完成。
在一实施例中,通过逐级加载和校验功能模组中的各个功能代码,以保证功能代码在启动过程中的安全性和完整性,同时也减少了启动时的等待校验的时间,提高了功能模组的响应速度。
即通过逐级加载功能代码,可以确保每个等级的功能代码都经过了校验并且启动成功,避免了未经校验或者校验不通过的功能代码影响系统的正常运行。这种逐级加载的方式可以有效防止潜在的安全隐患。
同时,逐级校验功能代码可以分散校验的压力,通过优先校验重要的、等级高的功能代码,使其可以优先提供相应的服务,从而提高了功能模组的响应速度,减少用户等待的时间;尤其是对于那些对功能模组正常运行至关重要的功能代码,优先校验可以确保功能模组运行的安全性和可靠性。
在一实施例中,在上述实施例基础上,所述对当前加载的功能代码进行校验的步骤包括:
计算当前加载的功能代码对应的校验值;
检测所述校验值是否符合预设要求;
若符合,则判定功能代码通过校验;
若不符合,则判定功能代码未通过校验。
本实施例中,对于每组功能代码,采用特定的校验算法,如哈希算法(如MD5、SHA-256等),计算功能代码的校验值。
可选的,将计算得到的校验值与预设的参考值进行比较,以校验功能代码是否符合预设要求。参考值可以是预先确定的正确校验值或者是加密密钥等。比较时,可以通过对比两个值是否一致或者检查其相似性程度来判断校验结果。
可选的,如果计算得到的校验值与参考值相匹配,或者与参考值相似度高于设定的阈值,即可确定当前功能代码通过校验,并可以继续加载和启动。
可选的,如果计算得到的校验值与参考值不匹配,或者与参考值相似度低于设定的阈值,则判定当前功能代码未通过校验,需要采取相应的措施,如中止加载、报警等,并进行进一步的故障排除。
通过以上方式,可以对当前加载的功能代码进行校验,确保其完整性和安全性,以便决定功能代码是否通过校验,进而判断其是否能够继续加载和启动。这个校验过程是启动过程中的重要环节,可以保证功能模组的正常运行和可靠性。
在一实施例中,在上述实施例的基础上,所述计算当前加载的功能代码对应的校验值的步骤包括:
获取当前加载的功能代码中的各组子代码对应的第一校验值,其中,在加载功能代码时,对各组子代码进行逐次加载,且每加载一组子代码,则计算子代码对应的第一校验值;
根据各组子代码对应的第一校验值,计算第二校验值。
本实施例中,功能模组中的每个功能代码文件,预先划分为若干组子代码。在加载每组功能代码时,按照预设校验次序,逐次加载其中各组子代码,并计算每个子代码对应的第一校验值。每加载一组子代码,则计算一次其对应的第一校验值。
可选的,在得到每组子代码的第一校验值后,可以根据这些第一校验值,执行一定的算法操作,如求和、求均值等,计算得到第二校验值。这样第二校验值可以起到整合各组子代码校验值的作用,用于最终的校验结果判断。
通过以上方式,可以获取当前加载的功能代码中各组子代码的第一校验值,并计算得到第二校验值。这样的校验方式可以对功能代码的不同组分进行独立校验和整体校验,并确保校验过程的准确性和高效性。同时,根据校验值的更新和计算,可以根据校验结果判断功能代码是否通过校验,并决定是否继续加载和启动。
在一实施例中,在上述实施例的基础上,所述功能代码的启动校验方法的步骤还包括:
每计算一组子代码对应的第一校验值,则更新第二校验值;
每更新一次第二校验值,则根据第二校验值的更新次数,获取相应的预设值;
检测到最新的第二校验值与获取到的预设值不对应时,判定相应的功能代码未通过校验;
其中,在加载功能代码时,根据各组子代码对应的预设次序,对各组子代码进行逐次加载。
本实施例中,对于每个功能代码文件,可以将其划分为若干组子代码,每组子代码对应一个预设校验次序。在加载时,按照预设次序(即预设校验次序),对各组子代码进行逐一加载和校验。
其中,每加载一组子代码,则计算一次其对应的第一校验值。
可选的,每计算得到一次第一校验值,则根据第二校验值的计算规则,对第二校验值进行更新。例如,若第二校验值是第一校验值的累计求和,则每得到一个第一校验值即求和一次,即可实现对第二校验值的更新。
可选的,在更新第二校验值的同时,需要根据更新次数来动态获取相应的预设值;预设值可以是提前生成并存储在特定位置的参考值,每组子代码均有其对应的预设值,子代码组数决定第二校验值的更新次数,而更新次数也可以反映各组子代码的加载顺序,如第一次更新,也就是对应第一组子代码,则获取第一组子代码对应的预设值;第二次更新,也就是对应第一组子代码,则获取第二组子代码对应的预设值。
然后,每个更新一次第二校验值,则获取相应更新次数对应的预设值,并将当前更新的第二校验值与获取到的预设值进行比对。
可选的,如果最新的第二校验值与获取到的预设值不一致,则判定相应的子代码未通过校验,而若有任一组子代码未通过校验,则判定相应的功能代码未通过校验;若最新的第二校验值与获取到的预设值一致,则继续加载下一组子代码进行校验,并继续更新第二校验值和预设值进行比对,直至所有子代码校验完成。
可选的,若所有子代码均校验通过,则判定相应的功能代码通过校验。可以继续后续的操作,如正常加载和执行功能代码。
由于上述校验过程包含了每个子代码的第一校验值、第二校验值每次更新的情况以及预设值,而预设值又与各组子代码的校验次序相关联,因此任何情况下只要相应的子代码经过篡改或丢失,校验过程都会检测到这种情况,并判定相应的功能代码校验不通过。
同时,如果非法设备未得知各组子代码的校验次序,也就无法正确地获取对应的预设值(或者无法计算得到某个校验次序中,正确的第二校验值),从而无法通过校验。相比于不限子代码加载次序的方式而言,这种校验方式的安全性更高。
这种校验方式可以有效地提高功能代码的安全性和可靠性,阻止任何非法操作,保障功能模组的安全和稳定。
在一实施例中,在上述实施例的基础上,所述在功能模组启动时,加载第一等级的功能代码的步骤之前,还包括:
根据各功能代码对功能模组的重要程度,为各功能代码分配相应的等级。
本实施例中,预先根据不同的功能代码对整个功能模组的贡献,评估相应的重要程度。
可以采用以下方法智能评估各功能代码的重要程度:
(1)针对每个功能代码,设定命名空间:针对每个功能代码,将其归纳到相应的命名空间内,将具有相似性质的功能代码放到一个命名空间内,从而方便进行后续的分类和筛选。
(2)根据设定的命名空间,衡量其对整个功能模组的影响:根据功能代码的重要性程度(如对应所实现的设备功能的重要程度)、使用频率和功能代码间的依赖关系,衡量其对所在命名空间、整个功能模组的影响。
(3)基于衡量结果对功能代码进行等级划分:根据所衡量的影响程度,对命名空间中的所有功能代码进行等级划分,从而灵活地确定各个功能代码的重要程度。
(4)设定等级以及加载顺序:根据各功能代码的等级,设定它们的加载顺序。通常,按照等级由高到低的顺序进行加载,确保最重要的功能代码首先加载。
可选的,基于上述评估结果,为每个功能代码分配一个等级。等级可以根据功能的关键性、对系统稳定性的影响程度等因素来确定。
通过以上补充的步骤,可以根据各功能代码对功能模组的重要程度进行评估,并分配相应的等级。然后根据等级设定功能代码的加载次序,并执行校验过程。这样的设计可以进一步提高功能模组的安全性和稳定性,确保关键功能代码的优先加载,并有效地防止非法篡改、丢失或非法启动的情况。
在一实施例中,在上述实施例的基础上,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若功能代码未通过校验,则针对未通过校验的功能代码进行异常处理。
本实施例中,如果功能代码未通过校验,表示存在篡改、丢失或加载次序异常的情况。针对这些未通过校验的功能代码,进行相应的异常处理。其中,异常处理可以包括以下至少一种:
(1)记录日志和警报系统:将未通过校验的功能代码的相关信息记录到日志中,并触发警报系统,通知系统管理员或相关负责人。
(2)暂停加载和执行:对于未通过校验的功能代码,应立即停止加载和执行。确保系统不继续运行可能存在安全风险的功能代码。
(3)检查备份和修复机制:对于未通过校验的功能代码,可以立即检查备份机制和修复机制是否存在,并执行相应的操作,以确保系统从备份或修复中恢复。
(4)进行进一步调查和修复:对于未通过校验的功能代码,需要进行进一步的安全调查和修复,以确定篡改或异常情况的来源,并采取相应的措施加固系统的安全度。
这样,记录日志和警报系统可提供实时的异常信息,以便系统管理员或相关负责人能够快速响应。同时,暂停加载和执行未通过校验的功能代码可以确保系统安全,防止进一步的安全威胁。检查备份和修复机制,以及进行进一步调查和修复,可以恢复系统的正常运行,并加固系统的安全性。
综上所述,对于未通过校验的功能代码,进行适当的异常处理,以确保系统的安全性和稳定性。
在一实施例中,在上述实施例的基础上,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若当前加载的功能代码未通过校验,则检测未加载的功能代码是否与未通过校验的功能代码存在依赖关系;
若不存在依赖关系,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤。
本实施例中,若当前加载的功能代码未通过校验,则进行依赖关系检测:针对未通过校验的功能代码,检查系统中未加载的功能代码是否与其存在依赖关系。
需要说明的是,依赖关系指的是一个功能代码需要依赖于其他功能代码或组件才能正常运行的关系。在软件开发中,依赖关系用于描述功能代码之间的依赖与关联,通常以以下几种方式进行定义:
(1)代码依赖:一个功能代码直接引用、调用、继承或依赖于其他功能代码的类、模块、接口或库。代码依赖可以通过代码静态分析工具或开发环境的引用关系来确定。
(2)编译依赖:一个功能代码在编译过程中依赖于其他功能代码的源文件或编译后的二进制文件。编译依赖关系通常在构建系统或编译工具的配置文件中定义。
(3)运行时依赖:一个功能代码在运行过程中需要其他功能代码或组件提供的服务、数据或资源。运行时依赖关系可以在应用程序配置文件、依赖注入容器或运行时环境中进行配置。
(4)配置依赖:一个功能代码在运行过程中依赖于特定的配置参数或配置文件。配置依赖可以通过配置文件、环境变量或配置中心来定义和管理。
可选的,依赖关系的定义可以通过上述一种或多种方式的组合来确定。例如,在一个软件项目中,不同的功能模组可能存在代码依赖、编译依赖和运行时依赖。
可选的,如果未通过校验的功能代码与未加载的功能代码之间不存在依赖关系,即未加载的功能代码不会受到未通过校验的功能代码的影响,则继续加载下一等级的功能代码,返回执行对当前加载的功能代码进行校验的步骤(即步骤S20)。这样就可以继续进行校验和处理后续功能代码的过程。
这样,可以实现对未通过校验的功能代码的处理,并且在加载下一等级的功能代码之前,进行依赖关系的检测。如果不存在依赖关系,即未加载的功能代码不会受到未通过校验的功能代码的影响,可以安全地加载下一等级的功能代码。然后,返回执行对当前加载的功能代码进行校验的步骤,以确保对所有功能代码的校验和处理过程的完整性和安全性。
可选的,若未通过校验的功能代码与未加载的功能代码之间存在依赖关系,则对当前加载的功能代码进行异常处理的同时,不再加载余下未加载的功能代码,但是可以保留已通过校验的功能代码(即已通过校验的功能代码的服务不受影响)。这样可以避免可能存在依赖关系导致的问题进一步发展,同时保留已通过校验的功能代码,确保这部分功能的正常运行。
此外,参照图2,本申请实施例中还提供一种启动校验装置Z10,包括:
加载模块Z11,用于在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
校验模块Z12,用于对当前加载的功能代码进行校验;
运行模块Z13,用于启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
处理模块Z14,用于若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
判定模块Z15,用于若是,则判定功能模组启动完成。
可选的,所述启动校验装置可以是一种虚拟控制装置(如虚拟机),也可以是实体设备(如除电子设备外的可执行相应方法的实体设备)。
此外,本申请实施例中还提供一种电子设备,该电子设备内部结构可以如图3所示。该电子设备包括通过系统总线连接的处理器、存储器、通信接口和数据库。其中,该处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储计算机程序调用的数据。该电子设备的通信接口用于与外部的终端进行数据通信。该电子设备的输入装置用于接收外部设备输入的信号。该计算机程序被处理器执行时以实现一种如以上实施例所述的功能代码的启动校验方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定。
此外,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的功能代码的启动校验方法的步骤。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的功能代码的启动校验方法、启动校验装置、电子设备和计算机可读存储介质,通过逐级加载和校验功能模组中的各个功能代码,以保证功能代码在启动过程中的安全性和完整性,同时也减少了启动时的等待校验的时间,提高了功能模组的响应速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种功能代码的启动校验方法,其特征在于,包括:
在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
对当前加载的功能代码进行校验;
启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
若是,则判定功能模组启动完成。
2.如权利要求1所述的功能代码的启动校验方法,其特征在于,所述对当前加载的功能代码进行校验的步骤包括:
计算当前加载的功能代码对应的校验值;
检测所述校验值是否符合预设要求;
若符合,则判定功能代码通过校验;
若不符合,则判定功能代码未通过校验。
3.如权利要求2所述的功能代码的启动校验方法,其特征在于,所述计算当前加载的功能代码对应的校验值的步骤包括:
获取当前加载的功能代码中的各组子代码对应的第一校验值,其中,在加载功能代码时,对各组子代码进行逐次加载,且每加载一组子代码,则计算子代码对应的第一校验值;
根据各组子代码对应的第一校验值,计算第二校验值。
4.如权利要求3所述的功能代码的启动校验方法,其特征在于,所述功能代码的启动校验方法的步骤还包括:
每计算一组子代码对应的第一校验值,则更新第二校验值;
每更新一次第二校验值,则根据第二校验值的更新次数,获取相应的预设值;
检测到最新的第二校验值与获取到的预设值不对应时,判定相应的功能代码未通过校验;
其中,在加载功能代码时,根据各组子代码对应的预设次序,对各组子代码进行逐次加载。
5.如权利要求1所述的功能代码的启动校验方法,其特征在于,所述在功能模组启动时,加载第一等级的功能代码的步骤之前,还包括:
根据各功能代码对功能模组的重要程度,为各功能代码分配相应的等级。
6.如权利要求1-5中任一项所述的功能代码的启动校验方法,其特征在于,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若功能代码未通过校验,则针对未通过校验的功能代码进行异常处理。
7.如权利要求1-5中任一项所述的功能代码的启动校验方法,其特征在于,所述对当前加载的功能代码进行校验的步骤之后,还包括:
若当前加载的功能代码未通过校验,则检测未加载的功能代码是否与未通过校验的功能代码存在依赖关系;
若不存在依赖关系,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤。
8.一种启动校验装置,其特征在于,包括:
加载模块,用于在功能模组启动时,加载第一等级的功能代码,其中,预先为功能模组不同的功能代码分配相应的等级;
校验模块,用于对当前加载的功能代码进行校验;
运行模块,用于启动通过校验的功能代码对应的服务,并检测是否所有等级的功能代码已校验完毕;
处理模块,用于若否,则加载下一等级的功能代码,并返回执行所述对当前加载的功能代码进行校验的步骤;
判定模块,用于若是,则判定功能模组启动完成。
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的功能代码的启动校验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的功能代码的启动校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410209368.2A CN117786666B (zh) | 2024-02-26 | 功能代码的启动校验方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410209368.2A CN117786666B (zh) | 2024-02-26 | 功能代码的启动校验方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117786666A true CN117786666A (zh) | 2024-03-29 |
CN117786666B CN117786666B (zh) | 2024-05-31 |
Family
ID=
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1459146A (zh) * | 2001-02-13 | 2003-11-26 | 三星电子株式会社 | 在通信系统中生成代码的设备和方法 |
US20130086338A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Linking code for an enhanced application binary interface (abi) with decode time instruction optimization |
CN106096388A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 一种代码安全处理方法、装置、终端设备及系统 |
CN112347467A (zh) * | 2019-08-07 | 2021-02-09 | 联合汽车电子有限公司 | 车载控制器的启动方法及系统 |
CN115017517A (zh) * | 2022-06-07 | 2022-09-06 | Oppo广东移动通信有限公司 | 芯片及校验方法 |
CN115344308A (zh) * | 2021-05-12 | 2022-11-15 | 华为技术有限公司 | 安全启动装置及方法 |
CN115934194A (zh) * | 2022-12-12 | 2023-04-07 | 苏州挚途科技有限公司 | 一种控制器启动方法、装置、电子设备及储存介质 |
CN116028097A (zh) * | 2023-01-10 | 2023-04-28 | 上海中通吉网络技术有限公司 | 数据权限的处理方法、系统、设备及存储介质 |
CN116361047A (zh) * | 2023-03-20 | 2023-06-30 | 惠州市德赛西威智能交通技术研究院有限公司 | 一种代码校验方法、装置、设备及存储介质 |
CN116860314A (zh) * | 2023-05-30 | 2023-10-10 | 广州全盛威信息技术有限公司 | 代码管理方法、装置、电子设备及存储介质 |
CN117493199A (zh) * | 2023-11-14 | 2024-02-02 | 中国工商银行股份有限公司 | 代码校验方法、装置、计算机设备和存储介质 |
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1459146A (zh) * | 2001-02-13 | 2003-11-26 | 三星电子株式会社 | 在通信系统中生成代码的设备和方法 |
US20130086338A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Linking code for an enhanced application binary interface (abi) with decode time instruction optimization |
CN106096388A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 一种代码安全处理方法、装置、终端设备及系统 |
CN112347467A (zh) * | 2019-08-07 | 2021-02-09 | 联合汽车电子有限公司 | 车载控制器的启动方法及系统 |
CN115344308A (zh) * | 2021-05-12 | 2022-11-15 | 华为技术有限公司 | 安全启动装置及方法 |
CN115017517A (zh) * | 2022-06-07 | 2022-09-06 | Oppo广东移动通信有限公司 | 芯片及校验方法 |
CN115934194A (zh) * | 2022-12-12 | 2023-04-07 | 苏州挚途科技有限公司 | 一种控制器启动方法、装置、电子设备及储存介质 |
CN116028097A (zh) * | 2023-01-10 | 2023-04-28 | 上海中通吉网络技术有限公司 | 数据权限的处理方法、系统、设备及存储介质 |
CN116361047A (zh) * | 2023-03-20 | 2023-06-30 | 惠州市德赛西威智能交通技术研究院有限公司 | 一种代码校验方法、装置、设备及存储介质 |
CN116860314A (zh) * | 2023-05-30 | 2023-10-10 | 广州全盛威信息技术有限公司 | 代码管理方法、装置、电子设备及存储介质 |
CN117493199A (zh) * | 2023-11-14 | 2024-02-02 | 中国工商银行股份有限公司 | 代码校验方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
曹斌 等: "Wi-Fi6安全可信技术应用研究", 《保密科学技术》, 20 August 2020 (2020-08-20), pages 20 - 28 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9910743B2 (en) | Method, system and device for validating repair files and repairing corrupt software | |
CN110909394B (zh) | 一种服务器的配置文件监测方法、装置、设备及存储介质 | |
US20130007527A1 (en) | System and method for automated solution of functionality problems in computer systems | |
CN110795128B (zh) | 一种程序漏洞修复方法、装置、存储介质及服务器 | |
EP1399808A2 (en) | Binding by hash | |
CN113094210B (zh) | 一种windows平台进程及文件守护方法及系统 | |
CN111368299A (zh) | 动态链接库文件劫持检测方法、设备及存储介质 | |
CN111538985A (zh) | Android应用运行环境检测方法及其装置 | |
CN106708550B (zh) | 一种共享对象库加载的方法及装置 | |
CN111931192B (zh) | rootkit检测方法、装置及电子设备 | |
CN117786666B (zh) | 功能代码的启动校验方法、装置、电子设备及存储介质 | |
CN117786666A (zh) | 功能代码的启动校验方法、装置、电子设备及存储介质 | |
CN116541847A (zh) | 一种应用程序的安全检测方法及装置 | |
CN113312623B (zh) | 访问控制中的进程检测方法、装置、电子设备和存储介质 | |
CN115659296A (zh) | 一种文件验证方法、装置、设备及可读存储介质 | |
JP4643201B2 (ja) | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム | |
CN114546420A (zh) | 一种软件远程安装保护卸载方法 | |
JP2018147444A (ja) | 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 | |
CN113342594A (zh) | 一种工控主机及其健康度动态评估方法 | |
US8527835B2 (en) | Method for secure data transfer | |
CN111767539A (zh) | 一种apk安全系统及安全校验方法 | |
CN110286913B (zh) | 核对代码包部署方法及装置 | |
CN109753799B (zh) | 一种Android应用程序防篡改的方法、系统及计算机存储介质 | |
CN113051564A (zh) | 应用程序的安全启动方法及相关设备 | |
CN114416517A (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 |