[发明专利]一种代码生成方法、装置、电子设备及存储介质有效
申请号: | 202110973058.4 | 申请日: | 2021-08-24 |
公开(公告)号: | CN113656042B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 刘姗 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 生成 方法 装置 电子设备 存储 介质 | ||
本发明实施例提供了一种代码生成方法、装置、电子设备及存储介质,涉及信息安全技术领域,该方法应用于编译器,方法包括:获取应用程序的原始应用代码,以及获取用于对原始应用代码进行校验的原始校验代码;对原始应用代码进行预编译,得到第一原始代码,并对第一原始代码进行编译,得到第一中间代码;对原始校验代码进行预编译,得到第二原始代码,并对第二原始代码进行编译,得到第二中间代码;基于第一中间代码和第二中间代码,得到目标汇编代码;其中,目标汇编代码用于生成多段机器代码;多段机器代码用于生成对应的可执行文件。如此,能够避免原始应用代码丢失。
技术领域
本发明涉及信息安全技术领域,特别是涉及一种代码生成方法、装置、电子设备及存储介质。
背景技术
在应用程序的运行过程中,需要对应用程序中的代码,比如,用于验证用户信息的代码、用于验证证书信息的代码等进行校验,以确定上述代码是否被恶意篡改。
相关技术中,可以在应用程序的原始代码(可以称为原始应用代码)中插入原始校验代码,得到目标原始代码。然后,可以基于目标原始代码生成对应的可执行文件。
然而,相关技术中,在原始应用代码中插入原始校验代码,即,需要对原始应用代码进行修改,因此,可能导致原始应用代码丢失。
发明内容
本发明实施例的目的在于提供一种代码生成方法、装置、电子设备及存储介质,在一定程度上避免原始应用代码丢失。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种代码生成方法,所述方法应用与编译器,所述方法包括:
获取应用程序的原始应用代码,以及获取用于对所述原始应用代码进行校验的原始校验代码;
对所述原始应用代码进行预编译,得到第一原始代码,并对所述第一原始代码进行编译,得到第一中间代码;
对所述原始校验代码进行预编译,得到第二原始代码,并对所述第二原始代码进行编译,得到第二中间代码;
基于所述第一中间代码和第二中间代码,得到目标汇编代码;其中,所述目标汇编代码用于生成多段机器代码,所述多段机器代码用于生成对应的可执行文件。
可选的,所述基于所述第一中间代码和第二中间代码,得到目标汇编代码,包括:
在所述第二中间代码中插入免优化标识,作为第二免优化中间代码;
将所述第二免优化中间代码插入所述第一中间代码,得到第三中间代码;
对所述第三中间代码中未包含有免优化标识的部分进行优化,得到目标汇编代码。
可选的,所述基于所述第一中间代码和第二中间代码,得到目标汇编代码,包括:
对所述第一中间代码进行优化,得到第一优化中间代码;
将所述第二中间代码插入所述第一优化中间代码,得到目标汇编代码。
可选的,所述编译器包含用于获取待优化代码的第一接口,以及用于获取免优化代码的第二接口;
所述获取应用程序的原始应用代码,以及获取用于对所述原始应用代码进行校验的原始校验代码,包括:
通过所述第一接口获取所述应用程序的原始应用代码,以及通过所述第二接口获取用于对所述原始应用代码进行校验的原始校验代码。
可选的,所述原始校验代码包括:所述原始应用代码包含的各个子原始应用代码各自对应的校验代码;各个子原始应用代码中至少存在两个具有重叠部分的子原始应用代码。
在本发明实施的第二方面,还提供了一种代码生成装置,所述装置应用于编译器,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110973058.4/2.html,转载请声明来源钻瓜专利网。