[发明专利]一种混淆代码的方法、装置及系统在审
申请号: | 201811236601.7 | 申请日: | 2018-10-23 |
公开(公告)号: | CN109492354A | 公开(公告)日: | 2019-03-19 |
发明(设计)人: | 曹延昌;黄何 | 申请(专利权)人: | 海南新软软件有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/41 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙) 11363 | 代理人: | 逯长明;许伟群 |
地址: | 571924 海南省海口市老城高新*** | 国省代码: | 海南;46 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 索引表 混淆 动态链接库 装置及系统 抽离 逆向工程 用户信息 重新打包 木马 操作码 映射表 保证 映射 封装 申请 广告 应用 安全 | ||
本申请公开了一种混淆代码的方法、装置及系统。本申请的技术方案能够抽离Java方法对应的code_item代码;根据操作码映射表对抽离出来的code_item代码进行映射混淆,生成code_item索引表;封装code_item索引表到动态链接库中;注册动态链接库中的code_item索引表。注册后的code_item索引表由于包含的是混淆后的代码,所以从代码中看不出原Java方法的任何逻辑,保证APK文件中的dex文件无法在逆向工程中被重新打包,防止应用中包含木马、广告等代码,保证APK文件的安全性,进一步保证用户信息的安全。
技术领域
本申请涉及计算机技术领域,尤其涉及一种混淆代码的方法、装置及系统。
背景技术
Android应用是基于Android系统开发的应用,可实现用户需要的很多功能。主流的Android应用中绝大部分的逻辑由Java代码实现,将Android工程代码打包为APK(AndroidPackage,Android安装包)文件,再将APK文件传到Android模拟器或Android手机中执行即可安装相应的应用。
Android工程代码打包为APK文件的过程中,会将Java代码编译成dex格式的可执行文件。该文件直接打包在APK文件包中。攻击者可以通过逆向工程对其APK文件进行逆向编译获取Smali或Java源码,然后进行分析修改后重打包,使安卓应用面临木马、广告等恶意代码注入攻击,应用软件中的数据可能被第三方恶意窃取,用户账户信息安全面临着极大的风险。
因此,如何防止APK文件在逆向工程中被重新打包,成为业内亟待解决的问题。
发明内容
本申请提供了一种混淆代码的方法、装置及系统,避免APK文件在逆向工程中被重新打包导致用户账户不安全的问题。
一方面,本申请提供了一种混淆代码的方法,包括:
抽离Java方法对应的code_item代码,所述code_item代码用于将Java方法对应到dex文件;
根据操作码映射表对所述抽离出来的code_item代码进行映射混淆,生成code_item索引表,所述操作码映射表用于提供code_item代码中操作码与映射后操作码的对应关系;
封装所述code_item索引表到动态链接库中,所述动态链接库用于共享库函数,以及,所述动态链接库位于native层;
注册所述动态链接库中的code_item索引表。
结合第一方面,所述方法还包括:
根据所述操作映射表和Dalvik字节码标准实现映射解释器;
封装所述映射解释器到动态链接库中;
根据所述动态链接库中的所述映射解释器和所述code_item索引表,生成映射解释器的执行环境。
结合第一方面,所述根据操作码映射表对所述抽离出来的code_item代码进行映射混淆,生成code_item索引表的步骤包括:
根据Dalvik字节码语法,在insns字段中确定所述insns字段指令流中的操作码信息;
根据所述操作码映射表中的对应关系,依次映射所述操作码,获取映射后的一系列新的操作码;
根据所述一系列新的操作码,生成code_item索引表。
结合第一方面,所述抽离Java方法中的code_item代码之前,还包括:
在APK文件的dex文件中找到Java方法对应的code_item代码。
结合第一方面,所述封装code_item索引表到动态链接库中的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海南新软软件有限公司,未经海南新软软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811236601.7/2.html,转载请声明来源钻瓜专利网。