[发明专利]一种基于虚拟化技术的虚拟指令下发方法及系统有效
申请号: | 201910220540.3 | 申请日: | 2019-03-22 |
公开(公告)号: | CN109933410B | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 方令;廖兴龙;肖巍 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F21/12;G06F21/53;G06F8/41 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟 技术 指令 下发 方法 系统 | ||
本发明提供了一种基于虚拟化技术的虚拟指令下发方法及系统,通过编译器检查编译选项,获取已修改实现的被保护函数名称,得到修改后的被保护函数列表;所述编译器依次处理所有源文件,为所有源文件中修改后的被保护函数生成新字节码,同时生成含有新字节码的处理信息;终端获取所述处理信息,解释执行所述处理信息中含有的所述新字节码。因此实现了在任意时候动态变更被保护函数的实现,即使在程序的同一运行时期内,同一被保护函数的字节码也可以随时更新,大大延长了保护时间,增强了软件保护的效果,提高了安全性。
技术领域
本发明涉及信息安全领域,尤其涉及的是一种基于虚拟化技术的虚拟指令下发方法及系统。
背景技术
虚拟机保护是信息安全领域的一种新的软件保护技术,程序员针对源文件中的被保护代码编写程序,将被保护代码转换机器和人都无法识别的,在虚拟机上运行的字节码,在程序运行时再由虚拟机对这些字节码进行解释执行,实现对软件的保护。
但是目前市场上所使用的虚拟化保护技术,生成的字节码存在动态库中,固定不变,只能等APP下次升级时更新动态库,而APP在未升级时,黑产人员有足够的时间来破解,现有技术的保护效果只能维持一段时间。
因此现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种基于虚拟化技术的虚拟指令下发方法及系统,以解决现有的虚拟机保护技术生成的字节码固定不变而导致保护时间短,安全性差的缺陷,本发明提供的第一实施例为一种基于虚拟化技术的虚拟指令下发方法,其中,所述方法包括:
A、通过编译器检查编译选项,获取已修改实现的被保护函数名称,得到修改后的被保护函数列表;
B、所述编译器依次处理所有源文件,为所有源文件中修改后的被保护函数生成新字节码,同时生成含有新字节码的处理信息;
C、终端获取所述处理信息,解释执行所述处理信息中含有的所述新字节码。
可选的,所述步骤B与步骤C之间还包括:
C01、所述编译器将所述处理信息写入第一记录文件;
C02、云端获取所述第一记录文件中的处理信息,将所述处理信息下发到终端。
可选的,所述步骤A之前还包括:
A0、通过编译器,输出包含虚拟机指令集及本地调用签名表的第二记录文件。
可选的,所述步骤B还包括:
B1、判断当前处理的源文件中是否含有与所述修改后的被保护函数列表中的被保护函数名称相同的被保护函数,若有,则执行步骤B2;若无,则处理下一个源文件;
B2、为当前处理的源文件中与所述修改后的被保护函数列表中的被保护函数名称相同的被保护函数生成新字节码,再处理下一个源文件。
可选的,所述步骤B2还包括:
B21、读入第二记录文件,获取所述第二记录文件中的虚拟机指令集及本地调用签名表,为当前处理的源文件中与所述修改后的被保护函数列表中的被保护函数相同的被保护函数生成新字节码。
可选的,所述步骤B中的处理信息包括:当前源文件名,函数索引,新字节码及新字节码的长度。
可选的,所述步骤C包括:
C1、终端将所述处理信息更新到内存池;
C2、检测到当软件运行调用被保护函数时,控制解释器查看内存池中是否有与被调用的被保护函数对应的新字节码;若有则控制解释器解释执行与被调用的被保护函数对应的新字节码;
所述步骤C还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910220540.3/2.html,转载请声明来源钻瓜专利网。