android安全加固技术

先介绍5种android apk安全技术,其它后面补充

1、代码混淆

原理:本质就是改变类名、方法名,使代码可读性变差,进而保护代码

种类 混淆前 混淆后
class BookManager a
function getName() c()

方式:通过 proguard 三方库,在proguard-rules.pro文件中设置改名规则,将gradle中minifyEnabled 设为true,打开混淆功能
注意事项:四大组件保留、jin要调用的方法保留、R文件

2、去除log

原理:停止log输出,进而防止敏感信息泄露
方式:
(1)自己包装log类,打包时自动屏蔽
(2)通过proguard 将系统Log类置为无效


去除Log

注意事项:打开优化开关、添加去除log规则

3、对抗反编译

原理:让apk、dex文件无法通过反编译工具正常编译,导致工具异常崩溃等。常见反编译工具apkTool、baksmali、dex2jar、JEB等


apktool错误信息
dk2.png
4、对抗模拟器

原理:如果检测到运行在模拟器,自动退出
方式:
(1)检测模拟器上特有的几个文件
(2)检测模拟器默认的电话号码
(3)检测设备"IDS"是不是"000000000000000"
(4)检测imsi id是不是“310260000000000”
(5)检测手机上的一些硬件信息
(6)检测手机运营商家


检测id

emulator2.png
检测文件
5、对抗apk重打包

原理:apk重新大包后签名会改变
方法:检测现在的签名和原本的签名是否一致,不一致退出应用


获取现在的签名

2020-11-22

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • @author ASCE1885的 Github 简书 微博 CSDN本文由于潜在的商业目的,不开放全文转载许可...
    asce1885阅读 29,782评论 9 70
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,138评论 2 59
  •   Android系统由于其开源的属性,市场上针对开源代码定制的ROM参差不齐,在系统层面的安全防范和易损性都不一...
    道书简阅读 9,554评论 0 23
  • 反编译 反编译代码 dex2jar 这个工具用于将dex文件转换成jar文件 jd-gui 这个工具用于将jar文...
    MrGeekr极氪阅读 352评论 0 0
  • Author:杨空明 Date:2018-8-17 一、前言 Android开发者常常面临的一个问题就是防破解、 ...
    问心2018阅读 29,484评论 4 66