一种嵌入式电力设备的固件代码保护方法及装置与流程

文档序号:35467886发布日期:2023-09-16 10:05阅读:42来源:国知局
一种嵌入式电力设备的固件代码保护方法及装置与流程

本技术涉及电力互联网安全加固,尤其涉及一种嵌入式电力设备的固件代码保护方法及装置。


背景技术:

1、电力互联网设备终端具备数量大、种类多的特点,且多为嵌入式系统,由于设备的计算能力、通信能力、存储能力等受限,复杂的安全技术通常无法直接应用。固件是专门为嵌入式设备定制的软件,是智能终端设备的核心,但固件的重要部分通常采用不安全的低级语言构建,这些语言携带的脆弱特征给固件埋下了各种安全隐患。

2、现在,尤其是针对固件,攻击者往往是采用逆向分析技术实施诸如:破解、篡改、恶意代码植入等恶意行为,这都将对电力互联网环境下智能终端设备造成巨大安全隐患。


技术实现思路

1、有鉴于此,本技术提供一种嵌入式电力设备的固件代码保护方法及装置,以指令虚拟化实现关键代码重构,将原生指令转化为自定义虚拟指令以实现对逆向分析的有效干扰,提高电力智能终端的固件安全水平,从而实现智能终端内嵌安全防护。

2、为了达到上述目的,本技术主要提供如下技术方案:

3、本技术第一方面提供了一种嵌入式电力设备的固件代码保护方法,该方法包括:

4、复制固件文件中的关键代码;

5、将所述关键代码经反编译转换为汇编指令;

6、将所述汇编指令进行虚拟化转换,得到目标字节码;

7、基于所述目标字节码,构建对应可获取到的自定义目标虚拟指令;

8、在运行所述固件文件的过程中,当程序执行至所述关键代码的起始处时,基于增加的一个重新定向执行流,跳转对所述目标虚拟指令进行解释执行。

9、本技术第一方面的一些变更实施方式中,在所述将所述关键代码经反编译转换为汇编指令之后,所述方法还包括:

10、在所述固件文件中增加多个区段,至少包括:第一区段,用于存储跳转地址表,所述跳转地址表用于存储字节码的值和虚拟指令地址之间的第一映射关系;第二区段,用于存储虚拟执行系统的配置信息;第三区段,用于存储将所述汇编指令进行虚拟化转换得到的字节码信息;第四区段,用于存储虚拟指令信息,包括:虚拟指令和虚拟地址之间的第二映射关系。

11、本技术第一方面的一些变更实施方式中,所述将所述汇编指令进行虚拟化转换,得到目标字节码,包括:

12、虚拟构建自定义字节码,作为目标字节码;

13、利用所述目标字节码替换所述汇编指令;

14、将所述目标字节码存储至所述第三区段内。

15、本技术第一方面的一些变更实施方式中,所述基于所述目标字节码,构建对应可获取到的自定义目标虚拟指令,包括:

16、自定义构建虚拟指令,作为目标虚拟指令;

17、为每个所述目标字节码,分配对应一个所述目标虚拟指令。

18、本技术第一方面的一些变更实施方式中,所述方法还包括:

19、获取所述目标字节码的值;

20、确定所述目标虚拟指令对应的目标虚拟指令地址;

21、建立所述目标字节码的值和所述目标虚拟指令地址之间的映射关系,存储至所述第一区段内;

22、将所述目标虚拟指令和所述目标虚拟指令对应的所述目标虚拟指令地址,存储至所述第四区段内。

23、本技术第一方面的一些变更实施方式中,所述在运行所述固件文件的过程中,当程序执行至所述关键代码的起始处时,基于增加的一个重新定向执行流,跳转对所述目标虚拟指令进行解释执行,包括:

24、当程序执行至所述关键代码的起始处时,基于所述重新定向执行流至获取所述第二区段内的所述虚拟执行系统的配置信息,以构建目标虚拟执行系统并初始化虚拟执行环境;

25、启动所述目标虚拟执行系统,从所述第三区段内存储的所述字节码信息中读取目标字节码;

26、基于所述目标字节码的值,从所述第一区段内存储的第一映射关系中获取所述目标字节码的值对应的目标虚拟指令地址;

27、基于所述目标虚拟指令地址,从所述第四区段内存储的第二映射关系中获取所述目标虚拟指令地址对应的目标虚拟指令;

28、通过嵌入的虚拟机,对所述目标虚拟指令进行解释执行。

29、本技术第二方面提供了一种嵌入式电力设备的固件代码保护装置,该装置包括:

30、复制单元,用于复制固件文件中的关键代码;

31、第一转换单元,用于将所述关键代码经反编译转换为汇编指令;

32、第二转换单元,用于将所述汇编指令进行虚拟化转换,得到目标字节码;

33、构建单元,用于基于所述目标字节码,构建对应可获取到的自定义目标虚拟指令;

34、执行单元,用于在运行所述固件文件的过程中,当程序执行至所述关键代码的起始处时,基于增加的一个重新定向执行流,跳转对所述目标虚拟指令进行解释执行。

35、本技术第二方面的一些变更实施方式中,在所述将所述关键代码经反编译转换为汇编指令之后,所述装置还包括:

36、设置单元,用于在所述固件文件中增加多个区段,至少包括:第一区段,用于存储跳转地址表,所述跳转地址表用于存储字节码的值和虚拟指令地址之间的第一映射关系;第二区段,用于存储虚拟执行系统的配置信息;第三区段,用于存储将所述汇编指令进行虚拟化转换得到的字节码信息;第四区段,用于存储虚拟指令信息,包括:虚拟指令和虚拟地址之间的第二映射关系。

37、本技术第二方面的一些变更实施方式中,所述第二转换单元还具体用于:

38、虚拟构建自定义字节码,作为目标字节码;

39、利用所述目标字节码替换所述汇编指令;

40、将所述目标字节码存储至所述第三区段内。

41、本技术第二方面的一些变更实施方式中,所述构建单元还具体用于:

42、自定义构建虚拟指令,作为目标虚拟指令;

43、为每个所述目标字节码,分配对应一个所述目标虚拟指令。

44、本技术第二方面的一些变更实施方式中,所述装置还包括:存储单元;

45、所述存储单元还具体用于:获取所述目标字节码的值;确定所述目标虚拟指令对应的目标虚拟指令地址;建立所述目标字节码的值和所述目标虚拟指令地址之间的映射关系,存储至所述第一区段内;将所述目标虚拟指令和所述目标虚拟指令对应的所述目标虚拟指令地址,存储至所述第四区段内。

46、本技术第二方面的一些变更实施方式中,所述执行单元还具体用于:

47、当程序执行至所述关键代码的起始处时,基于所述重新定向执行流至获取所述第二区段内的所述虚拟执行系统的配置信息,以构建目标虚拟执行系统并初始化虚拟执行环境;

48、启动所述目标虚拟执行系统,从所述第三区段内存储的所述字节码信息中读取目标字节码;

49、基于所述目标字节码的值,从所述第一区段内存储的第一映射关系中获取所述目标字节码的值对应的目标虚拟指令地址;

50、基于所述目标虚拟指令地址,从所述第四区段内存储的第二映射关系中获取所述目标虚拟指令地址对应的目标虚拟指令;

51、通过嵌入的虚拟机,对所述目标虚拟指令进行解释执行。

52、本技术第三方面提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上述的嵌入式电力设备的固件代码保护方法。

53、本技术第四方面提供了一种电子设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;

54、其中,所述处理器、所述存储器通过所述总线完成相互间的通信;

55、所述处理器用于调用所述存储器中的程序指令,以执行如上述的嵌入式电力设备的固件代码保护方法。

56、借由上述技术方案,本技术提供的技术方案至少具有下列优点:

57、本技术提供一种嵌入式电力设备的固件代码保护方法及装置,本技术复制固件文件中的关键代码,并将关键代码反编译转换为汇编指令,以及再将汇编指令进行虚拟化转换得到目标字节码,并且进一步的基于目标字节码再构建自定义的目标虚拟指令,从而通过指令虚拟化实现关键代码重构,这样在运行固件文件的过程中,当程序执行至原关键代码的起始处时,就可以增加基于一个重新定向执行流,跳转对目标虚拟指令进行解释执行了。如此应对于现有采用逆向分析技术进行的恶意行为,本技术在固件文件正常运行的情况下,能够将原生指令转化为自定义虚拟指令,通过重新定向执行流至虚拟执行系统中对目标虚拟指令执行解释,以实现对逆向分析的有效干扰,提高电力智能终端的固件安全水平,从而实现智能终端内嵌安全防护。

58、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1