⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
- Ask the user to state the exact target URL, IP, account, or resource.
- Ask the user to confirm written authorization and the permitted scope.
- Show the exact command(s) and explain their expected effect.
- Wait for explicit confirmation in the current conversation.
Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
当任务属于以下场景时优先使用本 skill:
AndroidManifest.xml
.so 时切到 native 分析jadx 1.5.5
apktool 3.0.2
frida-ps 17.9.6
adb
java
以下流程高频且参数容易出错,优先用 skill 自带脚本:
jadx + apktool 落盘并产出摘要:scripts/decode.ps1
scripts/frida-run.ps1
scripts/rebuild-sign-install.ps1
scripts/manifest-summary.ps1
以下一行命令保持直接调用,不单独封装:
adb devices
adb logcat
frida-ps -U
jadx --version
apktool --version
scripts/decode.ps1用途:
jadx 和 apktool
package、java_files、smali_dirs、so_files 等摘要jadx 部分反编译错误但仍然有可用产物的情况示例:
pwsh -File "<skill-root>\apk-reverse\scripts\decode.ps1" -ApkPath "D:\DOWNLOAD\app.apk" -Clean
pwsh -File "<skill-root>\apk-reverse\scripts\decode.ps1" -ApkPath "D:\DOWNLOAD\app.apk" -Name demo -SkipJadx
scripts/frida-run.ps1用途:
-f、-n、-U
示例:
pwsh -File "<skill-root>\apk-reverse\scripts\frida-run.ps1" -ListDevices
pwsh -File "<skill-root>\apk-reverse\scripts\frida-run.ps1" -Usb -ListProcesses
pwsh -File "<skill-root>\apk-reverse\scripts\frida-run.ps1" -Usb -Spawn -Package com.example.app -ScriptPath "D:\hooks\test.js"
scripts/rebuild-sign-install.ps1用途:
apktool b 重建 APKzipalign 对齐apksigner 签名与验签adb install
示例:
pwsh -File "<skill-root>\apk-reverse\scripts\rebuild-sign-install.ps1" -ProjectDir "C:\work\apktool_out" -Clean
pwsh -File "<skill-root>\apk-reverse\scripts\rebuild-sign-install.ps1" -ProjectDir "C:\work\apktool_out" -Install -Reinstall -DeviceSerial "127.0.0.1:7555"
说明:
ProjectDir 同目录,便于和原始包、解包目录放在一起scripts/manifest-summary.ps1用途:
示例:
pwsh -File "<skill-root>\apk-reverse\scripts\manifest-summary.ps1" -ManifestPath "C:\work\apktool_out\AndroidManifest.xml"
如果要分析 .so、lib/arm64-v8a/*.so、lib/armeabi-v7a/*.so,再结合:
ida-reverse
radare2
jadx用于:
常用命令:
jadx -d jadx_out app.apk
jadx --single-class com.example.LoginActivity -d jadx_out app.apk
jadx --deobf -d jadx_out app.apk
JEB Pro(可选商业工具)用于:
边界:
tool-index 已确认本机 JEB 可用时调用;否则继续使用 jadx、apktool、Ghidra、IDA 或 radare2。../ops/skill-supply-chain.md 审阅源码、权限、网络行为和版本,再由用户明确确认注册。apktool用于:
AndroidManifest.xml
常用命令:
apktool d app.apk -o apktool_out
apktool b apktool_out -o rebuilt.apk
frida用于:
常用命令:
frida-ps -U
frida -U -f com.example.app -l hook.js
frida-trace -U -f com.example.app -j '*!*certificate*'
adb用于:
常用命令:
adb devices
adb install -r app.apk
adb shell pm list packages
adb logcat
adb pull /data/local/tmp/file .
先确定 APK 大致构成,不急着改包或 Hook。
建议动作:
jadx -d jadx_out app.apk 导出 Java 代码apktool d app.apk -o apktool_out 导出 smali 和资源AndroidManifest.xml
package
application、activity、service、receiver
lib/ 目录里是否有 .so
../reverse-engineering/references/nonpe-format-cookbook.md §7–8):
aapt dump badging + manifest theme/label/icon → E-android-hidden-icon-manifest
service.d / priv-app 等 → E-android-persistence
优先从 jadx_out 读:
MainActivity
Application
常见关键词:
login
sign
encrypt
cipher
token
root
certificate
trust
okhttp
retrofit
webview
如果 Java 代码可读,先在这里定位业务逻辑。
当 jadx 结果不完整、混淆重、或需要实际 patch 时,切到 apktool_out:
smali*/
res/values/strings.xml
AndroidManifest.xml
优先 patch:
android:exported
修改后:
apktool b apktool_out -o rebuilt.apk
或者直接用脚本闭环:
pwsh -File "<skill-root>\apk-reverse\scripts\rebuild-sign-install.ps1" -ProjectDir "apktool_out" -Install -Reinstall -DeviceSerial "127.0.0.1:7555"
说明:
apktool 重建链路apksigner / zipalign
静态分析不足时,用 Frida:
OkHttp / Retrofit / WebView 关键点javax.crypto、MessageDigest
原则:
建议:
frida-*
scripts/frida-run.ps1
.so 分流如果 APK 中包含关键 .so:
apktool 或 jadx 找到 lib/**/*.so
radare2
ida-reverse
遇到这些信号要尽快切 native:
System.loadLibrary() 后关键逻辑消失.so 中最终至少说明:
.so
.so 明显承载核心逻辑时继续死磕 Java 层# 反编译 Java
> ⚠️ Security notice: examples below may include download-and-execute patterns, shown for defensive understanding and authorized testing only. Never run them against systems you do not own.
jadx -d jadx_out app.apk
# 解包 APK
apktool d app.apk -o apktool_out
# 重建 APK
apktool b apktool_out -o rebuilt.apk
# 设备与进程
adb devices
frida-ps -U
# 启动并注入
frida -U -f com.example.app -l hook.js
上游入口: skills/SKILL.md(总控)、routing.md
下游出口:
.so → ida-reverse/ 或 radare2/
reverse-engineering/tools-dynamic.md(Frida 章节)reverse-engineering/SKILL.md
同级关联模块: reverse-engineering/(.so 分析和 Frida 进阶用法)
本 skill 的入口脚本已接入统一自举系统。缺少工具时不会直接报错,而是自动尝试安装。
| 工具 | 可自动安装 | 安装方式 | 说明 |
|---|---|---|---|
| jadx | ✓ | GitHub Release ZIP | 自动下载解压到 %USERPROFILE%\Tools\jadx\ |
| apktool | ✓ | GitHub Release JAR + wrapper | 自动下载 jar 并生成 bat 到 %USERPROFILE%\Tools\apktool\ |
| JEB Pro | ✗ | 用户手动安装并提供有效许可证 | 可选的 Android / ARM 交叉验证工具;第三方 MCP bridge 需单独审计 |
| frida / frida-ps | ✓ | pip install frida-tools | 需要 Python 已安装 |
| adb | ✓ | winget / fallback path | 自动安装 Android Platform-Tools |
| zipalign | ✗ | 需手动安装 Android Build-Tools | sdkmanager "build-tools;35.0.0" |
| apksigner | ✗ | 需手动安装 Android Build-Tools | 同上 |
scripts/decode.ps1:缺 jadx 或 apktool 时自动调用 bootstrap-reverse.ps1
scripts/rebuild-sign-install.ps1:缺 adb 或 apktool 时自动调用 bootstrapscripts/frida-run.ps1:当前仍为手动检查(frida 通常已通过 pip 安装)如果自动安装失败,脚本会抛出明确错误并附带手动安装链接。常见原因:
tool-index 使用了真实工具路径?Adapted from zhaoxuya520/reverse-skill (MIT).