[发明专利]插件化代码的混淆方法、装置、电子设备和存储介质有效
申请号: | 201910794824.3 | 申请日: | 2019-08-27 |
公开(公告)号: | CN110597516B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 崔梓超 | 申请(专利权)人: | 贝壳技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 杜志敏;宋志强 |
地址: | 300280 天津市经济技术开发区南*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 插件 代码 混淆 方法 装置 电子设备 存储 介质 | ||
本申请提供了一种插件化代码的混淆方法、装置、电子设备和存储介质,所述方法包括:在应用程序APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;将所述多个插件的所述第二插件包打包生成所述APP的安装包。该方法能够使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。
技术领域
本发明涉及计算机技术领域,特别涉及一种插件化代码的混淆方法、装置、电子设备和存储介质。
背景技术
代码在插件化拆分之后分成多个部分,所有的函数库代码宿主和插件共用,每个插件内部装载业务代码。
现有的插件化代码的混淆方法是在程序源代码的编译完成后,对全部的代码进行依赖分析,依次进行:对冗余代码的压缩、优化执行效率不高的代码,在进行完上面两步之后再对最终的代码进行乱码处理并生成便于开发者回溯源代码的索引文件。
上述实现插件化代码的混淆方式是基于应用程序(APP)整体代码进行,而APP插件化分拆之后,代码被分成多个工程甚至多个小APP,无法进行代码的依赖分析,使用上述方案无法保证代码在多个小APP内相同,就会发生插件甲中调用插件乙的A方法,而插件乙中A方法已经被乱码成B方法,调用不到导致程序崩溃。
发明内容
有鉴于此,本申请提供一种插件化代码的混淆方法、装置、电子设备和存储介质,能够使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。
为解决上述技术问题,本申请的技术方案是这样实现的:
在一个实施例中,提供了一种插件化代码的混淆方法,其特征在于,所述方法包括:
在APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
将所述多个插件的所述第二插件包打包生成所述APP的安装包。
其中,所述在所述插件内的代码进行编译过程中,所述方法进一步包括:
对混淆后的插件代码进行标记。
其中,所述针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,包括:
对标记为通用代码的文件使用同名的空文件替换。
其中,所述将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:
将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;
将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
在另一个实施例中,提供了一种插件化代码的混淆装置,所述装置包括:插件化单元、编译单元、反编译单元和生成单元;
所述插件化单元,用于APP插件化;
所述编译单元,用于在所述插件化单元进行APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
所述反编译单元,用于针对所述编译单元生成的所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贝壳技术有限公司,未经贝壳技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910794824.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种字节码插桩方法
- 下一篇:动态解析mat文件的方法及装置