工具
sdkmanager
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $sdkmanager --list # 查看已经安装的及可安装的SDK包
$sdkmanager emulator # 下载安装模拟器
$sdkmanager platform-tools # 下载安装工具 adb fastboot
$sdkmanager --update # 更新所有可更新的包
# 以android7.1开发为例,执行如下命令
$sdkmanager build-tools;25.0.3 $sdkmanager docs $sdkmanager platforms;android-25 $sdkmanager sources;android-25
|
emulator
adb
ndk
1 2 3 4 5 6 7 8
| $sdkmanager ndk-bundle # 下载安装ndk
# 使用CMake构建 使用LLDB进行调试 $sdkmanager cmake;3.6.3155560 $sdkmanager lldb;2.3
$ndk-build -v
|
javac
1
| $javac -source 1.7 -target 1.7 Hello.java # 编译java源文件
|
dx
1
| $dx --dex --output=Hello.dex Hello.class #生成dex文件
|
javap
1
| $javap -c -classpath . Hello #使用javap反编译Hello.class 查看 java字节码
|
dexdump
1
| $dexdump -d Hello.dex #查看Dalvik字节码
|
baksmali
1
| $baksmali -o baksmaliout Hello.dex # 使用baksmali生成smali反汇编文件
|
smali
1 2 3 4 5 6
| $smali -o HelloWorld.dex HelloWorld.smali #编译smali文件
#运行dex $adb push HelloWorld.dex /sdcard/ $adb shell dalvikvm -cp /sdcard/HelloWorld.dex HelloWorld HelloWorld
|
apktool
ShakaApktool
apk反编译与回编译工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 反编译 java -jar apktool.jar d -f <xx.apk> -o <XX> java -jar apktool_2.3.3.jar d -f xx.apk -o XX
java -jar apktool.jar -r -f d xx.apk -o xx #-r忽略资源文件-f强制删除现有文件夹
apktool 参数 -f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。 -o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。 -s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。 -r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。
#回编译 java -jar apktool.jar b XX
|
signapk
signapk
1
| java -jar signapk.jar testkey.x509.pem testkey.pk8 xx.apk test_signed.apk
|
smali/baksmali
smali/baksmali
dex文件的反编译与回编译工具
dex2jar
dex2jar
将dex转换为jar包工具
1 2 3 4 5 6 7 8 9 10 11
| 1.把apk的后缀名修改成.zip 2.解压 3.获取classes.dex(有的时候会有多个classes.dex) 4.把classes.dex 文件放到 dex2jar 文件夹内
命令:
d2j-dex2jar classes.dex // 会生成classes-dex2jar.jar
mac: sh d2j-dex2jar.sh classes.dex
|
使用dex2jar会提示没有权限
d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
使用命令把dex2jar提升下权限就可以了
sudo chmod -R 777 dex2jar-2.0
jd-gui
jd-gui
查看jar包的java代码
使用jd-gui打开classes-dex2jar.jar就可以看到源代码了
jadx
jadx
可直接反编译apk或dex
010Editor
010 Editor
跨平台的二进制编辑器
DDMS
1 2
| adb 连接设备管理 adb connect 127.0.0.1:62001 //连接夜神模拟器
|
JEB
jeb
跨平台Android静态分析工具
IDA Pro
静态反编译软件
BytecodeViewer
ava反编译器,Java字节码编辑器,APK编辑器,Dex编辑器,APK反编译器,DEX反编译器,Hex查看器,代码搜索器和代码调试器。
BytecodeViewer
java -jar Bytecode-Viewer-2.9.11.jar
ZjDroid
基于Xposed的一款脱壳神器ZjDroid工具
ZjDroid github
Androguard
跨平台恶意软件分析套件p175
Androguard
MobSF
同时支持Android、ios、Windows 平台上的软件分析,同时支持静态分析、动态分析及Web API测试
MobSF
集成工具
macos
Android-Crack-Tool
windows
Android Killer
常用linux shell命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ls /xx #列出文件目录
$cat ./build.gradle #在终端输入文件内容
$grep -r "hello" ./ #grep命令用于搜索匹配文本内容
$grep -r "hello" ./ -A 10 # 查看前10条
$grep -r "hello" ./ | grep "world" # 同时包含 hello world字符串的文件并列出
$mkdir -p foo/bar #创建文件夹 -p多级目录
$unzip -d /temp xx.zip #解压文件 $unzip -l xx.zip #查看包含文件
$file android.jar #查看文件格式及内容
|
相关链接
Android 反编译神器jadx的使用
Smalidea+IntelliJ IDEA/Android Studio动态调试安卓app教程
ZjDroid工具介绍及脱壳详细示例
Android中Xposed框架篇—基于Xposed的一款脱壳神器ZjDroid工具原理解析
Author:
tea9
Permalink:
http://tea9.github.io/post/1200045731.html
License:
Copyright (c) 2017-2025 CC-BY-NC-4.0 LICENSE
Slogan:
Do you believe in DESTINY?