可执行文件的文件生成方法和文件运行方法与流程
- 国知局
- 2024-09-14 14:32:23
本技术涉及信息安全领域,特别涉及一种可执行文件的文件生成方法、一种可执行文件的文件运行方法、一种可执行文件的文件生成装置、一种可执行文件的文件运行装置、一种电子设备、一种非瞬时计算机可读存储介质、以及一种计算机程序产品。
背景技术:
1、源代码中除了包括用于提供应用服务的可执行代码之外,还可以包括与可执行代码一起混编在源代码中的常量信息。其中,常量信息的信息明文内容可以间接地反应出实现应用服务所需要的一些技术关键信息,并且,这些技术关键信息是不希望被披露的,因此,为了避免这些技术关键信息通过剖析(profiling)常量信息而被恶意获取,可以对源代码进行全局混淆处理,以对常量信息进行信息安全保护。
2、对源代码的全局混淆处理可以提升对常量信息的获取难度,但是,常量信息仍然是以明文形态完整地常态混编在源代码中,因此,若采用诸如暴力枚举等逆向解混淆方式,仍然可以从全局混淆后的源代码中还原得到常量信息的全部信息明文内容和上下文关系。
3、从而,如何提升对源代码的常量信息的信息安全保护的可靠性,成为现有技术中有待解决的技术问题。
技术实现思路
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、基于本技术的上述实施例,可以将源代码的常量信息设置为常量大对象的对象拓扑形态,并且,可以利用对常量大对象加密得到的多层嵌套密文生成源代码的可执行文件。由于常量大对象的对象拓扑中的节点对象以对象密文的形态嵌套在多层嵌套密文中,因此,在可执行文件的运行过程中,常量大对象的对象拓扑中的节点对象表征的信息明文内容不会常态出现在内存中;而且,由于多层嵌套密文在可执行文件的运行过程中的解密还原方式被设定为内存生命周期受控的局部解密还原,因此,即便信息明文内容允许被解密还原在内存中,在可执行文件的运行过程中的任意时刻,内存中也只可能瞬态出现常量信息的局部明文,而不会导致常量信息以完整明文形态常态地出现在内存中。从而,通过避免常量信息以完整明文形态常态地出现在内存中,可以有助于提升对源代码的常量信息的信息安全保护的可靠性。
本文地址:https://www.jishuxx.com/zhuanli/20240914/294621.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表