[发明专利]基于虚拟化技术的动态库下发方法、存储介质及智能终端有效
申请号: | 201910221936.X | 申请日: | 2019-03-22 |
公开(公告)号: | CN109960511B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 肖巍;廖兴龙;方令 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/65;G06F9/455 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟 技术 动态 下发 方法 存储 介质 智能 终端 | ||
本发明公开了基于虚拟化技术的动态库下发方法、存储介质及智能终端,方法包括:指定源文件中需要保护的函数,并修改其源代码;通过LLVM编译器对源代码进行编译,进行虚拟化处理,生成新的虚拟机字节码,并保存;抽取更新后的字节码信息生成动态库,并将生成的动态库以及对应的字节码版本信息上传至云端服务器;将动态库重新签名打包,生成应用安装包,并上传至应用商城中;当下载安装所述应用安装包并启动后,获取字节码版本信息,并对本地服务器中的字节码进行替换,完成虚拟机字节码动态更新。本发明对虚拟机字节码的动态更新,并通过云端下发给对应的APP,改善了现有的虚拟机字节码固定不变的问题,加强了虚拟机保护的持续强度及时间。
技术领域
本发明涉及互联网技术领域,尤其涉及的是一种基于虚拟化技术的动态库下发方法、存储介质及智能终端。
背景技术
虚拟机保护技术是移动信息安全领域一种新的软件保护技术,其实现原理是:定义一套指令集,将要被保护的源代码翻译为人类难于理解的虚拟机字节码,在程序运行时再由虚拟机解释器对这些字节码进行解释执行。
市场上现有的虚拟机保护机术,其生成的虚拟机字节码一般是固定不变的,虽然破解难度相比之前大了一些,但是由于字节码固定不变,如果有足够的时间和耐心,仍然是可以被破解的,因此其保护效果持续的强度和时间相对有限。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于虚拟化技术的动态库下发方法、存储介质及智能终端,旨在解决现有技术中虚拟机字节码是固定不变,从而导致虚拟机保护的效果以及实现有限的问题。
本发明解决技术问题所采用的技术方案如下:
一种基于虚拟化技术的动态库下发方法,其中,所述方法包括:
指定源文件中需要保护的函数,并修改需要保护的函数的源代码;
通过预先设置的LLVM编译器对所述源代码进行编译,对需要保护的函数进行虚拟化处理,生成新的虚拟机字节码,并保存至字节码索引表中;
抽取更新后的字节码信息生成动态库,并将生成的动态库以及对应的字节码版本信息上传至云端服务器;
将所述动态库重新签名打包,生成应用安装包,并上传至应用商城中;
当从应用商城中下载与安装所述应用安装包并启动后,从云端服务器中获取包含字节码版本信息,并对本地服务器中的字节码进行替换,完成虚拟机字节码动态更新。
所述的基于虚拟化技术的动态库下发方法,其中,所述指定源文件中需要保护的函数,并修改需要保护的函数的源代码的步骤包括:
确定需要保护的函数,并在需要保护的函数原型后面增加标识符;
修改需要保护的函数的C/C++源代码。
所述的基于虚拟化技术的动态库下发方法,其中,所述通过预先设置的LLVM编译器对所述源代码进行编译,对需要保护的函数进行虚拟化处理,生成新的虚拟机字节码,并保存至字节码索引表中的步骤,包括:
启动LLVM编译器扫描需要保护的函数,并通过逐条指令遍历需要保护的函数,将需要保护额函数中的全局变量和全局函数的地址保存到全局地址表中;
如果需要保护的函数中需要调用本地函数,则根据调用的本地函数的返回值和参数类型的不同,创建包装函数,并将包装函数的地址保存到包装函数表中;
逐条指令遍历需要保护的函数,将LLVM IR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910221936.X/2.html,转载请声明来源钻瓜专利网。