CN113741875A - 一种拟态化程序执行装置、方法、电子设备及存储介质 - Google Patents
一种拟态化程序执行装置、方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113741875A CN113741875A CN202111074524.1A CN202111074524A CN113741875A CN 113741875 A CN113741875 A CN 113741875A CN 202111074524 A CN202111074524 A CN 202111074524A CN 113741875 A CN113741875 A CN 113741875A
- Authority
- CN
- China
- Prior art keywords
- program
- mimicry
- variant
- code
- uniform
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 115
- 238000004088 simulation Methods 0.000 claims description 24
- 239000002243 precursor Substances 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009385 viral infection Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- 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/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种拟态化程序执行装置、方法、电子设备及存储介质,装置包括编译器和OS模块,编译器对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的非一致性变量作为处理函数的参数传递至OS模块,OS模块对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
Description
技术领域
本发明涉及计算机技术领域,更具体的说,涉及一种拟态化程序执行装置、方法、电子设备及存储介质。
背景技术
随着网络技术的不断发展和进步,人们在享受网络技术带来便利的同时,也越来越重视网络安全。目前,攻击者可以通过软件的设计缺陷或后门对软件进行攻击,进而导致软件用户的隐私泄露、系统感染病毒等严重后果。由于技术人员在实际设计软件时无法彻底避免设计缺陷或完全杜绝后门,因此,如何增加攻击者利用设计缺陷或后门进行攻击的难度,成为相关技术人员在设计软件时需要思考的问题。
目前,技术人员可以基于网络空间拟态防御理论,通过搭建异构等价的拟态化程序执行架构,并在该架构中设计软件,使得设计出的软件具有很强的动态性、异构性和随机性等不确定性特点,从而提升软件的抗攻击能力。然而,拟态化程序执行架构在运行过程中,由于异构等价的边界不清晰,容易导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果,即发生了误报。
发明内容
有鉴于此,本发明公开一种拟态化程序执行装置、方法、电子设备及存储介质,通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
一种拟态化程序执行装置,包括:
编译器,用于对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数传递至所述OS模块,其中,所述处理函数包括:前驱函数和后驱函数;
OS模块,用于对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
可选的,所述编译器包括:编译器前端和编译器后端;
所述编译器前端,用于对所述非一致性变量进行识别,并将识别出的所述非一致性变量的代码位置信息传递至所述编译器后端;
所述编译器后端,用于根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为处理函数的参数传递至所述OS模块。
可选的,所述编译器前端具体用于:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中,供所述编译器后端使用。
可选的,所述编译器后端具体用于:
查找到所述预设符号表中的所述代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
可选的,所述OS模块用于作为操作系统内核的动态加载模块,在所述拟态化程序执行之前加载到所述操作系统内核。
可选的,所述编译器后端具体用于:采用所述目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序同步信号;
所述OS模块具体用于:接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被所述OS模块中断时,释放中断,使所有变体程序继续执行下一条指令。
可选的,所述编译器后端具体还用于:当所述拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序执行结果;
所述OS模块具体还用于:接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被所述OS模块中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
一种拟态化程序执行方法,包括:
对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,其中,所述处理函数包括:前驱函数和后驱函数;
对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
可选的,所述对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,具体包括:
对所述非一致性变量进行识别,得到所述非一致性变量的代码位置信息;
根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为所述处理函数的参数。
可选的,所述对所述非一致性变量进行识别,得到所述非一致性变量的代码位置信息,具体包括:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中。
可选的,所述根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为所述处理函数的参数,具体包括:
查找到所述预设符号表中的所述代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
可选的,还包括:
采用所述目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序发送拟态化程序同步信号;
接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被中断时,释放中断,使所有变体程序继续执行下一条指令。
可选的,还包括:
当所述拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序发送拟态化程序执行结果;
接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
一种电子设备,所述电子设备包括存储器和处理器;
所述存储器用于存储至少一个指令;
所述处理器用于执行所述至少一个指令以实现如上述所述的拟态化程序执行方法。
一种计算机可读存储介质,所述计算机可读存储介质存储至少一个指令,所述至少一个指令被处理器执行时实现如上述所述的拟态化程序执行方法。
从上述的技术方案可知,本发明公开了一种拟态化程序执行装置、方法、电子设备及存储介质,该装置包括编译器和OS模块,编译器对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的非一致性变量作为处理函数的参数传递至OS模块,处理函数包括前驱函数和后驱函数,OS模块对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种拟态化程序执行装置的结构示意图;
图2为本发明实施例公开的一种编译器的结构示意图;
图3为本发明实施例公开的一种拟态化程序执行方法流程图;
图4为本发明实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种拟态化程序执行装置、方法、电子设备及存储介质,装置包括编译器10和OS模块20,编译器10对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的非一致性变量作为处理函数的参数传递至OS模块20,处理函数包括前驱函数和后驱函数,OS模块20对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
参见图1,本发明实施例公开的一种拟态化程序执行装置的结构示意图,该装置包括:编译器10和OS模块20。
其中,OS是操作系统的英文简称,英文全称为:Operating System,OS是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
本发明中,编译器10,用于对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数传递至所述OS模块20。
其中,所述处理函数包括:前驱函数和后驱函数。
需要说明的是,编译器是一种将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。编译器的主要工作流程为:源代码(source code)→预处理器(preprocessor)→编译器(compiler)→目标代码(object code)→链接器(Linker)→可执行程序(executables)
非一致性变量指的是拟态化程序运行过程中,导致多个变体程序之间不一致且会导致变体程序输出结果不一致的变量,比如随机数等。
OS模块20,用于对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。
本实施例中,OS模块20用于作为操作系统内核的动态加载模块,在所述拟态化程序执行之前加载到操作系统内核。
在实际应用中,OS模块20可以为Linux操作系统内核可加载模块,也可以为基于其他类型操作系统开发的内核模块。
综上可知,本发明公开了一种拟态化程序执行装置,该装置包括编译器10和OS模块20,编译器10对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的非一致性变量作为处理函数的参数传递至OS模块20,处理函数包括前驱函数和后驱函数,OS模块20对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
为进一步优化上述实施例,参见图2,本发明实施例公开的一种编译器的结构示意图,编译器10包括:编译器前端101和编译器后端102。
编译器前端101,用于对非一致性变量进行识别,并将识别出的所述非一致性变量的代码位置信息传递至所述编译器后端;
其中,编译器前端101具体可以用于:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中,供所述编译器后端102使用。
在实际应用中,编译制导语句符号可以为C代码#pragm mimic形式,也可以为其他编程语言代码自定义的编译制导语句。
编译器后端102,用于根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为处理函数的参数传递至所述OS模块。
其中,编译器后端102具体可以用于:
查找到预设符号表中的代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
为进一步优化上述实施例,编译器后端102具体还可以用于:采用目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序同步信号;
OS模块20具体可以用于:接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被所述OS模块20中断时,释放中断,使所有变体程序继续执行下一条指令。
为进一步优化上述实施例,编译器后端102具体还用于:当拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序执行结果;
OS模块20具体还用于:接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被所述OS模块中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
综上可知,本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
与上述方法实施例相对应,本发明还公开了一种拟态化程序执行方法。
参见图3,本发明实施例公开的一种拟态化程序执行方法的流程图,该方法包括:
步骤S201、对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数;
其中,所述处理函数包括:前驱函数和后驱函数。
步骤S202、对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
综上可知,本发明公开了一种拟态化程序执行方法,对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的非一致性变量作为处理函数的参数,对拟态化程序执行过程中不同变体程序的非一致性变量进行同步。本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
为进一步优化上述实施例,步骤S201具体可以包括:
对所述非一致性变量进行识别,得到所述非一致性变量的代码位置信息;
根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为所述处理函数的参数。
其中,得到非一致性变量的代码位置信息的过程具体可以包括:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中。
在实际应用中,编译制导语句符号可以为C代码#pragm mimic形式,也可以为其他编程语言代码自定义的编译制导语句。
为进一步优化上述实施例,根据非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为处理函数的参数的过程,具体可以包括:
查找到所述预设符号表中的所述代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
为进一步优化上述实施例,拟态化程序执行方法还可以包括:
采用所述目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序发送拟态化程序同步信号;
接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被中断时,释放中断,使所有变体程序继续执行下一条指令。
为进一步优化上述实施例,拟态化程序执行方法还可以包括:
当所述拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序发送拟态化程序执行结果;
接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
综上可知,本发明通过在拟态化程序执行过程中对不同变体程序的非一致性变量进行同步,有效避免了因异构等价的边界不清晰,导致部分不需要异构的变量和代码在拟态化程序正常运行过程中出现异构的输出结果的情况,进而减小了拟态化程序执行架构的误报率,使得拟态化程序执行架构能够兼容更多的上层应用软件,从而提高了拟态化程序执行架构中软件的抗攻击能力。
与上述实施例相对应,如图4所示,本发明还提供了一种电子设备,电子设备可以包括:处理器1和存储器2;
其中,处理器1和存储器2通过通信总线3完成相互间的通信;
处理器1,用于执行计算机程序;
存储器2,用于存放计算机程序;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器2可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,处理器执行计算机程序实现如下功能:
对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,其中,所述处理函数包括:前驱函数和后驱函数;
对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
与上述实施例相对应,本发明还公开了一种计算机可读存储介质,计算机可读存储介质存储至少一个指令,所述至少一个指令被处理器执行时实现如下功能:
对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,其中,所述处理函数包括:前驱函数和后驱函数;
对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种拟态化程序执行装置,其特征在于,包括:
编译器,用于对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数传递至所述OS模块,其中,所述处理函数包括:前驱函数和后驱函数;
OS模块,用于对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
2.根据权利要求1所述的拟态化程序执行装置,其特征在于,所述编译器包括:编译器前端和编译器后端;
所述编译器前端,用于对所述非一致性变量进行识别,并将识别出的所述非一致性变量的代码位置信息传递至所述编译器后端;
所述编译器后端,用于根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为处理函数的参数传递至所述OS模块。
3.根据权利要求2所述的拟态化程序执行装置,其特征在于,所述编译器前端具体用于:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中,供所述编译器后端使用。
4.根据权利要求2所述的拟态化程序执行装置,其特征在于,所述编译器后端具体用于:
查找到所述预设符号表中的所述代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
5.根据权利要求1所述的拟态化程序执行装置,其特征在于,所述OS模块用于作为操作系统内核的动态加载模块,在所述拟态化程序执行之前加载到所述操作系统内核。
6.根据权利要求2所述的拟态化程序执行装置,其特征在于,
所述编译器后端具体用于:采用所述目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序同步信号;
所述OS模块具体用于:接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被所述OS模块中断时,释放中断,使所有变体程序继续执行下一条指令。
7.根据权利要求6所述的拟态化程序执行装置,其特征在于,
所述编译器后端具体还用于:当所述拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序向所述OS模块发送拟态化程序执行结果;
所述OS模块具体还用于:接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被所述OS模块中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
8.一种拟态化程序执行方法,其特征在于,包括:
对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,其中,所述处理函数包括:前驱函数和后驱函数;
对拟态化程序执行过程中不同变体程序的所述非一致性变量进行同步。
9.根据权利要求8所述的拟态化程序执行方法,其特征在于,所述对程序源代码中的非一致性变量进行识别以及插桩处理函数,并将识别出的所述非一致性变量作为处理函数的参数,具体包括:
对所述非一致性变量进行识别,得到所述非一致性变量的代码位置信息;
根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为所述处理函数的参数。
10.根据权利要求9所述的拟态化程序执行方法,其特征在于,所述对所述非一致性变量进行识别,得到所述非一致性变量的代码位置信息,具体包括:
获取编译制导语句添加指令,根据所述编译制导语句添加指令在所述程序源代码的所述非一致性变量处添加编译制导语句,得到目标程序源代码;
将所述目标程序源代码映射为初始中间代码;
根据所述初始中间代码中的编译制导语句符号,对所述初始中间代码的变量关键字进行识别,查找到非一致性变量为预设变量的目标指令,并将所述目标指令对应的代码位置信息添加到预设符号表中。
11.根据权利要求9所述的拟态化程序执行方法,其特征在于,所述根据所述非一致性变量的代码位置信息插桩处理函数得到目标代码,并将所述非一致性变量作为所述处理函数的参数,具体包括:
查找到所述预设符号表中的所述代码位置信息,在所述代码位置信息前面插装所述前驱函数,在所述代码位置信息的后面插装所述后驱函数,得到所述目标代码。
12.根据权利要求9所述的拟态化程序执行方法,其特征在于,还包括:
采用所述目标代码运行所述拟态化程序,当所述拟态化程序中的变体程序运行到所述前驱函数时,由所述拟态化程序中的变体程序发送拟态化程序同步信号;
接收所述拟态化程序同步信号,并中断发送所述拟态化程序同步信号的变体程序,当所有变体程序均运行到所述前驱函数并被中断时,释放中断,使所有变体程序继续执行下一条指令。
13.根据权利要求12所述的拟态化程序执行方法,其特征在于,还包括:
当所述拟态化程序的变体程序执行完所述下一条指令,运行到所述后驱函数时,由所述拟态化程序中的变体程序发送拟态化程序执行结果;
接收所述拟态化程序执行结果,并中断发送所述拟态化程序执行结果的变体程序,当所有变体程序均运行到所述后驱函数并被中断时,从所有变体程序的拟态化执行结果中随机选择一个拟态化执行结果作为目标拟态化执行结果,将所述目标拟态化执行结果同步发送至所有变体程序,释放中断,使所述拟态化程序继续运行。
14.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器用于存储至少一个指令;
所述处理器用于执行所述至少一个指令以实现如权利要求8~13任意一项所述的拟态化程序执行方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储至少一个指令,所述至少一个指令被处理器执行时实现如权利要求8~13任意一项所述的拟态化程序执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074524.1A CN113741875B (zh) | 2021-09-14 | 2021-09-14 | 一种拟态化程序执行装置、方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074524.1A CN113741875B (zh) | 2021-09-14 | 2021-09-14 | 一种拟态化程序执行装置、方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113741875A true CN113741875A (zh) | 2021-12-03 |
CN113741875B CN113741875B (zh) | 2024-05-03 |
Family
ID=78738660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111074524.1A Active CN113741875B (zh) | 2021-09-14 | 2021-09-14 | 一种拟态化程序执行装置、方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741875B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160196123A1 (en) * | 2015-01-07 | 2016-07-07 | International Business Machines Corporation | Binary file for computer program having multiple executable code variants for a function that are executable on a same processor architecture |
CN107092518A (zh) * | 2017-04-17 | 2017-08-25 | 上海红神信息技术有限公司 | 一种保护拟态防御系统软件层安全的编译方法 |
CN109726561A (zh) * | 2019-01-02 | 2019-05-07 | 重庆汇锋金鸿科技有限公司 | 基于拟态计算的处理装置及数据处理方法 |
CN111475152A (zh) * | 2020-04-14 | 2020-07-31 | 中国人民解放军战略支援部队信息工程大学 | 一种代码处理方法及装置 |
CN111859391A (zh) * | 2020-07-09 | 2020-10-30 | 河南信大网御科技有限公司 | 可信执行体、拟态逃逸快速识别方法及拟态防御架构 |
CN111858091A (zh) * | 2020-07-06 | 2020-10-30 | 河南信大网御科技有限公司 | 基于进程级的拟态架构和拟态防御方法 |
CN112839036A (zh) * | 2020-12-30 | 2021-05-25 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态防御理论的软件运行环境生成方法及系统 |
CN113282661A (zh) * | 2021-05-31 | 2021-08-20 | 河南信大网御科技有限公司 | 异构执行体可信配置同步方法及系统 |
-
2021
- 2021-09-14 CN CN202111074524.1A patent/CN113741875B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160196123A1 (en) * | 2015-01-07 | 2016-07-07 | International Business Machines Corporation | Binary file for computer program having multiple executable code variants for a function that are executable on a same processor architecture |
CN107092518A (zh) * | 2017-04-17 | 2017-08-25 | 上海红神信息技术有限公司 | 一种保护拟态防御系统软件层安全的编译方法 |
CN109726561A (zh) * | 2019-01-02 | 2019-05-07 | 重庆汇锋金鸿科技有限公司 | 基于拟态计算的处理装置及数据处理方法 |
CN111475152A (zh) * | 2020-04-14 | 2020-07-31 | 中国人民解放军战略支援部队信息工程大学 | 一种代码处理方法及装置 |
CN111858091A (zh) * | 2020-07-06 | 2020-10-30 | 河南信大网御科技有限公司 | 基于进程级的拟态架构和拟态防御方法 |
CN111859391A (zh) * | 2020-07-09 | 2020-10-30 | 河南信大网御科技有限公司 | 可信执行体、拟态逃逸快速识别方法及拟态防御架构 |
CN112839036A (zh) * | 2020-12-30 | 2021-05-25 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态防御理论的软件运行环境生成方法及系统 |
CN113282661A (zh) * | 2021-05-31 | 2021-08-20 | 河南信大网御科技有限公司 | 异构执行体可信配置同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113741875B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218322B (zh) | 一种拟态防御方法、装置及系统 | |
KR101872141B1 (ko) | 확장자가 애플리케이션의 기능을 다른 애플리케이션으로 확장하게 하는 고정적 확장 포인트 | |
US10120775B2 (en) | Mobile development platform in a cloud based architecture | |
JP2019536153A (ja) | スマート・コントラクト処理方法及び装置 | |
US10536476B2 (en) | Realtime triggering framework | |
US10540499B2 (en) | Method for monitoring the security of a virtual machine in a cloud computing architecture | |
US11074000B2 (en) | Non-transitory computer-readable storage medium, and information processing device and method | |
US11418320B2 (en) | Blockchain-based data processing methods, devices, and media | |
EP3171275B1 (en) | Transparent process interception | |
JP6984710B2 (ja) | コンピュータ装置およびメモリ管理方法 | |
CN104036019A (zh) | 网页链接的开启方法及装置 | |
CN111565204B (zh) | 区块链运行方法、装置、设备及存储介质 | |
EP3869377B1 (en) | Method and apparatus for data processing based on smart contract, device and storage medium | |
KR100710032B1 (ko) | 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템 | |
CN109684795B (zh) | 应用程序反调试的方法、装置及电子设备 | |
US10372472B2 (en) | System, method, and computer program product for conditionally preventing use of hardware virtualization | |
KR20230065226A (ko) | 웹 어플리케이션 서버, 사용자 요청 처리 방법 및 통합 요청 처리 방법 | |
US20170031740A1 (en) | Naming of nodes in net framework | |
Babaei et al. | Efficient reordering and replay of execution traces of distributed reactive systems in the context of model-driven development | |
CN113741875A (zh) | 一种拟态化程序执行装置、方法、电子设备及存储介质 | |
US9430196B2 (en) | Message inlining | |
EP3035223A1 (en) | Method and control system for controlling an execution of a software application on an execution platform | |
US20190065163A1 (en) | Partial redundancy elimination with a fixed number of temporaries | |
CN112214287B (zh) | 应用软件的业务控制方法及装置、电子设备 | |
KR20180065535A (ko) | 커널 루트킷 탐지 시스템 및 방법 |
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 | ||
GR01 | Patent grant |