System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 程序代码的异构方法、异构装置、电子设备及存储介质制造方法及图纸_技高网

程序代码的异构方法、异构装置、电子设备及存储介质制造方法及图纸

技术编号:40662615 阅读:8 留言:0更新日期:2024-03-18 18:55
本发明专利技术提供了一种程序代码的异构方法、异构装置、电子设备及存储介质,属于软件安全技术领域。所述异构方法包括:获取程序代码易被突破的目标攻击面,根据目标攻击面获取需要异构处理的关键函数;生成程序代码的抽象语法树,根据抽象语法树获取关键函数的树状结构信息,根据关键函数的树状结构信息将对应关键函数划分为多个基本块;获取基本块之间的逻辑关系;使用动态不透明谓词混淆基本块;构建混淆后基本块的后继基本块的克隆体,对克隆体的指令进行混淆,并将进行指令混淆后的克隆体与混淆后的基本块建立联系。本发明专利技术能够主动防御未知攻击行为,提高了程序代码的安全性和可靠性。

【技术实现步骤摘要】

本专利技术属于软件安全,具体涉及一种程序代码的异构方法、异构装置、电子设备及存储介质


技术介绍

1、随着信息技术的飞速发展,计算机技术在数据产生、交换以及处理等过程中起到了日益重要的作用,同时也面临着越来越严重的安全威胁,其中逆向工程是程序被攻击的主要途径。随着逆向工程技术的发展,出现了许多针对逆向工程的工具,诸多新技术也被用于逆向工程中。逆向工程的快速发展给软件保护带来了巨大的挑战,攻击者通过包括反汇编、反编译以及动态单步调试等手段,对源程序代码的工作原理和行为规律进行深入的认识和研究,对源程序代码进行结构分析和功能分析,探究程序内部的运行逻辑,不难得到源程序中的漏洞,找到便利的攻击途径,获得想要的信息。

2、保护程序并防御攻击的主要办法是增加攻击难度,传统软件安全领域保障软件安全的方式极其被动,往往是在漏洞被发现后才展开被动防御。

3、因此,如何提高程序代码的安全性和可靠性是一项亟待解决的问题。


技术实现思路

1、本专利技术所要解决的技术问题是,针对现有技术的不足,提供一种程序代码的异构方法、异构装置、电子设备及存储介质。

2、为解决上述技术问题,本专利技术所采用的技术方案是:

3、一种程序代码的异构方法,包括:获取程序代码易被突破的目标攻击面,根据目标攻击面获取需要异构处理的关键函数;生成程序代码的抽象语法树,根据抽象语法树获取关键函数的树状结构信息,根据关键函数的树状结构信息将对应关键函数划分为多个基本块;获取基本块之间的逻辑关系;使用动态不透明谓词混淆基本块;构建混淆后基本块的后继基本块的克隆体,对克隆体的指令进行混淆,并将进行指令混淆后的克隆体与混淆后的基本块建立联系。

4、进一步的,根据目标攻击面获取需要异构处理的关键函数的方法包括:根据程序代码与目标攻击面的系统资源的联系,通过目标攻击面的系统资源反查出程序对应的功能模块及对应的源码,依此识别出程序代码中需要异构处理的关键函数。

5、进一步的,获取基本块之间的逻辑关系的方法包括:基于关键函数的树状结构信息和程序代码对基本块进行逻辑关系、拓扑结构分析,获取基本块之间的逻辑关系;所述逻辑关系包括执行流程、数据依赖、继承引用。

6、进一步的,使用动态不透明谓词混淆基本块的方法包括:根据基本块之间的逻辑关系获取目标基本块的后继基本块的个数,当目标基本块只有一个后继基本块时,使用动态不透明谓词构建混淆块,并将所构建的混淆块插入到目标基本块的尾部。

7、进一步的,使用动态不透明谓词构建混淆块的方法包括:初始化不透明谓词,从待插入目标基本块中随机选择一个变量与不透明谓词绑定,根据不透明谓词的运算结果确定后续跳转路径。

8、进一步的,对克隆体的指令进行混淆的方法包括:将克隆体中指令打乱顺序,并按照指令的原始跳转规则构造不透明谓词。

9、进一步的,对克隆体的指令进行混淆的方法包括:使用语义相同但句法不同的指令替换原指令。

10、一种程序代码的异构装置,包括识别单元、划分单元、分析单元和混淆单元;所述识别单元,用于获取程序代码易被突破的目标攻击面,用于根据目标攻击面获取需要异构化的关键函数;所述划分单元,用于生成程序代码的抽象语法树,用于根据抽象语法树获取关键函数的树状结构信息,用于根据关键函数的树状结构信息将该关键函数划分为多个基本块;所述分析单元,用于获取基本块之间的逻辑关系;所述混淆单元,用于使用动态不透明谓词混淆基本块,用于对混淆后基本块的后继基本块的克隆体进行混淆,用于将进行指令混淆后的克隆体与混淆后的基本块建立联系。进一步的,所述识别单元包括系统资源模块和关键函数模块;所述系统资源模块用于获取程序代码与目标攻击面的系统资源的联系;所述关键函数模块用于通过目标攻击面的系统资源反查出程序对应的功能模块及对应的源码,用于识别出程序代码中需要异构处理的关键函数。

11、进一步的,所述分析单元包括逻辑关系模块;所述逻辑关系模块用于基于关键函数的树状结构信息和程序代码对基本块进行逻辑关系、拓扑结构分析,用于获取基本块之间的逻辑关系;所述逻辑关系包括执行流程、数据依赖、继承引用。

12、进一步的,所述混淆单元包括基本块混淆模块;所述基本块混淆模块用于根据基本块之间的逻辑关系获取目标基本块的后继基本块的个数,用于当目标基本块只有一个后继基本块时使用动态不透明谓词构建混淆块,用于将所构建的混淆块插入到目标基本块的尾部。

13、进一步的,所述基本块混淆模块包括混淆块构建模块;所述混淆块构建模块用于初始化不透明谓词,用于从待插入目标基本块中随机选择一个变量与不透明谓词绑定,用于根据不透明谓词的运算结果确定后续跳转路径。

14、进一步的,所述混淆单元还包括克隆体混淆模块;所述克隆体混淆模块用于将克隆体中指令打乱顺序,并按照指令的原始跳转规则构造不透明谓词;所述克隆体混淆模块还用于使用语义相同但句法不同的指令替换原指令。

15、一种电子设备,包括处理器和存储器;所述存储器用于存储可执行指令,所述处理器用于执行所述指令,以实现所述的异构方法。

16、一种计算机可读存储介质,所述可读存储介质中存储有指令,当所述指令被执行时,实现所述的异构方法。

17、与现有技术相比,本专利技术有益效果如下:

18、本专利技术首先基于攻击面思想获取程序代码需要异构化的关键函数,对程序代码进行完整的词法分析和语法分析,提取出关键函数信息,并将关键函数划分为多个基本块;然后基于关键函数信息对基本块进行分析,分析得到不同基本块之间的逻辑关系;使用动态不透明谓词混淆基本块,再构建后继基本块的克隆体,通过对克隆体的混淆来模糊基本块间的依赖关系。因此,本专利技术能够主动防御未知攻击行为,提高了程序代码的安全性和可靠性。

19、本专利技术基于攻击面思想,从攻击者的角度出发,识别程序代码中最重要、最敏感的部分,从而更有针对性的进行混淆和保护;本专利技术对程序代码进行完整的词法分析和语法分析,从而更准确地提取关键函数信息并将关键函数划分为多个基本块;通过获取不同基本块之间的逻辑关系,能够为混淆和克隆体构建提供更有针对性的信息。通过使用动态不透明谓词混淆,即增加代码的复杂性,又模糊了基本块之间的联系,使得代码在执行时表现出不可预测的行为,增加了逆向工程的难度,增强了程序的安全性。

本文档来自技高网...

【技术保护点】

1.一种程序代码的异构方法,其特征在于,包括:

2.根据权利要求1所述的程序代码的异构方法,其特征在于,根据目标攻击面获取需要异构处理的关键函数的方法包括:根据程序代码与目标攻击面的系统资源的联系,通过目标攻击面的系统资源反查出程序对应的功能模块及对应的源码,依此识别出程序代码中需要异构处理的关键函数。

3.根据权利要求1所述的程序代码的异构方法,其特征在于,获取基本块之间的逻辑关系的方法包括:基于关键函数的树状结构信息和程序代码对基本块进行逻辑关系、拓扑结构分析,获取基本块之间的逻辑关系;所述逻辑关系包括执行流程、数据依赖、继承引用。

4.根据权利要求1所述的程序代码的异构方法,其特征在于,使用动态不透明谓词混淆基本块的方法包括:根据基本块之间的逻辑关系获取目标基本块的后继基本块的个数,当目标基本块只有一个后继基本块时,使用动态不透明谓词构建混淆块,并将所构建的混淆块插入到目标基本块的尾部。

5.根据权利要求4所述的程序代码的异构方法,其特征在于,使用动态不透明谓词构建混淆块的方法包括:初始化不透明谓词,从待插入目标基本块中随机选择一个变量与不透明谓词绑定,根据不透明谓词的运算结果确定后续跳转路径。

6.根据权利要求1所述的程序代码的异构方法,其特征在于,对克隆体的指令进行混淆的方法包括:将克隆体中指令打乱顺序,并按照指令的原始跳转规则构造不透明谓词。

7.根据权利要求1所述的程序代码的异构方法,其特征在于,对克隆体的指令进行混淆的方法包括:使用语义相同但句法不同的指令替换原指令。

8.一种程序代码的异构装置,其特征在于,包括识别单元、划分单元、分析单元和混淆单元;

9.一种电子设备,其特征在于,包括处理器和存储器;所述存储器用于存储可执行指令,所述处理器用于执行所述指令,以实现权利要求1-7任一项所述的异构方法。

10.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述指令被执行时,实现权利要求1-7任一项所述的异构方法。

...

【技术特征摘要】

1.一种程序代码的异构方法,其特征在于,包括:

2.根据权利要求1所述的程序代码的异构方法,其特征在于,根据目标攻击面获取需要异构处理的关键函数的方法包括:根据程序代码与目标攻击面的系统资源的联系,通过目标攻击面的系统资源反查出程序对应的功能模块及对应的源码,依此识别出程序代码中需要异构处理的关键函数。

3.根据权利要求1所述的程序代码的异构方法,其特征在于,获取基本块之间的逻辑关系的方法包括:基于关键函数的树状结构信息和程序代码对基本块进行逻辑关系、拓扑结构分析,获取基本块之间的逻辑关系;所述逻辑关系包括执行流程、数据依赖、继承引用。

4.根据权利要求1所述的程序代码的异构方法,其特征在于,使用动态不透明谓词混淆基本块的方法包括:根据基本块之间的逻辑关系获取目标基本块的后继基本块的个数,当目标基本块只有一个后继基本块时,使用动态不透明谓词构建混淆块,并将所构建的混淆块插入到目标基本块的尾部。

5.根据权利要求4所述的程序代码的异构...

【专利技术属性】
技术研发人员:王丹张晓阮冲吴坡李斌杨文张江南宋彦楼韩伟王品卓李华普王子
申请(专利权)人:国网河南省电力公司电力科学研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1