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

你可能感兴趣的:(android安全加固技术)