文档章节

apk安全保护及处理

luhang
 luhang
发布于 2017/02/09 13:27
字数 571
阅读 6
收藏 0

apk安全保护

App的安全问题首先是『数据安全』。App本地存储的数据和网络请求数据中有没有涉及到用户的隐私数据。关闭日志输出是最基本的方法之一。

还有就是『应用自身安全性』。对某个应用进行逆向,看反编译后的代码有没有敏感信息暴露。反编译后对代码修改,插入劫持代码后重新打包,如果存在这种漏洞,对用户和开发者都构成极大的威胁。

一.项目配置 AS环境

1,AndroidManifest配置 application下设置 android:allowBackup=”false”

关闭ADB调试

2.build.gradle配置

build.gradle文本

-说明

  • debuggable=”false”的作用就是,将0赋给变量debuggable,相当于debuggable=0.
    如果这个设置这个变量的目的是为了调试,那么赋值后就会关闭调试

  • buildConfigField “boolean”, “LOG_DEBUG”, “false” // 不显示Log

  • shrinkResources false //移除无用资源
    设置混淆文件的路径名字

  • proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-project.pro’

proguard-project.pro配置示范

二.使用AS签名打包

build下
生产打包签名

获取apk包

三.使用360加固工具

1.下载及工具配置

360加固工具去下载

  • 配置
  • 签名信息配置
可以配置签名信息 ,多渠道打包 加固类别

加固apk上传,加固及重签

加固完成会对apk进行二次重签,这个在工具内已经自动化完成

找到输出路径加固后的apk,会发现apk包明显增大


- 接下来是加固效果测试,你懂的o-o

解压apk,获取dex文件打包jar

反编译效果

效果很厉害!

我们的项目包经过这样多层处理,基本上已经可以不用担心别人的反编译了,源码基本是很难拿到手的。

注:由于android的打包机制,目前资源文件及AndroidManifest文本还是可以随时查看的,这个在BAT里面也避免不了,因为新版的Android Studio已经支持APK包分析了,上个图给你们看看

这里写图片描述

-只需要把apk安装包复制进AS项目中 双击就可以看到当前apk包的资源分析了


上述就是目前针对apk安全的处理及分析,如果有更好的方法欢迎与博主一起探讨交流!

© 著作权归作者所有

共有 人打赏支持
luhang
粉丝 3
博文 15
码字总数 571
作品 0
长宁
程序员
安卓反编译揭秘,伪加密APK文件如何被破坏

源码混淆 如上图,对Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在...

科技创造
2014/09/05
0
1
校验数字签名防止apk二次打包

Android系统的开放性和免费性等特征让开发者和用户趋之若鹜,用户也渐渐习惯了Android应用的这种免费午餐,但在免费的背后却有着巨大的安全阴影。 “Android APP二次打包”则是盗版正规Andro...

科技创造
2015/03/23
2.5K
2
山寨Android apk产生原因?

Androidapk市场充斥着大量的盗版软件,直接危害了APP开发者的利益,让“如何防止apk反编译,保护APP安全”成为开发者面临的头等大事。目前很多APP个人开发者以及企业都在积极寻求解决之道,其...

ablansetaimeng
2014/03/10
234
2
移动安全时代,如何保护你的app

Android系统的安全性历来备受诟病,在强大的反编译工具下,APK中的代码逻辑一览无余;重打包技术使得各种盗版软件层出不穷,充斥着Android市场,特别是对于金融、电商、游戏等产品的盗版应用...

今生
2015/11/11
473
2
浅谈Android应用保护(一):Android应用逆向的基本方法

对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击。使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码、数据,修改其代码逻辑和...

阿里聚安全
2016/04/15
240
1

没有更多内容

加载失败,请刷新页面

加载更多

docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
32分钟前
1
0
unload事件

unload事件不触发的原因分析 1.代码位置不对,应该优先加载,不能放到回调函数中 2.浏览器不支持 3.最可能的原因,unload事件中触发的函数是一个异步执行的函数,浏览器是不允许在窗口关闭之后在...

狮子狗
45分钟前
1
0
DbForge Schema Compare for MySQL入门教程:如何连接到数据库

【dbForge Schema Compare for MySQL下载】 要创建连接: 1. 在“Connection” 工具栏上单击“New Connection”按钮 。 2. 在“Host” 框中输入主机名。 3. 在“Port” 框中输入端口信息。默...

Miss_Hello_World
47分钟前
1
0
公众号关联微信小程序

公众号关联小程序发送关联通知,对于推广小程序有着很大的帮助。所以问题来了,怎么做到在公众号关联小程序发送关联通知呢? 一:开发中遇到的问题 之前在开发过程中发现,公众号已经关联小程...

Code辉
今天
1
0
并发编程基础之JMM学习摘要

一、JMM定义 Java内存模型即Java Memory Model(JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见(内存可见性),从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程...

狠一点
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部