[发明专利]一种代码保护虚拟机KVM系统实现方法、装置、计算机设备及存储介质有效
申请号: | 201811493793.X | 申请日: | 2018-12-07 |
公开(公告)号: | CN109684794B | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 刘柏江;范俊伟 | 申请(专利权)人: | 成都盈海益讯科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F9/455 |
代理公司: | 成都知集市专利代理事务所(普通合伙) 51236 | 代理人: | 李位全 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 保护 虚拟机 kvm 系统 实现 方法 装置 计算机 设备 存储 介质 | ||
1.一种代码保护虚拟机KVM系统实现方法,其特征在于:包括以下步骤: 步骤1,生成伪代码字节流:把用户待保护的核心代码通过编译器翻译为伪代码字节流; 步骤2,生成虚拟机指令:将伪代码字节流转译为核心代码的虚拟机指令; 步骤3,生成虚拟机:源包中插入软件开发工具包生成虚拟机运行环境和虚拟机解释引擎; 步骤4,应用打包:待步骤2和步骤3完成之后,在代码研发平台进行应用打包,生成目标代码; 步骤5,在虚拟机中执行核心代码:运行目标代码时,核心代码的虚拟机指令由内嵌入虚拟机运行环境中的虚拟机解释引擎,采取读取-分派的方式执行;
虚拟机运行环境在虚拟机运行下通过自身的探针感知环境的变化,实施探测外界对虚拟机运行环境的非正常执行流程变化,如检测到当前app正在被调试,则返回调试器所在进程的进程名,中断当前应用进程;如app没有被调试,则保护该app不被其他程序调试,实现反调试和调试保护。
2.根据权利要求1所述的一种代码保护虚拟机KVM系统实现方法,其特征在于:所述步骤2中的所述虚拟机指令的生成,是通过虚拟机工具链将伪代码字节流直译为自定义构造的虚拟机指令。
3.根据权利要求1所述的一种代码保护虚拟机KVM系统实现方法,其特征在于:所述步骤1的编译器为LLVM编译器,所述LLVM编译器是模块化、可复用的编译器工具链集合,同时所述LLVM编译器参与步骤2的虚拟机指令,步骤3的虚拟机的生成。
4.根据权利要求1所述的一种代码保护虚拟机KVM系统实现方法,其特征在于:所述步骤3中的虚拟机运行环境包括感知环境变化的探针,所述探针可以实时探测虚拟机环境的非正常流程变化。
5.一种代码保护虚拟机KVM系统装置,其特征在于,包括以下模块: 编译模块,用于将待保护的核心代码通过编译器翻译为伪代码字节流; 虚拟机模块,包括用于生成虚拟机运行环境和虚拟机解释引擎,以及将伪代码字节流生成核心代码的虚拟机指令;虚拟机模块在代码研发平台进行应用打包,生成目标代码;虚拟机运行环境在虚拟机运行下通过自身的探针感知环境的变化,实施探测外界对虚拟机运行环境的非正常执行流程变化,如检测到当前app正在被调试,则返回调试器所在进程的进程名,中断当前应用进程;如app没有被调试,则保护该app不被其他程序调试,实现反调试和调试保护; 运行模块:用于运行目标代码时将核心代码的虚拟机指令由虚拟机解释引擎采取读取-分派的方式执行。
6.根据权利要求5所述的一种代码保护虚拟机KVM系统装置,其特征在于:所述虚拟机指令是通过虚拟机工具链将伪代码字节流转换得到,所述虚拟机工具链包括完备虚拟指令。
7.根据权利要求5所述的一种代码保护虚拟机KVM系统装置,其特征在于:所述虚拟机解释引擎是在app软件内部隔离区中的虚拟机运行环境中执行的。
8.根据权利要求5所述的一种代码保护虚拟机KVM系统,其特征在于:所述虚拟机运行环境提供反调试和监控功能。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都盈海益讯科技有限公司,未经成都盈海益讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811493793.X/1.html,转载请声明来源钻瓜专利网。