Mac下对APK进行反编译

    window下进行APK的反编译非常简单,有很多集成工具,选择安装包然后就可以一健反编译得到资源文件和源码的jar,然后使用JD-GUI即可查看源码,使用文本编辑器查看资源文件等。换了MAC之后至今未发现啥给力的反编译工具,没办法,自己整理下反编译的流程,分享之
    其实,反编译工具集最终也是使用我们常用的几个组建来完成APK的反编译,分别是apktool:提取APK中各种资源文件,如图片、布局、各种资源等;dex2jar:将APK中classes.dex转成jar文件,查看源码。

1、apktool:提取APK中各种资源文件

apktool的基本语法为:

{your path}/sh apktool.sh d {your path}/food.apk

然后我们会在apktool.sh的目录下看到一个food文件夹,然后这里就包含了所有的资源文件。其中/res/values/public.xml中包含我们定义的各种ID资源。

下载地址:
https://code.google.com/p/android-apktool/
https://code.google.com/p/android-apktool/wiki/Install
https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.0rc3.jar

2、dex2jar:将APK中classes.dex转成jar文件

最基本的语法:

{your path}/sh dex2jar.sh {your path}/classes.dex

这样我们就可以在classed.dex的目录下看到classes_dex2jar.jar,然后就可以使用JD-GUI打开了。

classes.dex是我们从APK中解压出来的文件。
下载地址:
https://code.google.com/p/dex2jar/
https://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

3、JD-GUI:查看jar文件

这个工具就比较简单了,是用来查看jar文件的。dex2jar生成的jar文件就是使用此工具查看的。没想到官网也提供mac版的。大爱~
另外,android studio已经集成了JD-IntelliJ(Java Decompiler Intellij Plugin),最新版本0.6。
下载地址:
http://jd.benow.ca/
http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.osx.i686.dmg

初始目录如下:



4、具体操作如下:

$ sh apktools/apktool.sh d food.apk // 在当前目录下生成一个food文件夹,里面为提取的资源文件
$ unzip -od tmpfood food.apk // 在当前目录下生成一个tmpfood文件夹,里面为解压APK得到的文件
$ sh dex2jar-0.0.9.15/dex2jar.sh tmpfood/classes.dex // 在tmpfood目录下生成一个classes_dex2jar.jar文件,这个文件就是得到的源码文件

最终得到的文件如下:


查看我们的得到的jar文件:



5、集成脚本

#!/bin/bash
echo 开始反编译$@
fullPath=$@
filePath=${fullPath%'.apk'}
echo 开始提取资源文件...
#sh apktools/apktool.sh -f d $@
java -Xmx512M -Djava.awt.headless=true -jar apktools/apktool.jar -f d -o "${filePath}" $@
echo 开始解压classes.dex...
unzip -od "${filePath}" $@ classes.dex
echo 开始反编译classes.dex为classes_dex2jar.jar...
sh dex2jar/d2j-dex2jar.sh "${filePath}/classes.dex" -f -o "${filePath}/classes.jar"
echo 恭喜,反编译完成,请到${filePath}目录下查看


资源下载:

http://download.csdn.net/detail/ttdevs/8317793


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值