一种DEX文件虚拟化加密方法、计算机设备及存储介质技术

技术编号:26650801 阅读:35 留言:0更新日期:2020-12-09 00:51
本发明专利技术提供了一种DEX文件虚拟化加密方法、计算机设备及存储介质,所述方法包括:获取原始dalvik指令并根据指令置换表进行加密,生成虚拟dalvik指令;将虚拟dalvik指令保存至预先创建的虚拟机中并修改数据调用路径;生成调用虚拟机解析器入口指令,将DEX文件中的原始dalvik指令替换为调用虚拟机解析器入口指令。本发明专利技术将dalvik指令及其执行所需的指令数据保存到预先创建的虚拟机中,解除dalvik指令对DEX文件的依赖,使得DEX文件无论是否进行二次编译都不会影响dalvik指令的执行,避免了在内存中对指令进行解码,通过内存DUMP方式无法获取指令的明文数据,提高了DEX文件的安全性。

【技术实现步骤摘要】
一种DEX文件虚拟化加密方法、计算机设备及存储介质
本专利技术涉及计算机
,尤其涉及一种DEX文件虚拟化加密方法、计算机设备及存储介质。
技术介绍
DEX文件是Android系统的可执文件,包括应用程序的全部操作指令以及操作数据。DEX文件中的dalvik指令分为操作码和操作数,其中操作数指出指令执行所需要数据的来源。比如一条字符串赋值指令,操作数记录的就是字符串在DEX字符串表中的索引。日常使用中,不少应用场景都会存在对DEX文件进行二次编译的需求,比如游戏渠道商二次编译DEX文件嵌入支付模块、统计模块等。而传统DEX文件的虚拟化加密方法只是对指令进行等价替换,操作数指出的指令执行所需的数据还是指向原DEX文件,如果原DEX文件被二次编译,就会导致指令数指向错误的数据,进而导致指令执行错误。因此,现有技术有待于进一步的改进。
技术实现思路
鉴于上述现有技术中的不足之处,本专利技术的目的在于提供一种DEX文件虚拟化加密方法、计算机设备及存储介质,克服传统DEX文件的虚拟化加密技术不适用于有二次编译需求的本文档来自技高网...

【技术保护点】
1.一种DEX文件虚拟化加密方法,其特征在于,包括以下步骤:/n获取DEX文件中的原始dalvik指令;其中,所述原始dalvik指令包括原始操作码和原始操作数;/n根据预先生成的指令置换表对所述原始dalvik指令进行加密,生成虚拟dalvik指令;/n将所述虚拟dalvik指令保存至预先创建的虚拟机的指令表中,并根据所述虚拟机的数据表修改所述虚拟dalvik指令的数据调用路径;其中,所述数据表中存储有所述虚拟dalvik指令执行所需的虚拟指令数据;/n根据所述虚拟dalvik指令生成调用虚拟机解析器入口指令,将所述DEX文件中的原始dalvik指令替换为所述调用虚拟机解析器入口指令,以实现...

【技术特征摘要】
1.一种DEX文件虚拟化加密方法,其特征在于,包括以下步骤:
获取DEX文件中的原始dalvik指令;其中,所述原始dalvik指令包括原始操作码和原始操作数;
根据预先生成的指令置换表对所述原始dalvik指令进行加密,生成虚拟dalvik指令;
将所述虚拟dalvik指令保存至预先创建的虚拟机的指令表中,并根据所述虚拟机的数据表修改所述虚拟dalvik指令的数据调用路径;其中,所述数据表中存储有所述虚拟dalvik指令执行所需的虚拟指令数据;
根据所述虚拟dalvik指令生成调用虚拟机解析器入口指令,将所述DEX文件中的原始dalvik指令替换为所述调用虚拟机解析器入口指令,以实现所述DEX文件的虚拟化加密。


2.根据权利要求1所述的DEX文件虚拟化加密方法,其特征在于,所述获取DEX文件中的原始dalvik指令的步骤包括:
对DEX文件进行解析,遍历获取DEX文件中的所有方法的code_item数据结构;
从所述code_item数据结构中解析出insns字段,根据所述insns字段获取原始dalvik指令。


3.根据权利要求1所述的DEX文件虚拟化加密方法,其特征在于,所述根据预先生成的指令置换表对所述原始dalvik指令进行加密,生成虚拟dalvik指令的步骤包括:
获取所述指令置换表中与所述原始dalvik指令的原始操作码对应的虚拟操作码;
将所述原始dalvik指令的原始操作码替换为所述虚拟操作码,生成虚拟dalvik指令。


4.根据权利要求1所述的DEX文件虚拟化加密方法,其特征在于,所述根据所述虚拟机的数据表修改所述虚拟dalvik指令的数据调用路径的步骤包括:
获取所述虚拟机的数据表中与所述虚拟指令数据对应的虚拟操作数;
将所述虚拟dalvik指令...

【专利技术属性】
技术研发人员:李鹏飞冉山川
申请(专利权)人:北京智游网安科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1