序言:
经常听开发提起代码混淆引起的BUG,混淆后在测试一下有没有问题,那问题来了什么是代码混淆,怎么确认代码混淆成功了,带着问题读下文吧~~
一、代码混淆的原理
代码混淆是将程序中的代码,等价转换为难以阅读理解的行为,提高攻击者阅读理解代码的难度,提高安全性,可以有效的提高应用被逆向破解的难度
二、代码混淆的方法
1.字符串加密:对应用程序中使用的字符串进行加密,防止获取关键词定位核心业务代码2.类名、方法名混淆:讲代码中类名,方法名,属性名替换成无意义的符号,增加代码逆向难度,这种方式也是在java中最常用到的方式~3.程序结构混淆:代码结构进行打乱混排,把源码的可读性降到最低。
三、如何反编译apk,查看代码混淆
1.准备工作
dex2jar:将apk反编译成java源码的工具(classes.dex转化成jar文件)jd-gui:查看APK中classes.dex转化成出的jar文件,即源码文件
2.把dex2jiar.zip 和 gui 解压到当前文件夹
3.把apk后缀更改为.ZIP格式解压到当前文件夹
4.在解压后的apk文件夹中找到classes.dex文件,拖动到dex2jar-2.0文件夹
5.dex2jar-2.0文件夹中,cmd运行
d2j-dex2jar classes.dex
生成class-dex2jar.jar文件
6.使用gui查看反编译后的java源码,打开后把上面转换完的文件直接拖入
7.看到的代码就是混淆后的代码啦~~~
这里不是起点~ 也不是终点~