反编译apk需求
在linux系统上反编译安卓app, 有些应用需要知道其主页Activity用于adb指令打开其主页。
使用到的工具是apktool
apktool简介
官网
Apktool是一款开源的、跨平台的Android应用程序反编译和回编译工具。
它能够将APK文件解压并还原成Android应用程序的资源文件和Smali代码,同时支持将修改后的资源文件和Smali代码重新打包成APK文件。
apktool功能
Apktool的主要功能包括资源解码、Smali代码调试、项目结构简化、自动化任务等,广泛应用于Android应用程序的开发、逆向工程、安全研究等领域。通过Apktool,开发者可以更方便地理解和定制Android应用程序,安全研究人员则可以分析应用程序的漏洞和安全性
工具安装
Linux
自动安装脚本
#!/bin/bash
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O ./apktool
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.0.jar -O apktool.jar
chmod +x apktool apktool.jar
sudo mv apktool apktool.jar /usr/local/bin
MacOS
使用 Homebrew 进行安装:
brew install apktool
Windows 系统
- 从 Apktool 官网 下载 apktool.jar 文件和 apktool.bat 文件。
- 将这两个文件放到同一目录下,例如 C:\apktool。
- 将该目录添加到系统的环境变量 PATH 中。
工具使用
apktool d ./hello.apk
会得到类似下面的文件
AndroidManifest.xml apktool.yml assets lib original res smali unknown
此时打开AndroidManifest.xml则不再是乱码,能看到真实的内容了。
注意事项
反编译 APK 文件可能涉及到版权问题,请确保你有合法的权限进行操作。
在重新打包和签名 APK 文件时,需要注意 Android 系统的版本和签名算法的兼容性。
一些类似的 APK 文件处理工具
- Virtuous Ten Studio:一款专业的 APK 反编译软件,可以对安卓 APK 文件进行反编译,查看应用代码,学习他人代码技巧,还可对 APK 代码进行修改,以打造出自己想要的效果。支持所有类型格式文件的编辑处理,包括.M10 文件的编辑。
- ApkAnalyser:Android 静态、虚拟分析工具,用于测试和验证 Android 应用的开发工作。是个完整的工具链,能修改二进制应用,用户可改装、安装、运行应用并验证 logcat 的结果。同时支持资源分析,可解码 XML,查找资源指向和检测应用潜在问题。是个独立的 J2SE 应用,遵循 Apache 开源协议,完全使用 Java 编写。
- APKDB:一款 APK+Dex 文件反编译及回编译工具,针对 Android OS 系统的 APK 文件编译程序,可直接反编译修改。支持对 *.Apk 文件批量反编译及回编译。
- JADX:功能强大的反编译工具,使用简单方便,提供命令行程序和 GUI 程序,支持 Windows、Linux、macOS,能够打开.apk、.dex、.jar、.zip 等格式的文件。
- ApkToolkit:安卓 APK 反编译工具,拥有编译、反编译、签名等功能,对于经常 DIY 安卓软件的朋友来说是必不可少的工具。不过软件暂不支持 WIN8、WINXP 系统。
- jd - gui:用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov 开发,支持 Windows、Linux 和苹果 Mac Os 三个平台。JD 分为 JD - GUI、JD - Eclipse 两种运行方式,JD - GUI 是以单独的程序的方式运行,JD - Eclipse 则是以一个 Eclipse 插件的方式运行。
- Smali2Java:将 smali 代码反编译成 java 代码的工具。基于 apktool v1.5.0(baksmali v1.3.4)生成的 smali 文件,依赖于 smali 文件中的代码行数(.line 关键字)和变量别名(.local 关键字)等信息,最大程度还原原始的 java 代码,具有一定局限性,仅适用于带有行数和变量别名信息的 smali 文件。
- AndroidKiller:基于 apktool 的图形化反编译工具,集 Apk 反编译、Apk 打包、Apk 签名、编码互转、ADB 通信等特色功能于一身。不过该工具出现时间较早,在界面和功能上可能相对落后。
- JEB Decompiler:功能强大的反编译工具,主要用于代码分析和逆向工程。收费版本 JEB Pro 功能全面,可对 Dalvik 字节码、ARM 平台程序、恶意软件等进行逆向工程,支持多种平台和语言的反编译、反汇编及动态调试;免费版本有社区版和演示版,但功能有一定限制。
- 小米人 APK 改之理(Apk IDE):可视化的安卓 Apk 程序文件修改工具,集成了 ApkTool、Dex2jar、JD - GUI 等工具,集 Apk 反编译、打包、签名于一体,还具备语法高亮代码编辑器、关键字搜索替换引擎等功能,可大大简化 Apk 修改过程中的繁琐操作。
作者:帅得不敢出门