[发明专利]一种代码保护虚拟机KVM系统实现方法、装置、计算机设备及存储介质有效
申请号: | 201811493793.X | 申请日: | 2018-12-07 |
公开(公告)号: | CN109684794B | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 刘柏江;范俊伟 | 申请(专利权)人: | 成都盈海益讯科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F9/455 |
代理公司: | 成都知集市专利代理事务所(普通合伙) 51236 | 代理人: | 李位全 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 保护 虚拟机 kvm 系统 实现 方法 装置 计算机 设备 存储 介质 | ||
本发明公开了一种代码保护虚拟机KVM系统实现方法、装置、计算机设备及存储介质,包括以下步骤:步骤一,生成伪代码字节流;步骤二,生成核心代码的虚拟机指令;步骤三,生成虚拟机运行环境和虚拟机解释引擎;步骤四,应用打包;步骤五,在虚拟机中采取读取‑分派的方式执行核心代码;本发明所提供的代码保护虚拟机KVM系统方法,将函数级别的代码完全虚拟化后编码为自由指令集格式,代码一旦虚拟化,永不解密,安全强度高;本KVM系统在编译器内部产生平台依赖代码之前对代码进行虚拟化,不依赖特定系统环境,兼容性好。
技术领域
本发明涉及计算机代码保护领域,具体涉及代码保护虚拟机KVM系统实现方法。
背景技术
随着移动互联网的飞速发展,其广泛的应用充斥着人们的生活,移动应用市场急剧膨胀扩张。但是在应用安全性方面的缺失,直接导致企业应用被逆向破解,业务执行逻辑被阻断,病毒植入、仿冒侵权、信息截取等黑客攻击,严重影响了企业收益与用户体验。
攻击者的攻击手法主要有针对端和链路的攻击。由于移动应用运行在用户终端之上,攻击者只需要逆向破解端应用,就可以非法利用程序漏洞分析程序的脆弱性。基于此,端和链路的防护技术也是层出不穷,从加壳、代码混淆到Java2C,基于代码加密强度和兼容性,代码虚拟化技术被提出。通过代码虚拟化技术,对代码进行转换加密,使得攻击者无法得知具体的转换指令,进而达到保护代码信息的目的。其不可逆的特性防止攻击者逆向分析客户端代码,从而保证客户端代码安全。
传统代码虚拟化技术必须通过Java虚拟机提供的JNI接口与java虚拟机进行交互,攻击者可以直接将代码虚拟化方案当作黑盒,通过自定义的JNI接口对象,对黑盒内部进行探测、记录和分析,进而得到完整DEX程序。
因此,为解决现有技术中存在的不足,设计一种加固强度更高、可移植性更好、兼容性更好的代码保护虚拟机KVM系统是亟待解决的技术问题。
发明内容
本发明的目的在于针对现有技术的缺陷和不足,提供一种代码保护虚拟机KVM系统方法、装置、计算机设备及存储介质。
一种代码保护虚拟机KVM系统实现方法, 包括以下步骤:
步骤1,生成伪代码字节流:把用户待保护的核心代码通过编译器翻译为伪代码字节流;
所述步骤1的编译器为LLVM编译器,所述LLVM编译器是模块化、可复用的编译器工具链集合。
步骤2,生成虚拟机指令:将伪代码字节流转换为核心代码的虚拟机指令;
所述虚拟机指令的生成,是通过虚拟机工具链将伪代码字节流直译为自定义构造的虚拟机指令。
步骤3,生成虚拟机:源包中插入软件开发工具包生成虚拟机运行环境和虚拟机解释引擎;
所述步骤3中的虚拟机运行环境包括感知环境变化的探针,所述探针可以实时探测虚拟机环境的非正常流程变化。
步骤4,应用打包:待步骤2和步骤3完成之后,在代码研发平台进行应用打包,生成目标代码;
步骤5,在虚拟机中执行核心代码:核心代码的虚拟机指令由内嵌入虚拟机运行环境中的虚拟机解释引擎,采取读取-分派的方式执行。
一种代码保护虚拟机KVM系统装置,其中
包括以下模块:
编译模块,用于将待保护的核心代码通过编译器翻译为伪代码字节流;
虚拟机模块,包括用于生成虚拟机运行环境和虚拟机解释引擎,以及将伪代码字节流生成核心代码的虚拟机指令;
所述虚拟机指令是通过虚拟机工具链将伪代码字节流转换得到,所述虚拟机工具链包括虚拟CPU解释引擎以及完备虚拟指令,虚拟机模块在代码研发平台进行应用打包,生成目标代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都盈海益讯科技有限公司,未经成都盈海益讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811493793.X/2.html,转载请声明来源钻瓜专利网。