Mac下对Android apk反编译
在Mac上进行反编译apk,需要三个工具,分别为(附下载地址):
- apktool,下载Mac版
- 作用:资源文件获取,能够提取出图片文件和布局文件进行使用查看
- dex2jar,下载最新的即可,目前是2.0版
- 作用:将apk反编译成java源代码(classes.dex转化成jar文件)
- jd-gui,下载Mac版,jd-gui-osx-1.4.0.tar
- 作用:查看APK中classes.dex转化成出的jar文件,即源代码文件
安装
一、apktool
- 将下载的apktool_xx.jar(apktool_xx.jar重命名为apktool.jar)和apktool.txt(apktool.txt重命名为apktool)
- 可以直接右键重命名
- 也可以再命令行输入,例如:
mv ./apktool.txt ./apktool
- 给予这两个文件,可读可写可执行的权限,
chmod +x apktool.jar
,chmod +x apktool
- 将两个文件(apktool.jar&apktool)移动到/usr/local/bin(需要root)
sudo mv apktool.jar&apktool /usr/local/bin/
- 然后
apktool -v
,出现如下信息代表成功了
~ apktool -v
Apktool v2.3.4 - a tool for reengineering Android apk files
with smali v2.2.2 and baksmali v2.2.2
Copyright 2014 Ryszard Wiśniewski <brut.alll@gmail.com>
Updated by Connor Tumbleson <connor.tumbleson@gmail.com>
二、dex2jar
- 解压,
tree
看一下大致目录结构 - 给予这两个文件,可读可写可执行的权限,
chmod +x d2j-dex2jar.sh
,chmod +x d2j_invoke.sh
.
├── d2j-baksmali.bat
...(省略)
├── d2j_invoke.sh
└── lib
├── antlr-runtime-3.5.jar
├── asm-debug-all-4.1.jar
├── d2j-base-cmd-2.0.jar
├── d2j-jasmin-2.0.jar
├── d2j-smali-2.0.jar
├── dex-ir-2.0.jar
├── dex-reader-2.0.jar
├── dex-reader-api-2.0.jar
├── dex-tools-2.0.jar
├── dex-translator-2.0.jar
├── dex-writer-2.0.jar
└── dx-1.7.jar
1 directory, 32 files
三、jd-gui
- 下载后解压即可
- 如果是最新的Mac OS系统,可能会出现打不开的情况,是因为java版本问题,
java -version
查看当前版本,我电脑上java version "9.0.4"
- 最新的Mac OS系统,主要原因是使用的是jdk 1.9 ,而jd-gui使用的是jdk 1.8。所以我们需要安装在mac上安装java8,按照网上安装java教程,不用更多设置java8路径等等
- 右键jd-gui.app,显示包内容,用你常用的文本编辑器打开
Info.plist
文件,修改<key>JVMVersion</key> <string>1.7+</string>
这一行<key>JVMVersion</key> <string>1.8</string>
,保存后退出 - 基本所有的安装就结束了
反编译开始
apktool d -s ./xx.apk
,执行成功后,会在当前目录下生成一个 xx文件夹,点击去就看到相关apk的资源文件了,拿到其中的classes.dex
。sh dex2jar.sh classes.dex
,执行成功后会生成一个classes_dex2jar.jar
文件- 打开jd-gui,把上面的java包拖进去,然后再就可以导出java源代码了
Mac下对Android apk反编译的更多相关文章
- Android apk反编译基础(apktoos)图文教程
本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了 很久有写过一个广工图书馆主页 ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
- Android APK反编译(一)
apk是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP.反编译apk则是将该安卓工程的源码.资源文件等内容破解出来进行分析. 一.APK反编译基本原理 1.APK分析 apk文 ...
- 【转】Android APK反编译就这么简单 详解(附图)
转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...
- Android APK反编译详解(附图)
转载自http://blog.csdn.net/sunboy_2050/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而 ...
- Android APK反编译easy 详解
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
- Android APK反编译就这么简单 详解(附图)
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
- Android APK反编译详解(附图)(转)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...
- (转)Android APK反编译详解
转载地址:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到 ...
随机推荐
- HDFS01
==============NameNode============== 管理文件系统的命名空间 记录每个文件数据在各个DataNode上的位置和副本信息 协调客户端对文件的访问 NameNode文件 ...
- idea2016的使用心得 --- 太棒了
今天打开myeclipse感觉里面全是project,也懒着换地方了,因为这些代码还要时常看,索性安装了idea试试水,感觉还不错,用起来并不比myeclipse差,跟webstorm差不多,他俩就是 ...
- 通过adb push 从电脑里复制文件到手机里
在开发中.我们 常常 须要 从 电脑 拷贝 一些 文件 到 自己的 app 目录里. 我之前的 方式 是 将 手机 链接 电脑,然后 从 电脑里 找到 app 文件夹,然后 进行 拷贝. 可是 这种 ...
- leaning website
-->SoapUI http://soapui-tutorial.com/home/login/SOAPUI Module 13 - 1, 2, 3, 4, 5, 6 Module 1 ...
- 第一篇 Windows 8 开发Windows Metro style app环境配置
半 饱问 题 到 我 这 里 为 止! 第一篇 Windows 8 开发Windows Metro style app环境配置 2012-09-24 08:24 by 半饱, 1289 阅读, 3 ...
- MSP430 G2553 Timer 中断总结
目前总共用到了四个中断向量,我觉得已经把G2553的所有定时器中断都用到了. 定时器有两个,TA0与TA1,每个定时器又有两个中断向量 1,CCR0到达时的中断,在计数模式时候很有用,平时定时器的基本 ...
- 【转】pycharm常用快捷键
转自:http://www.2cto.com/os/201410/341542.html 转来珍藏着,以后慢慢完善. 编辑类: Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + ...
- PCB MS SQL 标量函数与表值函数(CLR) 实现文件与目录操作
一.C#写SQL SERVER(CLR)实现文件操作 标量函数: 文件移动 ,复制,检测文件存在,写入新文件文本,读取文本,创建目录,删除目录,检测目录是否存在 /// <summary> ...
- js addeventlistener 刮刮贴
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- [Android]异常1-duplicate files during packaging of
异常原因: 可能一>项目存在重复资源文件 可能二>Android Studio与源代码Android Studio不一致 解决方法有: 解决一>查找重复资源,删除或者修改文件 解决二 ...