APK反编译
反编译apk,查看源码资源等,需要用到三个工具apktool、dex2jar、jd-gui。首先去三个平台下载各自的工具包。这里不提供下载,百度可以找到下载资源。
1、apktool
借助apktool提取apk中的目录,资源。使用下面的命令,最好使用Windows原生的shell,用git一堆坑,主要是路径和linux不一样。
可能会遇到缺少framework的错误,这就需要从手机中将系统的framework-res.apk拿出来
adb pull system/framework/framework-res-hwext.apk
pull到电脑上,然后通过apktool安装上
java -jar apktool.jar if framework-res-hwext.apk
默认安装在C盘对应的目录下,可能会提示没有权限,这是用管理员shell或者创建好对应的目录再安卓。
安装好之后,就可以使用用下面的命令使用apktool,提取到当前目录的source目录下。可以看见source目录中和工程目录结构相似。
java -jar apktool.jar d -f com.huawei.search.apk -o source
2、dex2jar
其次,使用 dex2jar反编译 apk 得到 Jar 包。进入dex2jar工具目录中
将apk解压里面得到的classes.dex拷贝到dex2jar工具目录中;执行命令:
./d2j-dex2jar.bat ./classes.dex
会报错,提示是version版本的问题,试了好几个版本都不行。
终于找到一个机灵鬼写的博客,修改classes.dex的头部,用notepad++打开.dex文件,可以看见
dex2jar应该就是通过这个进行version匹配的,可见新版本已经是038,手动改成036保存。这时候可以反编译成功。
再次执行,得到对应的jar文件:
3、jd-gui查看jar源码
最后,通过jd-gui打开反编译的classes-dex2jar.jar文件
即可查看代码,但是绝大多数都是经过混淆的。
上面这一顿操作下来是不是感到很费劲,那么多命令要记住。好在已有集成的逆向工具,一键帮开发者完成反编译。详见交互式反编译器:GDA一文。
更多资料:
apk 反编译 - 最新版图文教程
APKTool用法
decompile-apk
android-security
APKLab
精彩的人生需要浪漫、无畏和勇气。