惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
博客园 - Franky
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
月光博客
月光博客
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
Last Week in AI
Last Week in AI
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
J
Java Code Geeks
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
阮一峰的网络日志
阮一峰的网络日志

音视频开发进阶

音视频教程-第三节 音视频教程-第二节 真的,AI 可能就是新时代的信息差 充值 Cursor 之后,工作有了哪些变化?🤔 个人'蒸馏'大模型能做哪些有意思的事情 DeepSeek 大模型在 Mac 上的部署和运行 音视频教程-第一节 【WebRTC 专栏】-- Android 开发集成 WebRTC 库的几种方式 【WebRTC 专栏】-- 在 Mac M1 等系列芯片编译和开发 WebRTC-Android 库 Meta Llama3 大模型在 Mac 上的部署和运行 iOS VideoToolBox 解码 HEVC Open-GOP 视频的问题排查 Flutter 状态管理之 InheritedWidget 使用和分析 用 ChatGPT 回答技术问题怎么样 ? 音视频开发系统入门大致路线 UE 4.27 添加自定义 ShadingModel 用 UE4 虚幻引擎做个捏脸小功能~~ UE4 材质练习 之 凹凸贴图偏移的使用 UE4 材质练习系列基础 OpenGL上下文创建以及共享机制 007 | 播放器系列专栏-解析 MP4 文件读取信息 006 | 播放器系列专栏-在 Mac 上查看 MP4 格式信息 干货 | 快速抽取缩略图是怎么练成的? 关于直播、WebRTC、FFmpeg 的那些事 005 | 播放器系列专栏-在 Windows 上查看 MP4 格式信息 将音视频中的花屏、绿屏、黑屏问题一网打尽 关于音视频里面的解码帧率和渲染帧率 004 | 播放器系列专栏-认识MP4视频(下) 003 | 播放器系列专栏-认识MP4视频(上) 入门或者转行音视频,应该要怎么做? H264视频文件如何缩放分辨率
搭建 Android 反编译环境
音视频开发进阶 · 2018-01-31 · via 音视频开发进阶

一个专注音视频领域的小圈子

在 MAC 上搭建 Android 反编译环境主要就是三个东西:apktooldex2jarjd-gui 。 apktool 工具主要是将 apk 文件进行反编译,反编译之后的代码为 smali 代码。 dex2jar 工具主要是将 apk 文件文件转成 jar 文件,最后再使用 jd-gui 工具查看刚刚转成的 jar 文件。

apktool、dex2jar、jd-gui 这三个工具是跨平台的,不仅能在 Windows 上使用,也可以在 MAC 上使用。

它们的相应的网站地址为:

  • apktool 官网和下载地址:https://ibotpeaches.github.io/Apktool/install/

  • dex2jar Github 主页:https://github.com/pxb1988/dex2jar 官网和下载地址:https://bitbucket.org/pxb1988/dex2jar/downloads

  • jd-guit Github 主页:https://github.com/java-decompiler/jd-gui 官网和下载地址:http://jd.benow.ca/

安装方法如官网所示:

install-apktool-on-mac

首先还是需要检查 Java 环境是否配好,需要 Java 1.7 的版本,不过我在 MAC 上 Java 1.8 的版本安装也没问题。

步骤如下:

  1. 右键点击下载 wrapper script 脚本,并将它保存重命名为 apktool ,不要带任何文件后缀名。
  2. https://bitbucket.org/iBotPeaches/apktool/downloads 网站去下载 apktool.jar 文件,并将它重命名为 apktool.jar
  3. 将刚刚下载的 apktool.jar 文件和 apktool 文件移到到 /usr/local/bin 目录中去。
  4. 使用 chmod +x 命令赋予上面两个文件执行权限。
  5. 运行 apktool 命令即可验证 apktool 是否安装正确。

如果出现如下图片所示的,则代表安装成功了。

apktool-install-success

jd-gui 和 dex2jar 安装

jd-gui 和 dex2jar 工具直接到官网上下载解压缩就可以使用了。

dex2jar 是一个命令行工具,而 jd-gui 是一个有可视化界面的工具。

jd-gui

测试使用

apktool 使用

反编译 apk 的命令为 :

apktool d[ecode] [options] <file_apk>

编译 apk 的命令为:

apktool b[uild] [option] <app_path>

apktool-decode

如上图,则是将一个 apk 文件进行反编译了,会生成一个与 apk 名称对应的文件夹,这里面就是反汇编之后的东西,其中 smali 文件夹就是汇编代码。

apktool-build

如上图,则是将 app-release 目录重新编译生成 apk 文件了。

在 app-release 目录中会多出两个 distbuild 目录。其中,dist 目录就是生成的 apk 文件目录,而 build 目录就是其他文件目录了。

不过,目前重新编译出来的 apk 文件是不能安装的,因为还没有签名。关于如何给 apk 文件添加签名,应该还需要再来一篇博客学一下才行。

dex2jar 使用

dex2jar 是将 apk 文件转化成 jar 文件的,其实就是将 apk 里的 classes.dex 文件转化成 jar 文件。

将下载的 dex2jar 文件解压之后,进入文件夹内,将 d2j-dex2jar.shd2j_invoke.sh 文件赋予可执行权限。

chmod +x  d2j-dex2jar.sh d2j_invoke.sh

之后就可以运行如下脚本来将对应的 apk 文件转化成 jar 文件了。

 ./d2j-dex2jar.sh /Users/meizu/Demo/Android/AndroidCrackDemo/app/app-release.apk 

还在当前目录下会生成一个 app-release-dex2jar.jar 的文件。这时就需要打开 jd-gui 软件,将生成的 jar 包拖进去即可。

jd-gui-view-jar

参考

http://blog.csdn.net/yanzi1225627/article/details/48215549

原创文章,转载请注明来源:    搭建 Android 反编译环境