Android应用安全加固

时间:2024-04-04 14:44:29

前言:Android开发者常常面临的一个安全问题就是防反编译**、 防二次打包。因此,App在上线某些应用市场比如腾讯的应用宝时会要求你的应用apk进行安全加固,也就是和Windows平台exe程序的加壳一样。

一、为什么要对Android应用加固?

由于安卓APP是基于Java的,所以极容易被**,一个不经过加固的APP犹如裸奔一样,毫无防备。之前曾有新闻报道,一些专职的APP打包黑产就是专门从各种渠道找到apk,通过各种**手段将apk文件**、反编译,然后加入广告、病毒代码,重新打包投入市场,不明真相的用户将带病毒广告的apk下载下来,甚至因此造成利益损失。

二、加壳的概念

1、加壳定义

移动平台攻防技术的发展基本是沿着PC端发展轨迹在进行,从windows平台的加壳脱壳反调试到Andriod的平台apk加固,反调试和代码混淆等。

加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。PC EXE文件加壳的过程如下:

Android应用安全加固

2、加壳的作用和分类

作用:

加壳的程序可以有效阻止对程序的反汇编分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件**。

分类:

从App的加固技术来看:主流分为dex加密和so加密,目前来看保护dex文件更为重要,应为dex反编译后的java代码可读性更强。

三、使用第三方工具自动化加固

对于移动应用开发工程师来说,应用自动化加固无疑是最便捷的一种安全方式了。通过加固可以在一定程度上达到反编译和防止被二次打包的效果。当然,现在网上很多平台都提供加固服务包括bat在内。加固原理差不多,但是加固强度和兼容性上还是有很大差别的。推荐腾讯的乐固移动应用加固的PC端工具:腾讯乐固应用加固助手 

使用应用加固助手,可以一键完成应用加固、签名、多渠道打包等工作,如下图。

Android应用安全加固

1、首先要登录,获取云API**登录加固助手

2、添加应用加固,会得到类似名字为app-yingyongbao-release1.0_legu.apk,后缀有legu

3、腾讯云应用安全需要将您的签名信息删除后才能加固,所以加固后的安装包是没有签名信息的,现在需要您对加固包重新签名。我们可以使用这个自主工具重签名。

Android应用安全加固

你可以使用你Android Studio已有的签名文件,填完之后接可以了,会得到如下名字的文件:app-yingyongbao-release1.0_legu_aligned_signed。

Android应用安全加固

我们可以看到主要是对apk的dex文件进行了加固处理,现在我们就可以重新在应用市场上传我们加固好的app了。

 

参考链接:Android应用加固原理