[发明专利]基于虚拟化技术的动态库下发方法、存储介质及智能终端有效
申请号: | 201910221936.X | 申请日: | 2019-03-22 |
公开(公告)号: | CN109960511B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 肖巍;廖兴龙;方令 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/65;G06F9/455 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟 技术 动态 下发 方法 存储 介质 智能 终端 | ||
1.一种基于虚拟化技术的动态库下发方法,其特征在于,所述方法包括:
指定源文件中需要保护的函数,并修改需要保护的函数的源代码;
通过预先设置的LLVM编译器对所述源代码进行编译,对需要保护的函数进行虚拟化处理,生成新的虚拟机字节码,并保存至字节码索引表中;
抽取更新后的字节码信息生成动态库,并将生成的动态库以及对应的字节码版本信息上传至云端服务器;
将所述动态库重新签名打包,生成应用安装包,并上传至应用商城中;
当从应用商城中下载与安装所述应用安装包并启动后,从云端服务器中获取包含字节码版本信息,并对本地服务器中的字节码进行替换,完成虚拟机字节码动态更新;
所述通过预先设置的LLVM编译器对所述源代码进行编译,对需要保护的函数进行虚拟化处理,生成新的虚拟机字节码,并保存至字节码索引表中的步骤,包括:
启动LLVM编译器扫描需要保护的函数,并通过逐条指令遍历需要保护的函数,将需要保护额函数中的全局变量和全局函数的地址保存到全局地址表中;
如果需要保护的函数中需要调用本地函数,则根据调用的本地函数的返回值和参数类型的不同,创建包装函数,并将包装函数的地址保存到包装函数表中;
逐条指令遍历需要保护的函数,将LLVM IR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中。
2.根据权利要求1所述的基于虚拟化技术的动态库下发方法,其特征在于,所述指定源文件中需要保护的函数,并修改需要保护的函数的源代码的步骤包括:
确定需要保护的函数,并在需要保护的函数原型后面增加标识符;
修改需要保护的函数的C/C++源代码。
3.根据权利要求1所述的基于虚拟化技术的动态库下发方法,其特征在于,所述通过预先设置的LLVM编译器对所述源代码进行编译,对需要保护的函数进行虚拟化处理,生成新的虚拟机字节码,并保存至字节码索引表中的步骤,还包括:
记录每个需要保护的函数在字节码表中的起始位置,将需要保护的函数的序号和在字节码表中的位置保存到字节码索引表中;
根据需要保护的函数参数类型和返回值的不同,动态创建虚拟机桥接函数,并将需要保护的函数的函数体抽空,替换成虚拟机桥接函数的调用。
4.根据权利要求1所述的基于虚拟化技术的动态库下发方法,其特征在于,所述动态库包括第一共享库以及第二共享库;所述第一共享库为原始的中间表示模块链接成的动态库;所述第二共享库为需要保护的函数在虚拟化处理后新建的中间表示模块所链接成的动态库。
5.根据权利要求1所述的基于虚拟化技术的动态库下发方法,其特征在于,所述抽取更新后的字节码信息生成动态库,并将生成的动态库以及对应的字节码版本信息上传至云端服务器的步骤,包括:
当所有的需要保护的函数完成虚拟化处理后,新建一中间表示模块,记录为第二中间表示模块,并将原始的中间表示记录为第一中间表示模块;
将字节码表、字节码索引表、全局地址表、包装函数表、桥接函数,包装函数、以及全局地址表中引用到的声明或定义转移到第二中间表示模块中,所述第一中间表示模块中保留需要保护的函数的声明;
将所有的源文件对应的第一中间表示模块链接成第一共享库,将所有的源文件对应的第二中间表示模块链接成第二共享库;
然后再将生成的第二共享库以及对应的字节码版本信息上传至云端服务器。
6.根据权利要求1所述的基于虚拟化技术的动态库下发方法,其特征在于,所述将所述动态库重新签名打包,生成应用安装包,并上传至应用商城中的步骤中,还包括:
将生成的第一共享库以及第二共享库,连同原始的动态库重新进行签名,并打包生成应用安装包,上传至应用商店。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910221936.X/1.html,转载请声明来源钻瓜专利网。