安全优化

方案总结

签名
加固
DEX文件保护

通过使用DEX壳、JAVA代码反编译、JAVA指令虚拟化、JAVA字符常量加密等技术对DEX文件进行全面性保护。

SO文件保护

通过对SO文件进行反编译、防篡改、防盗用、虚机保护、代码压缩等技术对SO文件进行全面性保护。

资源文件保护

对应用中的资源文件以及JS文件进行加密保护和防篡改保护

运行时保护

对应用的运行环境进行实时检测,保护应用运行在安全的环境中。

数据文件保护

对应用使用到的本地文件、数据库、配置文件进行加密保护。

代码混淆

android平台的混淆原理是用“ 不能直接猜出含义 的通用变量名和函数名a b c等”替换编译后程序包中“ 具有明显语义信息 的变量名和函数名”

把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难。

proguard 就是这样的混淆工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以混淆java 元素名混淆掉。

在分析class 的同时,他还有其他两个功能,删除无效代码(Shrinking 收缩),和代码进行优化 (Optimization Options)。

缺省情况下,proguard 会混淆所有代码,但是下面几种情况是不能改变java 元素的名称,否则就会这样就会导致程序出错。

  • 我们用到反射的地方。
  • 我们代码依赖于系统的接口,比如被系统代码调用的回调方法,这种情况最复杂。
  • 是我们的java 元素名称是在配置文件中配置好的。

所以使用proguard时,我们需要有个配置文件告诉proguard 那些java 元素是不能混淆的

Android 混淆代码的原理与实施
https://blog.csdn.net/kepoon/article/details/7482058

做一个有”问题“的程序员

提高app安全性的方法?
安卓的app加固如何做?
谈谈你对安卓签名的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值