android逆向工具/命令

2022-09-08 12:08:25 浏览数 (1)

工具

sdkmanager
代码语言:javascript复制
$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
代码语言:javascript复制
$emulator -version
adb
代码语言:javascript复制
$adb version
ndk
代码语言:javascript复制
$sdkmanager ndk-bundle # 下载安装ndk

# 使用CMake构建 使用LLDB进行调试
$sdkmanager cmake;3.6.3155560
$sdkmanager lldb;2.3

$ndk-build -v
javac
代码语言:javascript复制
$javac -source 1.7 -target 1.7 Hello.java # 编译java源文件
dx
代码语言:javascript复制
$dx --dex --output=Hello.dex Hello.class #生成dex文件
javap
代码语言:javascript复制
$javap -c -classpath . Hello #使用javap反编译Hello.class 查看 java字节码
dexdump
代码语言:javascript复制
$dexdump -d Hello.dex #查看Dalvik字节码
baksmali
代码语言:javascript复制
$baksmali -o baksmaliout Hello.dex # 使用baksmali生成smali反汇编文件
smali
代码语言:javascript复制
$smali -o HelloWorld.dex HelloWorld.smali #编译smali文件

#运行dex
$adb push HelloWorld.dex /sdcard/
$adb shell dalvikvm -cp /sdcard/HelloWorld.dex HelloWorld
HelloWorld
apktool

apktool ShakaApktool

apk反编译与回编译工具

代码语言:javascript复制
# 反编译
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

代码语言:javascript复制
java -jar signapk.jar testkey.x509.pem testkey.pk8 xx.apk test_signed.apk
smali/baksmali

smali/baksmali dex文件的反编译与回编译工具

dex2jar

dex2jar 将dex转换为jar包工具

代码语言:javascript复制
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提升下权限就可以了

代码语言:javascript复制
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
代码语言:javascript复制
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命令

代码语言:javascript复制

$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工具原理解析

0 人点赞