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 -o -d tmpfood food.apk // 在当前目录下生成一个tmpfood文件夹,里面为解压APK得到的文件
$ sh dex2jar-0.0.9.15/dex2jar.sh tmpfood/classes.dex // 在tmpfood目录下生成一个classes_dex2jar.jar文件,这个文件就是得到的源码文件

最终得到的文件如下:

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

资源下载:

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

时间: 2024-09-30 01:52:41

Mac下对APK进行反编译的相关文章

【原创】mac下为eclipse安装反编译插件

1.http://jd.benow.ca/ 打开这个网站,找到 JD-Eclipse 选择其中一种方式,下载他到本地. 2.解压缩得到一些文件,文件夹.其中反编译要用到的有,“features”文件夹下的jar文件:“plugins”文件夹下的jar文件. 3.将这个两个jar分别放到eclipse安装文件夹下对应的features.plugins文件夹内. 4.重新启动eclipse. 5.eclipse->windows->perferences->general->Edito

android apk 防止反编译技术第一篇-加壳技术

做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步.这篇主要讲apk的加壳技术,废话不多说了直接进入正题. 一.加壳技术原理 所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想

android apk 防止反编译技术第二篇-运行时修改字节码

上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码.这种方法是在工作中在实现app wrapping时,看到国外的一篇关于android 安全的介绍实现的并且独创.下面我们来介绍一下这种方法. 我们知道apk生成后所有的java生成的class文件都被dx命令整合成了一个classes.dex文件,当apk运行时d

Android Apk的反编译和加密

这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用.下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码. 一.Apk文件组成 Android的应用程序APK文件说到底也是一个压缩文件,那么可以通过解压缩得打里面的文件内容,不过很显然,当你去解压完去查看的时候,发现里面的很多东西和你想象中的不太一样.资源文件等xml文件基本打不开,即使打开了也都是乱码(而这正是Android进行加密过),有些应用会将图片资源等的也加密(如qq音乐). 而既然

android apk 防止反编译技术第四篇-对抗JD-GUI

又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊.好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法.前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372).运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203)和伪加密(http://my.oschina.net/u/2323218/blog/399326),如果有不明白的可以查看我的博客的前三篇中关于这

Android APK通过反编译获取源代码

1.首先将apk文件后缀改为RAR并解压. 2.使用7zip解压rar文件(winrar解压会报错),得到其中的classes.dex文件 3.将解压得到的classes.dex文件放入dex2jar文件夹下--实质为与dex2jar.bat路径一致 4.用dex2jar 把classes.dex文件转为jar文件运行cmd,进入dex2jar所在目录,执行命令:dex2jar.bat   classes.dex  生成 classes_dex2jar.jar 5.最后用jd-gui.exe打开

Android实践APK一键反编译

1.需要软件:onekey-decompile-apk 2.软件功能: 1)集成apktool/dex2jar/jd-gui. 2)只需执行一步即可反编译出apk所有文件(资源文件和jar等等). 3)反编译完毕后自动打开jd-gui反编译jar文件. 3.使用方法: 1)将下载的 onekey-decompile-apk.zip解压缩. 2)将apk文件放到 onekey-decompile-apk目录下. 3)将apk文件拖拽到_onekey-decompile-apk.bat上. 4.执行

android apk 防止反编译技术第五篇-完整性校验(转)

一.完整性校验原理 所谓完整性校验就是我们用各种算法来计算一个文件的完整性,防止这个文件被修改.其中常用的方法就是计算一个文件的CRC32的值或者计算一个文件的哈希值.我们在防止apk被反编译的方法中也可以采用这种方法.我们知道apk生成的classes.dex主要由java文件生成的,它是整个apk的逻辑实现.所以我们可以对classes.dex文件进行完整性校验,来保证整个程序的逻辑不被修改.如果我们想要保证整个apk文件的完整性,也可以对整个apk文件进行完整性校验.下面我们分别来实现对c

android apk 防止反编译技术第三篇-加密

上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码.这种方法是在工作中在实现app wrapping时,看到国外的一篇关于android 安全的介绍实现的并且独创.下面我们来介绍一下这种方法. 我们知道apk生成后所有的java生成的class文件都被dx命令整合成了一个classes.dex文件,当apk运行时d