Mac 下Android apk 的反编译
来源:互联网 发布:聚合数据是什么意思 编辑:程序博客网 时间:2024/05/14 10:02
突然之间心血来潮,想看看反编译到底是咋回事,就看了相关的文档,也是踩了不少坑,今天在这里给大家记录一下,希望能帮助到大家。我们直接开始吧。
第一,环境变量的配置
首先,要下载一些相关的问题,我在这里给大家的下载地址:
[下载地址]
下载之后,解压相关的apktool.zip文件,会看到几个文件,如图所示:
文件有了之后,这时候需要配置环境,
首先,打开终端窗口,把 appt ,apktool,apktool.jar 三个文件拷贝到 usr/local/bin/下面。命令如下:
sudo cp 绝对路径/aapt 绝对路径/apktool 绝对路径/apktool.jar /usr/local/bin/
注意是:sudo cp 加文件的路径, 多个文件拷贝的时候,文件与文件之间需要空格 隔开,
查看文件的路径时,鼠标右键,查看文件的简介,复制“位置”后面的全部内容,后面加“/文件名”
上面的步骤如果完成了,这时候,你可以查看是否成功,
命令: cd /usr/local/bin/
进入bin文件夹下:ls
这时候,查看是否有你刚刚复制的三个文件存在,如果存在说明你复制成功了。
这时候,你调用apktool命令,看apktool的版本是否成功。
命令:apktool -version
如果,你的命令位置还在某个文件夹下时 。
命令cd
回车,退出某个文件夹,回复到刚开始的位置;
如图:
如果,你下载的不是我上面的资源,比如你的版本是早期的活,下面反编译的时候会报错,后面说反编译报错的问题,如果,你这里是2.2.4,说明你的版本是最新的,没什么问题,我们继续往下走。
这时候,我们进行反编译apk文件,上面准备了那么多的事情,现在正是开始了。
命令进入你的apk文件存在的位置,如下:
命令:cd /Users/xxx/Documents/appapk
这时候我是进入到apk文件下面了,大家根据自己的路径走。
接着。命令:apktool d apk的文件名.apk
如图:
这时候是进行反编译,如果执行到这里。算成功
如图:
如果大家遇到下面这种情况,如图:
说明是apktool版本太低出现的缘故,这是需要替换掉“/usr/local/bin/”下apktool.jar文件,
具体下载的地址
和上面复制的命令一样,直接复制到/usr/local/bin/,就可以了,
反编译成功了之后,就会在apk文件所在的位置生成同样的文件夹。
这时候xml文件,资源都是可以打开看的。
第二,用dex2jar和jd-gui
1.dex2jar和jd-gui了,将zhi.apk重命名改成zhi.zip,然后利用解压缩软件解压,得到一个zhi目录,我们要拿到里面的classes.dex文件,如图:
2.解压dex2jar-2.0.zip文件,将classes.dex文件复制到解压的dex2jar文件下
3. 命令进入到dex2jar-2.0所在的文件夹下: cd 绝对路径
4. 如果在dex2jar-2.0下的时候,这是执行命令:sh dex2jar.sh classes.dex
5. 这时候会在dex2jar-2.0生成一个“classes_dex2jar.jar”的文件。
6. 这时候用jd-gui打开文件“classes_dex2jar.jar”,就可以看相关的Java代码了。根据时间来确定,你刚刚生成的文件。
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- mac下反编译Android的apk步骤
- Mac 下Android apk 的反编译
- Mac下反编译Android apk
- Mac 下的 apk 反编译
- mac下的apk反编译
- Mac系统下反编译Android-apk
- 【Android 工具】mac下反编译apk
- Mac下反编译APK
- Mac 下反编译apk
- mac下反编译apk
- mac下反编译apk
- MAC 下反编译 APK
- C++如何实现伪反射!
- LintCode:M-背包问题 II
- Python学习笔记(七)-- Python元组
- [Note]位置属性
- 扩大VMware虚拟机中CentOS7的硬盘空间过程记录
- Mac 下Android apk 的反编译
- NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)
- c++ 基础
- NumPy(2)reshape,dot,flat
- Flask实战2问答平台-完成登录注册功能
- NumPy(3)full,eye,empty,random
- 双向链表
- 如何阻止handler的消息处理
- 线程的几种状态转换