反编译对于开发来说属于基本功,会了反编译,既可以用来查看我们要发布的包配置是否正确,代码是否有什么问题,是否存在被他人注入修改的情况,还可以用来学习别人的代码,当然要是混淆加固的非常厉害那就另当别论
下面开始,只说关键点,详细教程自行搜索
假设已经有了apktool及2j-dex2jar工具,没有的自行下载最新版本,最新版可以提高反编译成功率
注意,在使用apktool时,需同时下载apktool及对应平台的依赖包,解压后将平台依赖包中的apktool.jar复制到apktool目录下
先说查看清单文件,资源文件不在查看考虑范围
方法1:
1.复制apk至apktool路径内,运行cmd进入apktool.bat路径
假如我的apktool放在了d盘,那么完整的命令是:C:\Users\Administrator>cd d: 回车;C:\Users\Administrator>d:
2.执行 'apktool.bat d f xxx.apk',等待结束。其中d表示解包
到此我们可以查看清单文件了
方法2:
不复制apk,直接在apktool路径下执行命令行:
apktool.bat d xxx.apk xxx
xxx.apk为待反编译apk路径,xxx为目标文件夹名,注意:apktool不支持中文目录
如果想查看源码,继续看:
1. 修改待反编译文件后缀.apk为.zip后,得到classes.dex
2.命令行进入dex2jar目录,运行
d2j-dex2jar classes.dex
得到classes-dex2jar.jar
使用jd-jui工具尽情的看吧
顺带提一点应用加固方面的思路:
1.apk网络请求与后端接口协商加密
2.apk编译打包后使用360加固助手
3.app内部关键数据不要使用明文,后端数据与前端统一加密解密规则。
4.混淆时注意第三方及android api自身需要注意的一些包名类名方法名
共同学习,写下你的评论
评论加载中...
作者其他优质文章