Android反编译

转载 2015年11月19日 02:03:27

转载自:http://blog.csdn.net/hanhailong726188/article/details/42368295

最近群里有人问如何在mac下进行apk反编译,我也没试过,以前都是在windows下进行反编译的,windows下很简单,有许多比较好的集成工具,如apkide(改之理),不过我猜mac下应该和windows下差不多,趁着嗑瓜子的功夫,我研究了下mac下如何进行apk反编译,其实和windows下是一样,我在这里记录了下:


第一步:下载反编译工具集,apktool、dex2jar、jd-gui,最后我会上传这些工具,解压后如下图:

下面那个弹出框是JD-GUI的,用来将字节码反编译成java源文件用的


第二步,工具集准备好之后还不能进行反编译,你在命令窗口下执行输入apktool 会提示命令不存在,需要配置一下环境变量

,怎么配置呢,如下命令:

       1.打开命令窗口,cd /usr/local/bin下,可能有的mac电脑不存在bin这个目录,直接在创建一个就好了,命令是:sudo mkdir bin,执行后会让你输入root权限密码,输入完后执行ls命令查看,bin目录就存在了,如图:

       2.将你解压后的apktool文件夹下的三个文件aapt、apktool、apktool.jar 复制到/usr/local/bin/目录下,怎么复制呢,当然用命令cp了,如下图:

 

复制多个文件用空格隔开,android-workspace/APK/apktool/目录是源目录,存放的是我们要复制的那三个文件,执行命令后,提示输入密码,输完密码后就复制成功了,ls查看一下,这三个文件已经存在了。


这时候就已经配置好环境变量PATH了,什么,我怎么没看到和PATH有关的任何命令,其实,/usr/local/bin本来就在PATH下,不信我执行命令你看:

这也是我们把apktool3个文件放在/usr/local/bin下的原因,现在你再输入apktool命令试试:

输出这样的命令就代表环境配置好了


第三步:开始进行反编译了,其实用到的命令也很简单,我们随便拿一个apk来,例如:

我们要对dz-android.apk进行反编译,命令行进入这个目录 cd /Users/hailonghan/android-workspace/APK,到这个目录后,

执行命令apktool d dz-android.apk,如下图:

执行成功后,会在当前目录下生成一个da-android文件夹,点击去就看到相关apk的资源文件了,选中AndroidManifest.xml,然后空格键,就可以看到反编译后的内容了:

第四步:反编译java源文件

这就用到dex2jar和jd-gui了,将dz-android.apk重命名改成dz-android.zip,然后利用解压缩软件解压,得到一个dz-android目录,我们要拿到里面的classes.dex文件,如图:


将其复制到dex2jar-0.0.9.15目录下,如图:


然后执行命令:sh dex2jar.sh classes.dex,如图:


执行成功后会生成一个classes_dex2jar.jar文件,如图:


最后,用jd-gui工具打开这个jar包就可以看到java源代码了,如图:




最后附上apktool、dex2jar、jd-gui下载地址:下载地址



版权声明:本文为博主原创文章,未经博主允许不得转载。


Android反编译工具与技巧总结

相关工具: apktool java -jar apktool.jar ssss.apk 1、反编译dex -> smali文件 2、res文件夹可读 3、AndroidManifest.x...
  • AuthorK
  • AuthorK
  • 2017年10月25日 17:03
  • 958

手把手教你搞懂 Android 反编译

我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分: 一个是对代...
  • yuanyuan_815
  • yuanyuan_815
  • 2016年07月04日 10:29
  • 5589

android 防止反编译的若干方法

第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: ...
  • xiangzhihong8
  • xiangzhihong8
  • 2016年05月31日 11:05
  • 2533

Android逆向实例笔记—初入so并还原分析出代码

很久没有出基础教程了,这里做一个鬼哥的so的作业吧。很基础的东西,算是教学帖子吧。大牛路过吧。这里感谢鬼哥的apk和无名侠的软件 首先我们打开鬼哥提供的apk看看。 其余没有发现什么,我们直接AK...
  • qq_24349189
  • qq_24349189
  • 2016年10月29日 23:40
  • 4975

Android打包系列 JAR反编译修改后重新打包

在工作中,有些第三方JAR不能满足我们的特殊需求,所以经常会有需要修改JAR的情况,这里给出基本的修改思路,然后再辅以实例。 思路 使用反编译工具JD-GUI)打开要修改的ja...
  • congqingbin
  • congqingbin
  • 2016年12月18日 16:17
  • 992

Android之反编译技术

我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个...
  • Lingbulei
  • Lingbulei
  • 2018年01月08日 14:43
  • 183

Android Studio 混淆,多渠道打包,反编译 使用

混淆简单配置build.gradle的android节点下添加:buildTypes { release { minifyEnabled true ...
  • Gold_brick
  • Gold_brick
  • 2016年10月10日 17:17
  • 1554

Android应用逆向——分析反编译代码之大神器

如果说使用dex2jar和JD-GUI获得了一个APP反编译后的JAVA代码,再结合smali代码调试器来进行调试还不够爽,不够畅快的话,下面将介绍一个帮助分析代码执行流程的大神器。这个神器优点很多,...
  • CharlesSimonyi
  • CharlesSimonyi
  • 2016年07月25日 21:18
  • 5287

Android studio 代码混淆、分渠道打包和反编译

Android studio 是googol正式推出代替eclipse的IDE 。 核心文件是build.gradle,可以配置 maven自动代码库 ,并任意修改工程包名   一、    混淆 ...
  • moonljt521
  • moonljt521
  • 2015年11月22日 16:18
  • 1549

Android反编译-逆天的反编译

Jar包的反编译: Java的世界是透明的,当编译java程序的时候,是将java源文件à.class文件,java虚拟机去执行这些字节码从而得到运行java程序的目的。那么从.class文件能不能得...
  • Main_Stage
  • Main_Stage
  • 2014年06月10日 15:31
  • 2494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android反编译
举报原因:
原因补充:

(最多只允许输入30个字)