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开发的应该很好反编译从而得到 ...
随机推荐
- VPS主机
腾讯云企业认证 备案域名要是顶级域名格式,所以不能是www.blueheartzf.com,而要是blueheartzf.com
- tinymce 出现 Uncaught (in promise) TypeError: ae(...).createObjectURL is not a function
需要引入两个JS文件:jQuery.tinymce.min.js 和 tinymce.min.js <script type="text/javascript" src=&q ...
- window.onload的使用
window.onload:当页面加载的时候可以调用某些函数 例如: 1.最简单的调用方式 直接写到html的body标签里面,如: <html> <body onload=&quo ...
- [App Store Connect帮助]二、 添加、编辑和删除用户(6)生成 API 密钥
如果已批准您访问 App Store Connect API,您可以生成 API 密钥,以便使用该密钥配置.认证和使用 App Store Connect 服务. 有关管理和保护您密钥的更多信息,请参 ...
- 【转】Java中特殊的String类型
Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第 ...
- 康少带你玩转CSS-1
什么是CSS? 层叠样式表(假如HTML是一个人的话,css就是一个人的装饰品,比如裙子,衣服口红) 用来干什么的 设置标签样式的 css注释 单行注释/**/ 多行注释 /* */ 语法结构 三种引 ...
- 题解报告:hdu 2066 一个人的旅行
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...
- Spring-Security-OAuth2微信网页授权
@Controller public class Controller1 { @Autowired private OAuth2ClientContext context; @Bean @Scope( ...
- 【转】linux之type命令
转自: http://codingstandards.iteye.com/blog/831504 用途说明 type命令用来显示指定命令的类型.一个命令的类型可以是如下之一 alias 别名 keyw ...
- Html学习-File控件学习
情况一:不设置enctype HTML内容 <form action="02Upload.ashx" method="post"> <inpu ...