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


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这一神器如果你可以运用熟练你可以应聘本坛新成立的XGT小组 本人怕我编辑错误误导大家所以内容为复制 一个比较方便的适合非开发者的小工具,可以对一些APK程序做自己喜欢的修改! 需要条件 1、JDK(Java Development Kit)2、adb(工具包里已存在) java环境变量设置 安卓的安装文件是apk格式的,Android Package的简称。如果要开发的话需要SDK开发工具等等我们不太熟悉的东西,但是我们可以通过一个APK manager软件,先解压缩apk文件然后对其进行编辑,然后再打包,最后签名。然后就可以安装自己修改过的apk文件了。 1.普通apk文件(就是从各种网站上下载下来的第三方软件) (1)把他放到place-apk-here-for-modding文件夹里面。 (2)打开Script.exe,在CMD窗口中输入22,选择要编辑的apk文件,回车确认 (3)CMD窗口中输入9,apk文件就被反编译到projects文件夹 (4)我们对 project文件夹中的文件进行编辑,一般文件的图片文件放在XXX.apk\res\drawable-hdpi,我们可以通过Photoshop等图像处理软件对其中的图片包括软件的图标进行编辑替换。 (5)CMD窗口中输入11,重新编译apk,你可以看到place-apk-here-for-modding文件夹里面出现了一个unsingedXXX.apk,没有签名软件还是不能安装的 (6)CMD窗口中输入12,apk签名,你可以看到place-apk-here-for-modding文件夹里面出现了一个singedXXX.apk,这样就可以拿过来安装了 (7)如果你手机连接着数据线可以在CMD窗口中输入6,直接用adb安装编辑好的apk文件到手机里。 2.系统apk文件(一般是手机system/路径里面的,像/system/app/xxx.apk(自带应用程序)还有像/system/framework/framework-res.apk都可以编辑 *系统文件的编辑有些风险的,就像你用R.E管理器删除系统应用一样,搞不好就变成循环重启。所以编辑之前还是用recovery做个当前系统的Backup。 *注意要保证你的System文件夹里有足够大的空间,不然改好了push不进去 (1)手机仅充电状态连接电脑,在CMD窗口中输入0(提取系统apk文件),然后他会叫你输入提取路径例如/system/app/xxx.apk,然后会叫你重新命名,这个名字随意 (2)CMD窗口中输入1,apk文件就被解压缩到projects文件夹 (3)我们对 project文件夹中的文件进行编辑,一般文件的图片文件放在XXX.apk\res\drawable-hdpi,我们可以通过Photoshop等图像处理软件对其中的图片包括软件的图标进行编辑替换。 (4)CMD窗口中输入3,重新压缩成apk,你可以看到place-apk-here-for-modding文件夹里面出现了一个unsingedXXX.apk (5)CMD窗口中输入7(把编辑好的系统apk文件重新push到系统里面),他会叫你输入路径,比如输入/system/app/xxx.apk,这个一定要跟你push出来的路径和文件名完全一样这样才能被替换。 通过apk manager可以修改很多东西,比如这是我最的简单修改HD的rom里面皮肤文件 石板皮肤slate.apk,在解锁图片上印了两个小绿人。。像修改软件的图标,修改电量显示图标(修改system/framework/framework-res.apk)也可以通过这种方法的,附上可用的电量替换图标。 对于apk文件修改中,更加高级一些的代码的修改,也就是第二栏advanced 里面的内容我不做介绍。比如修改某些字体颜色的方法。 文件夹说明: keep 保存修改前文件 other 存放APK编译脚本和程序模块 projects 包含反编译出来的文件 place-apk-here-for-modding 存放待修改的文件(文件名一定不要有空格,最好用英文命名) place-apk-here-for-signing 存放待签名的文件 place-apk-here-to-batch-optimize 存放批量处理的文件(可以多个) APK.jpg (138.4 KB) 内部图片优化.jpg (133.02 KB)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值