首页> 中国专利> 基于指令混淆的Android应用程序保护方法及系统

基于指令混淆的Android应用程序保护方法及系统

摘要

一种信息安全技术领域的基于指令混淆的Android应用程序保护方法及系统,通过生成混淆应用程序时所需要的置换矩阵,并对Android应用程序的二进制代码进行混淆,使得混淆后的代码无法被逆向;然后生成用于执行混淆后应用程序的系统镜像文件并搭建安全执行平台,执行混淆后应用程序。该系统包括矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块。本发明能够有效的保护Android应用程序抵抗来自攻击者的逆向和篡改等攻击。

著录项

  • 公开/公告号CN103324872A

    专利类型发明专利

  • 公开/公告日2013-09-25

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201310291711.4

  • 申请日2013-07-12

  • 分类号G06F21/14(20130101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王毓理;王锡麟

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2024-02-19 20:39:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-27

    授权

    授权

  • 2013-10-30

    实质审查的生效 IPC(主分类):G06F21/14 申请日:20130712

    实质审查的生效

  • 2013-09-25

    公开

    公开

说明书

技术领域

本发明涉及的是一种信息安全技术领域的方法及系统,具体是一种涉及在Android平台 上对应用程序使用指令混淆技术,对应用程序进行防逆向、防篡改保护的方法及系统。

背景技术

在移动智能终端安全领域,对于Android平台上应用程序的保护是目前的焦点问题。由 于Android平台本身的特性,导致运行在该平台上的应用程序能够轻易的被逆向、篡改、重打 包。经过攻击者恶意篡改过的应用程序会携带对用户有害的恶意代码,安装使用经过恶意篡改 过的应用程序会对用户的终端设备造成不同程度的破坏。

Android应用程序使用Java语言编写,编写完成后会被编译打包成APK文件,APK文 件(AndroidPackage安卓压缩包)即是Android平台上应用程序的安装文件,该类型文件能够 被轻易的逆向成攻击者可以阅读的smali代码,同时攻击者也能通过修改smali代码并重编译来 完成对APK文件的篡改。目前已知的Android平台应用程序保护方案十分匮乏,仅有Google 提供的开源工具ProGuard以及一些Java代码的混淆保护技术。ProGuard只能够对应用程序中 的关键变量名、函数名、类名等信息进行混淆,仅能够增加攻击者逆向理解应用程序的难度, 并不能从本质上保护应用程序的逻辑结构不被攻击者理解,此外ProGuard无法保护应用程序不 被攻击者篡改。而以往针对Java语言的混淆保护技术应用在Android应用程序上时候会出现大 量的兼容性问题,并不能够实际用于保护Android应用程序。

经过对现有技术的检索发现,中国专利文献号CN102831342,公开日2012-12-19,记载 了一种提高Android系统应用程序保护强度的方法,该技术包括:创建安全虚拟机,所述安全 虚拟机用于执行对应于所述应用程序中第一程序代码指令的第二程序代码指令;创建由Dalvik 虚拟机执行的第一程序代码指令与由所述安全虚拟机执行的所述第二程序代码指令的映射表; 根据所述映射表将所述应用程序中的所述第一程序代码指令转换为所述第二程序代码指令;将 所述第一程序代码指令从所述应用程序中删除,并将所述应用程序中调用所述已删除的第一程 序代码指令的调用方式更改为本地调用方式;创建本地调用接口;当需要执行所述应用程序中 第一程序代码指令时,所述Dalvik虚拟机执行所述本地调用接口;所述本地调用接口调用所述 安全虚拟机,由所述安全虚拟机执行所述第二程序代码指令。但该技术对应用程序的保护需要 对源代码进行修改,过于繁琐;另一方面,该技术中的核心虚拟机是存在于Dalvik虚拟机之上 的,这样在系统中新增一个虚拟机的做法将会大幅度影响程序的运行效率。

发明内容

本发明针对现有技术存在的上述不足,提出一种基于指令混淆的Android应用程序保护 方法及系统,能够有效的保护Android应用程序抵抗来自攻击者的逆向和篡改等攻击。

本发明是通过以下技术方案实现的:

本发明涉及一种基于指令混淆的Android应用程序保护方法,包括以下步骤:

第一步、生成混淆应用程序时所需要的置换矩阵,具体为:对Android平台中的Dalvik 虚拟机所使用的操作码进行随机排列,生成一个用于置换Dalvik字节码的置换矩阵。

第二步、对Android应用程序的二进制代码进行混淆,混淆后的代码无法被逆向,具体 步骤包括:

2.1解包待保护的应用程序,解包后获得带有二进制代码的dex文件(Dalvik VM executes, Dalvik虚拟机执行代码)和应用程序资源文件;

2.2对dex文件进行解析,使用第一步得到的置换矩阵对其中每一条指令进行置换操作;

2.3将完成混淆的dex文件重打包成apk文件,此时的应用程序已经过混淆保护,能够 抵抗静态逆向分析。

第三步、生成用于执行混淆后应用程序的系统镜像文件,具体步骤包括:

3.1使用第一步得到的置换矩阵生成混淆解释器;

所述的混淆解释器结构和Dalvik虚拟机解释器一致并具有Dalvik虚拟机的全部功能, 能够执行混淆后的应用程序。

3.2采用生成的混淆解释器制作成Android系统的镜像文件。

第四步、搭建安全执行平台,执行混淆后应用程序,具体步骤包括:

4.1使用第三步制作的镜像文件在目标设备上部署拥有安全执行能力的Android系统。

4.2在部署完成的Android系统上安装使用混淆后的应用程序,操作流程和在普通 Android系统上安装使用普通Android应用程序一样,整个安全执行流程对用户来说完全透明。

本发明涉及实现上述方法的系统,包括:矩阵生成模块、应用程序混淆模块、解释器生 成模块、系统文件生成模块以及执行模块,其中:矩阵生成模块分别和应用程序混淆模块以及 解释器生成模块相连并输出置换矩阵;应用程序混淆模块和执行模块相连并输出混淆后的应用 程序;解释器生成模块和系统文件生成模块相连并输出混淆解释器;系统文件生成模块和执行 模块相连并输出能够部署拥有安全执行能力系统的镜像文件;执行模块则对应用程序进行执行 操作。

技术效果

与现有技术相比,本发明对Android平台应用程序的保护更加彻底,被混淆后的APK 文件能够同时抵抗静态和动态逆向技术,并无法被篡改。该方案不要求提供源代码,可对已经 编译完成的APK文件进行混淆保护。通过精心设计,该保护方案不会为系统带来额外的性能 损害。

附图说明

图1为本发明方法流程示意图。

图2为本发明系统架构示意图。

图3为实施例应用示意图。

图4为指令置换流程示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施, 给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1

如图1所示,本实施例涉及一种方法,其具体步骤包括:

1、使用矩阵生成模块生成置换矩阵,如图4所示,为置换矩阵的样例;该置换矩阵由 一个操作码映射表组成,通过将操作码根据映射表进行一一对应的置换的同时,保留操作数不 做修改并生成新的字节码和对应的指令。

2、使用应用程序混淆模块对APK文件进行混淆。

3、使用解释器生成模块生成对应的混淆解释器。

4、使用系统文件生成模块将混淆解释器制作成镜像文件。

5、使用执行模块将镜像文件安装在目标设备中,之后可正常使用混淆后的应用程序。

如图2所示,本实施例涉及实现上述方法的系统,具体包括:

矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块, 其中:矩阵生成模块分别和应用程序混淆模块以及解释器生成模块相连并输出置换矩阵;应用 程序混淆模块和执行模块相连并输出混淆后的应用程序;解释器生成模块和系统文件生成模块 相连并输出混淆解释器;系统文件生成模块和执行模块相连并输出能够部署拥有安全执行能力 系统的镜像文件;执行模块则对应用程序进行执行操作。

所述的矩阵生成模块用来生成后续步骤所需的置换矩阵;

所述的应用程序混淆模块使用置换矩阵对应用程序进行混淆保护;

所述的解释器生成模块使用置换矩阵生成混淆解释器;

所述的系统文件生成模块是用来将混淆解释器制作成易用的镜像文件;

所述的执行模块将使用镜像文件来搭建一个能够执行混淆应用程序的执行环境。

如图3所示,为本实施例应用程序发布商使用APK混淆器生成混淆后的Android应用 程序,并使用解释器生成器来构造配套的Android系统底层解释器。作为配套的应用程序和解 释器,在对应用程序进行混淆时使用的置换矩阵应该和构造解释器时使用的置换矩阵保持一致, 以此来保证混淆后应用程序的正常运行。

APK混淆器是运行于windows平台的APK处理程序,拥有解包APK、解析二进制代码 文件、混淆二进制代码、重写二进制代码文件的功能。该工具使用事先选定的置换矩阵来对APK 文件中的二进制代码进行逐条置换,最后完成对整个二进制代码文件的混淆。

解释器生成器是跨平台的脚本工具,该工具使用事先选定的置换矩阵来生成执行对应混 淆后应用程序所必须的Android系统底层解释器,并将解释器封装成Android系统升级包的形 式。

软件发行商将混淆后的应用程序和配套的升级包同时发送给用户,用户首先通过安装系 统升级包,在自己的设备上建立起能够执行混淆后应用程序的执行环境,之后就能在该执行环 境中就能正常的使用混淆后的一系列应用程序。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号