安全(1) - 代码安全

一、分类

1.混淆 (java文件)

2.加固 (Dex文件)

3.防止应用被调试

4.防止应用被Hook操作

5.防2次打包 - 签名校验防护策略

 

二、混淆

功能

1.压缩(在打包的时候来检查并移除代码中没有用到的字段、方法、属性和类)

2.优化(它可以对字节码进行优化,对.class文件里无用的操作移除)

3.混淆(把有意的名词变成无意的名词)

4.预检测(第二次进行处理和检测)

 

作用

1.起到了保护代码的作用

2.精简了程序的内存大小

混淆解析:https://www.jianshu.com/p/d5223070a432

混淆面试:https://www.jianshu.com/p/aafb3a2a1169

 

三、加固

   大致过程:将目标apk中的dex取出与壳程序的dex加密合并,生成新的dex,同时修改Manifest.xml入口Application类。删除META-INF文件,重新签名。

整体加密步骤:

1.反编译目标app(sourceProject.apk),得到sourceProject文件;sourceProject.apk来源于SourceProject工程

2.修改sourceProject文件中的manifest文件,将自定义Application设定为“org.hackcode.ProxyApplication”

3.拿到sourceProject文件中的dex文件,压缩为TargetApk.zip

4.反编译壳apk:apktool.bat d shellApk.apk,得到shellApk文件

5.拿到shellApk文件下的classes.dex和TargetApk.zip,加密合成新的classes.dex文件

6.新合成的class.dex替换sourceProject文件中的class.dex

7.删除sourceProject文件中的META-INF文件,重压缩成zip文件

8.重新签名

步骤2主要是是为了加载壳dex中的代码;正确解析dex。

步骤6主要是jiaguApk工程的工作。

参考

加固步骤:http://blog.itpub.net/31562043/viewspace-2284074/

加固原理:https://www.cnblogs.com/cute/p/4809386.html

加固类别:https://www.cnblogs.com/baiqiantao/p/9286449.html

 

防应用调试

https://blog.csdn.net/jiangwei0910410003/article/details/65935044

 

防应用被hook

https://blog.csdn.net/jiangwei0910410003/article/details/52523679

 

2次打包

参考”https://blog.csdn.net/jiangwei0910410003/article/details/80375831

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值