一种基于指令注入的代码处理方法、终端及存储介质技术

技术编号:26650802 阅读:31 留言:0更新日期:2020-12-09 00:51
本发明专利技术公开了一种基于指令注入的代码处理方法、终端及存储介质,所述方法包括:在APP的加密阶段,解析DEX文件,将所述DEX文件进行拆分,抽取出所述DEX文件中保存的代码指令,并进行加密保存;构建解密代码的二进制指令,注入到所述DEX文件中原指令位置;当加密APP运行到被加密的方法时,执行已注入的二进制指令,对方法指令进行解密还原,并跳转到被解密出的指令内存,继续执行解密出的指令。本发明专利技术在加密时将完整的DEX文件进行拆分,分离出加密方法的代码段,并在原代码段注入解密指令,运行时调用被加密的方法,首先执行注入的解密指令,完成当前执行方法的解密,确保被加密方法只有被执行的时候才会解密。

【技术实现步骤摘要】
一种基于指令注入的代码处理方法、终端及存储介质
本专利技术涉及代码处理
,尤其涉及一种基于指令注入的代码处理方法、终端及存储介质。
技术介绍
DEX文件就是Android虚拟机运行的程序,开发人员发布AndroidAPP时,首先把java代码编译为class字节码,然后通过Dx工具把class字节码转为DEX文件格式。所以对DEX文件的保护也就至关重要,传统的Android基于指令注入的代码处理技术,主要通过把原DEX文件,替换为壳DEX文件,实现对原DEX的加密隐藏。加密APP运行时,壳DEX调用系统方法加载原DEX。但是,这种传统的Android基于指令注入的代码处理技术,在加密APP运行后,内存中会存在一片连续的内存来存放原DEX,所以通过内存DUMP(备份文件系统,转储,即把内存某一时刻的内容转存成文件),可以很容易的获取加密前的原DEX文件。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术的主要目的在于提供一种基于指令注入的代码处理方法、终端及存储介质,旨在解决现有技术中代本文档来自技高网...

【技术保护点】
1.一种基于指令注入的代码处理方法,其特征在于,所述基于指令注入的代码处理方法包括:/n在APP的加密阶段,解析DEX文件,将所述DEX文件进行拆分,抽取出所述DEX文件中保存的代码指令,并进行加密保存;/n构建解密代码的二进制指令,注入到所述DEX文件中原指令位置;/n当加密APP运行到被加密的方法时,执行已注入的二进制指令,对方法指令进行解密还原,并跳转到被解密出的指令内存,继续执行解密出的指令。/n

【技术特征摘要】
1.一种基于指令注入的代码处理方法,其特征在于,所述基于指令注入的代码处理方法包括:
在APP的加密阶段,解析DEX文件,将所述DEX文件进行拆分,抽取出所述DEX文件中保存的代码指令,并进行加密保存;
构建解密代码的二进制指令,注入到所述DEX文件中原指令位置;
当加密APP运行到被加密的方法时,执行已注入的二进制指令,对方法指令进行解密还原,并跳转到被解密出的指令内存,继续执行解密出的指令。


2.根据权利要求1所述的基于指令注入的代码处理方法,其特征在于,所述将所述DEX文件进行拆分,具体包括:将二进制指令从所述DEX文件中剪切出来,并保存到预设文件中。


3.根据权利要求1所述的基于指令注入的代码处理方法,其特征在于,所述在APP的加密阶段,解析DEX文件,将所述DEX文件进行拆分,抽取出所述DEX文件中保存的代码指令,并进行加密保存,具体包括:
在APP的加密时,通过加密工具对所述DEX文件的二进制文件进行解析;
遍历获取DEX文件中所有方法,解析出方法对应代码段的二进制的代码项目结构;
提取所述代码项目结构中记录的二进制指令数据;
根据提取出的所述二进制指令数据中的类名、方法名和方法签名生成唯一识别ID;
将所述识别ID和所述二进制指令数据进行关联,并进行加密保存;
在所述代码项目结构中的指定字段位置插入构建的解密引擎调用指令。


4.根据权利要求3所述的基于指令注入的代码处理方法,其特征在于,每个方法...

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

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

1