Android 安全与逆向 / 逆向与 Hook

第一次逆向自己的 Android APK:用 JADX 找代码、用 Frida 看运行时

在可重置模拟器中用 JADX、Apktool 与 Frida 分析自有 APK,完成一次只观察、不绕过保护的静态与动态交叉验证。

本篇完成任务

从自有或 OWASP 练习 APK 定位一个方法,观察其运行时调用,并保存可重复的证据与回滚点。

这篇教程带你分析自己编译的 Debug APK,或 OWASP 明确提供的 Android UnCrackable L1。你会先用 JADX 和 Apktool 阅读静态结构,再用 Frida 观察一个方法何时被调用。目标是理解“代码视图”和“运行证据”如何互相验证,不是绕过银行 App、付费校验、Root 检测或证书锁定。

你会完成什么#

  • 为样本记录来源、授权、SHA-256、包名和实验环境。
  • 在 JADX 中找到入口 Activity、一个控件回调和对应方法。
  • 用 Apktool 的 Manifest、资源与 smali 视图交叉检查 JADX 结论。
  • 用 Frida 只观察一个实验方法的调用,并在结束后恢复模拟器快照。

先看结论#

你的情况建议路线原因
有自己编译的 Debug APK直接使用它行为已知、授权清楚,最适合第一次实验
没有自有 APK使用 OWASP UnCrackable L1官方教学样例,有固定目标和公开来源
只有生产 App,且你是维护者先取得团队书面授权并建立测试构建生产数据、反篡改和服务条款会扩大风险
目标属于他人、金融或公司内部 App不继续没有授权的动态插桩不在本教程范围

心智模型#

原始 APK
  ├─ SHA-256 + 只读副本
  ├─ JADX:近似 Java 视图 ─┐
  └─ Apktool:资源/smali ──┼─ 找到同一方法
                           ↓
                    Frida 只观察调用
                           ↓
                证据表 → 停止服务 → 回滚快照

JADX 生成的是帮助阅读的近似源码;变量名、控制流和部分类型可能不完整。Apktool 展示的 smali 更接近 DEX 指令,但更难读。两种视图指向同一组件,再由运行日志证明方法确实被调用,结论才比“搜到一个字符串”可靠。

工具清单#

工具角色什么时候用来源与注意
JADX浏览 DEX、Manifest 和资源引用第一次静态定位反编译不保证 100% 还原,遇到错误要回到 smali
Apktool解码资源、Manifest 与 smali交叉检查组件和方法本教程只解码,不重签、不安装修改版
Frida观察运行时方法调用静态目标已经明确之后只在自有实验室;官方入门通常使用 Root 测试设备
ADB识别设备、安装样例、读取基础状态每一步的只读确认下载官方 Platform Tools,不用“万能工具包”
Android Emulator 快照保存和恢复实验状态安装任何样例之前只用 adb root 验证过的官方可调试镜像;快照不是样本保管链
OWASP Crackmes合法教学样例没有自有 APK 时只从 OWASP 页面取得,记录具体文件哈希

项目全景:逆向与 Hook的 48 个项目,一个不漏#

以一台明确获授权的可调试测试机为主线,从实验环境、注入通道、Hook 与内存观察,到检测绕过研究和防守侧 RASP 验证,串起本组全部项目;成品文章不得把绕过脚本写成面向第三方 App 的通用破解方案。

技术路线项目数处理等级在主题任务中的位置
实验台与联调工作流5候选路线放在教程开端,说明如何用模拟器或自有测试 APK、Burp/mitmproxy 和自动化工作台组成可复现环境;BrutDroid、Fridagate、Pen-Andro、jezail 一类项目负责搭环境而不是替代授权判断。
Frida 部署、注入与连接8候选路线在环境确认后比较 rooted frida-server、Magisk 管理、Frida Gadget、JDWP 和便携注入器的连接路径,讲清 root 与 non-root 的差异、版本配套及卸载恢复。
检测与 Pinning 的受控观察22参考/审计把 root、模拟器、调试器、完整性与 TLS pinning 脚本当作学习“检测面”的样本:先定位调用点,再在自建应用验证,记录脚本覆盖范围、误报和版本失效,不提供针对真实服务的滥用步骤。
Hook 框架与内存观测原语3候选路线进入原理层,区分 ART 方法 Hook、native inline hook、JNI/内存插桩和 DEX 观察;用最小 demo 展示调用前后差异,并明确 ABI、进程位数和崩溃回滚边界。
防守侧 RASP 与检测 SDK8参考/审计把 Free-RASP 多端 SDK、Hydra 和 Frida 检测库放在防守阶段,演示如何在自有应用收集信号、避免单点封禁,并用前述实验台做回归测试。
专项样本、风险项目与误收录核查2边界复核逐项收纳未命中项目,说明它是专项研究、描述不足、游戏作弊或与 Android 逆向无关;仍保留项目名和链接以满足覆盖,但只给定位、风险和是否应迁类,不给可滥用操作。

1. 实验台与联调工作流 · 5#

放在教程开端,说明如何用模拟器或自有测试 APK、Burp/mitmproxy 和自动化工作台组成可复现环境;BrutDroid、Fridagate、Pen-Andro、jezail 一类项目负责搭环境而不是替代授权判断。

本组共 5 项:4 个源项目、1 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
Brut-Security/BrutDroid主题用途:将 Brut-Security/BrutDroid 纳入「实验台与联调工作流」候选路线,根据 JavaScript 核对功能、平台与版本适配。 上游自述(保留原文):BrutDroid - Android Studio Pentest Automator: Streamline mobile pentesting with automated emulator rooting, Frida, and Burp Suite integration.未归档源项目 · ★ 619 · MIT · 2025-07-17。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
raoshaab/Pen-Andro主题用途:将 raoshaab/Pen-Andro 纳入「实验台与联调工作流」候选路线,根据 adb · automation · bash · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Script to Automate installtion of Apps ,frida server and moving Burpsuite certificate to root folder未归档源项目 · ★ 272 · GPL-3.0 · 2024-01-28。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
zahidaz/jezail主题用途:将 zahidaz/jezail 纳入「实验台与联调工作流」候选路线,根据 adb · android · android-application · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Android pentesting toolkit with REST API, web terminal, screen mirroring, Frida, and full device control from your rooted device未归档源项目 · ★ 261 · MIT · 2026-02-26。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
hexsecteam/BrutDroid主题用途:将 hexsecteam/BrutDroid 纳入「实验台与联调工作流」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):BrutDroid - Android Studio Pentest Automator: Streamline mobile pentesting with automated emulator rooting, Frida, and Burp Suite integration.未归档 Fork · ★ 34 · MIT · 2025-07-17。Fork:采用前先与上游比较提交、Release 和维护者说明。
JavierOlmedo/Fridagate主题用途:将 JavierOlmedo/Fridagate 纳入「实验台与联调工作流」候选路线,根据 android · android-pentesting · android-tool · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):🪝 Android pentesting toolkit - Frida server manager + Burp Suite proxy未归档源项目 · ★ 7 · MIT · 2026-04-28。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

2. Frida 部署、注入与连接 · 8#

在环境确认后比较 rooted frida-server、Magisk 管理、Frida Gadget、JDWP 和便携注入器的连接路径,讲清 root 与 non-root 的差异、版本配套及卸载恢复。

本组共 8 项:8 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
ac3ss0r/DroidFrida主题用途:将 ac3ss0r/DroidFrida 纳入「Frida 部署、注入与连接」候选路线,根据 android · frida · hooking · Java 核对功能、平台与版本适配。 上游自述(保留原文):Portable frida injector for rooted android devices.未归档源项目 · ★ 211 · Apache-2.0 · 2023-07-24。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
frankheat/frida-jdwp-loader主题用途:将 frankheat/frida-jdwp-loader 纳入「Frida 部署、注入与连接」候选路线,根据 Python 核对功能、平台与版本适配。 上游自述(保留原文):A Python script that dynamically attaches Frida to any debuggable Android process over JDWP, enabling runtime instrumentation without root access or APK repackaging未归档源项目 · ★ 158 · MIT · 2026-04-16。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
imanshul/react-native-detect-frida主题用途:将 imanshul/react-native-detect-frida 纳入「Frida 部署、注入与连接」候选路线,根据 android-root · detect-frida · detector · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):A React-Native library to detect if frida server is running or not.未归档源项目 · ★ 44 · MIT · 2026-03-03。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
theShinigami/MaFrida主题用途:将 theShinigami/MaFrida 纳入「Frida 部署、注入与连接」候选路线,根据 android · frida · magisk · Shell 核对功能、平台与版本适配。 上游自述(保留原文):A Magisk module that simplifies running the Frida server on Android, with easy management commands to download specific versions, enable or disable the server, and more.未归档源项目 · ★ 35 · 协议未声明 · 2026-07-08。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
jailbreakmerebooted/FridaRootManager主题用途:将 jailbreakmerebooted/FridaRootManager 纳入「Frida 部署、注入与连接」候选路线,根据 Perl 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 29 · 协议未声明 · 2023-12-15。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
jeanzuck/frida_gadget_apk_injector主题用途:将 jeanzuck/frida_gadget_apk_injector 纳入「Frida 部署、注入与连接」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):A tool to inject Frida Gadget into APK files and deploy them to non-root Android devices.未归档源项目 · ★ 18 · 协议未声明 · 2026-06-09。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
muhammadrizwan87/frida-bridge主题用途:将 muhammadrizwan87/frida-bridge 纳入「Frida 部署、注入与连接」候选路线,根据 android · frida · frida-bridge · C 核对功能、平台与版本适配。 上游自述(保留原文):Native JNI bridge to load Frida Gadget — Frida with no root, no APK repacking, containers supported.未归档源项目 · ★ 11 · NOASSERTION · 2026-07-19。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
chenxqiyu/android_ce_frida_root主题用途:将 chenxqiyu/android_ce_frida_root 纳入「Frida 部署、注入与连接」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):root版本一键启动CeServer或frida未归档源项目 · ★ 7 · 协议未声明 · 2026-02-05。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

3. 检测与 Pinning 的受控观察 · 22#

把 root、模拟器、调试器、完整性与 TLS pinning 脚本当作学习“检测面”的样本:先定位调用点,再在自建应用验证,记录脚本覆盖范围、误报和版本失效,不提供针对真实服务的滥用步骤。

本组共 22 项:22 个源项目、0 个 Fork,其中 0 项已归档。它们用于对照、诊断或审计,不组成可批量安装的推荐清单。

项目上游定位与识别信号状态与采用前检查
AshenOneYe/FridaAntiRootDetection主题用途:将 AshenOneYe/FridaAntiRootDetection 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):A frida script for bypass common root detection,the collection of detection methods is still improving!未归档源项目 · ★ 238 · 协议未声明 · 2023-06-07。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
thecybersandeep/frida-script-gen主题用途:将 thecybersandeep/frida-script-gen 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 Python 判断它与当前任务的边界。 上游自述(保留原文):Generate Frida bypass scripts for Android APK root and SSL checks.未归档源项目 · ★ 215 · 协议未声明 · 2025-06-07。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
fdciabdul/Frida-Multiple-Bypass主题用途:将 fdciabdul/Frida-Multiple-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):Frida Multiple Bypass (SSL Pinning + Root Detection + Emulator Detection + Frida Detection + Flutter tls)未归档源项目 · ★ 176 · 协议未声明 · 2025-08-28。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
okankurtuluss/FridaBypassKit主题用途:将 okankurtuluss/FridaBypassKit 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android · android-security · bypass · JavaScript 判断它与当前任务的边界。 上游自述(保留原文):Android Universal Anti-Bypass Framework - Root, SSL Pinning, Emulator & Debug Detection Bypass未归档源项目 · ★ 148 · 协议未声明 · 2025-06-12。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
themalwarenews/frida_rootandsslbypass主题用途:将 themalwarenews/frida_rootandsslbypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android · android-bypass · frida · JavaScript 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 97 · 协议未声明 · 2023-05-24。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
thinkerMid/bangbang_anti_frida_root主题用途:将 thinkerMid/bangbang_anti_frida_root 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):梆梆加固反调试和root未归档源项目 · ★ 88 · 协议未声明 · 2022-03-24。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
user1342/DISintegrity主题用途:将 user1342/DISintegrity 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android · apktool · reverseengineering · Python 判断它与当前任务的边界。 上游自述(保留原文):A tool for analysing Android APKs and extracting root, integrity, and tamper detection checks.未归档源项目 · ★ 81 · GPL-3.0 · 2024-04-13。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
0xSHAK1B/TIKTOK-SSL-Pinning-Bypass主题用途:将 0xSHAK1B/TIKTOK-SSL-Pinning-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android-security · bug-bounty · burp-suite · JavaScript 判断它与当前任务的边界。 上游自述(保留原文):Bypass TikTok SSL/TLS certificate pinning on Android to intercept & analyze HTTPS traffic — root & no-root, works with Burp Suite, mitmproxy & Reqable (2026).未归档源项目 · ★ 79 · MIT · 2026-07-04。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
apkunpacker/Root_Bypass主题用途:将 apkunpacker/Root_Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):Generic Frida Script To Bypass Root Detection未归档源项目 · ★ 54 · 协议未声明 · 2022-09-25。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
Whitehat987/apkshield-pt主题用途:将 Whitehat987/apkshield-pt 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android · frida · frida-scripts · Python 判断它与当前任务的边界。 上游自述(保留原文):Android Penetration Testing Tool — Auto Root Detection & SSL Pinning Bypass with Frida Script Generation未归档源项目 · ★ 34 · MIT · 2026-05-13。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
AymanRbati/root-detection-bypass主题用途:将 AymanRbati/root-detection-bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android-application · apk · masvs · Python 判断它与当前任务的边界。 上游自述(保留原文):A tool capable of bypassing easy root detection mechanisms by patching applications automatically (without frida).未归档源项目 · ★ 32 · 协议未声明 · 2024-06-20。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
riyadmondol2006/Android-Root-Detection-Bypass---Frida-Script主题用途:将 riyadmondol2006/Android-Root-Detection-Bypass---Frida-Script 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 24 · NOASSERTION · 2025-06-13。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
0xSHAK1B/Facebook-SSL-Pinning-Bypass主题用途:将 0xSHAK1B/Facebook-SSL-Pinning-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 bug-bounty · bypass-ssl-pinning-facebook · facebook-api-graph · Shell 判断它与当前任务的边界。 上游自述(保留原文):Bypass Facebook SSL/TLS certificate pinning on Android to intercept & analyze HTTPS traffic — root & no-root, works with Burp Suite, mitmproxy & Reqable (2026).未归档源项目 · ★ 16 · GPL-3.0 · 2026-06-19。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
nicktplay/frida-for-android主题用途:将 nicktplay/frida-for-android 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):JavaScript files used to bypass Root Detection & SSL Pinning in Frida.未归档源项目 · ★ 15 · 协议未声明 · 2022-09-12。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
0xSHAK1B/Instagram-SSL-Pinning-Bypass主题用途:将 0xSHAK1B/Instagram-SSL-Pinning-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 bug-bounty · burp-suite · certificate-pinning · Shell 判断它与当前任务的边界。 上游自述(保留原文):Bypass Instagram SSL/TLS certificate pinning on Android to intercept & analyze HTTPS traffic — root & no-root, works with Burp Suite & mitmproxy (2026).未归档源项目 · ★ 15 · MIT · 2026-07-15。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
0xSHAK1B/Threads-SSL-Pinning-Bypass主题用途:将 0xSHAK1B/Threads-SSL-Pinning-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android-security · bug-bounty · bypass-threads-ssl-pinning · Shell 判断它与当前任务的边界。 上游自述(保留原文):Bypass Threads (Instagram) SSL/TLS certificate pinning on Android to intercept & analyze HTTPS traffic — root & no-root, works with Burp Suite & mitmproxy (2026).未归档源项目 · ★ 12 · MIT · 2026-07-15。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
vikassuhane/Frida-Universal-Android-Hardening-Bypass主题用途:将 vikassuhane/Frida-Universal-Android-Hardening-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):Frida Universal Android Hardening Bypass is an advanced toolkit powered by Frida to dynamically bypass Android app security protections in real-time. It targets mechanisms like root detection, SSL pinning, anti-debugging, emulator checks, and Flutter-specific defenses - making it ideal for ethical hackers, mobile pentesters, and reverse engineers.未归档源项目 · ★ 11 · 协议未声明 · 2025-06-08。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
0xSHAK1B/Messenger-SSL-Pinning-Bypass主题用途:将 0xSHAK1B/Messenger-SSL-Pinning-Bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android-security · certificate-pinning · facebook-messenger · Shell 判断它与当前任务的边界。 上游自述(保留原文):Bypass Facebook Messenger SSL/TLS certificate pinning on Android to intercept & analyze HTTPS traffic — root & no-root, works with Burp Suite & mitmproxy (2026).未归档源项目 · ★ 9 · MIT · 2026-06-27。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
jenn619/frida_Hook_tools_Android主题用途:将 jenn619/frida_Hook_tools_Android 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):基于 (Frida)(https://frida.re/) 的 Android 应用安全分析工具集,运行时自动捕获加密/哈希参数,监控网络请求、WebView、动态加载等行为,并内置 Root/模拟器检测绕过。该项目适合渗透测试人员,遇到加了挺牛b的壳的app绕不过也正常,倘若目标app把类名做了混淆,可以把混淆后的类名与脚本中的类名做替换未归档源项目 · ★ 9 · 协议未声明 · 2026-06-29。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
kaungkhantpy/frida-adv-rootdetection-sslpinning-bypass主题用途:将 kaungkhantpy/frida-adv-rootdetection-sslpinning-bypass 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):This is the frida script that I combined both root detection and ssl pinning in android application security assessment.未归档源项目 · ★ 6 · 协议未声明 · 2020-04-28。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
akhilrai0903/frida-reversing-lab主题用途:将 akhilrai0903/frida-reversing-lab 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 android-security · bug-bounty · bugbounty-tool · JavaScript 判断它与当前任务的边界。 上游自述(保留原文):A comprehensive collection of Frida scripts and Python tools for Android dynamic analysis. Includes PoCs for bypassing SSL pinning, root detection, obfuscation, and client-side cryptographic integrity checks.未归档源项目 · ★ 5 · 协议未声明 · 2025-12-28。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
beatbeast007/F-RootKiller主题用途:将 beatbeast007/F-RootKiller 放在「检测与 Pinning 的受控观察」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):An advanced Frida-based instrumentation suite designed for Android App VAPT and security auditing.未归档源项目 · ★ 5 · MIT · 2025-12-30。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。

4. Hook 框架与内存观测原语 · 3#

进入原理层,区分 ART 方法 Hook、native inline hook、JNI/内存插桩和 DEX 观察;用最小 demo 展示调用前后差异,并明确 ABI、进程位数和崩溃回滚边界。

本组共 3 项:3 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
ALEX5402/Hooking-library-Android主题用途:将 ALEX5402/Hooking-library-Android 纳入「Hook 框架与内存观测原语」候选路线,根据 64bit-assembly · 64bit-hook · android · C++ 核对功能、平台与版本适配。 上游自述(保留原文):This is a open source project for hooking function from any apps on runtime not for root environment未归档源项目 · ★ 17 · 协议未声明 · 2022-12-08。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
HanSoBored/Android-Mem-Kit主题用途:将 HanSoBored/Android-Mem-Kit 纳入「Hook 框架与内存观测原语」候选路线,根据 dobby · hooking · il2cpp · C 核对功能、平台与版本适配。 上游自述(保留原文):A comprehensive llibrary for Android memory instrumentation.未归档源项目 · ★ 13 · NOASSERTION · 2026-06-14。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
IR0NBYTE/Sandwitcher主题用途:将 IR0NBYTE/Sandwitcher 纳入「Hook 框架与内存观测原语」候选路线,根据 android · android-library · android-sdk · Kotlin 核对功能、平台与版本适配。 上游自述(保留原文):Runtime ART method hooking for Android. Intercept any Java/Kotlin method without root or recompilation. Ships as an AAR.未归档源项目 · ★ 5 · Apache-2.0 · 2026-03-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

5. 防守侧 RASP 与检测 SDK · 8#

把 Free-RASP 多端 SDK、Hydra 和 Frida 检测库放在防守阶段,演示如何在自有应用收集信号、避免单点封禁,并用前述实验台做回归测试。

本组共 8 项:8 个源项目、0 个 Fork,其中 0 项已归档。它们用于对照、诊断或审计,不组成可批量安装的推荐清单。

项目上游定位与识别信号状态与采用前检查
talsec/Free-RASP-Community主题用途:将 talsec/Free-RASP-Community 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 app-shielding · application-security · appsec 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 500 · MIT · 2026-03-05。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-Android主题用途:将 talsec/Free-RASP-Android 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 android · android-app-shielding · android-library · Kotlin 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 256 · MIT · 2026-05-19。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-Flutter主题用途:将 talsec/Free-RASP-Flutter 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 flutter · flutter-app-shielding · flutter-application-security · C 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 253 · MIT · 2026-06-11。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-ReactNative主题用途:将 talsec/Free-RASP-ReactNative 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 freerasp · react-native · react-native-app-security · C 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 168 · MIT · 2026-07-16。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
iamjosephmj/hydra主题用途:将 iamjosephmj/hydra 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 Kotlin 判断它与当前任务的边界。 上游自述(保留原文):A Gradle-plugin RASP for Android — dynamically bake root/hooking/cloning/integrity checks into any APK at build time.未归档源项目 · ★ 47 · NOASSERTION · 2026-07-11。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-Cordova主题用途:将 talsec/Free-RASP-Cordova 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 cordova · cordova-app-shielding · cordova-application-security · C 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 28 · MIT · 2026-06-11。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-Capacitor主题用途:将 talsec/Free-RASP-Capacitor 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 app-security · capacitor · capacitor-app-security · C 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 22 · MIT · 2026-06-11。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
talsec/Free-RASP-KMP主题用途:将 talsec/Free-RASP-KMP 放在「防守侧 RASP 与检测 SDK」中作对照或审计参考,使用 android · android-app-shielding · android-library · C 判断它与当前任务的边界。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 10 · MIT · 2026-06-02。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。

6. 专项样本、风险项目与误收录核查 · 2#

逐项收纳未命中项目,说明它是专项研究、描述不足、游戏作弊或与 Android 逆向无关;仍保留项目名和链接以满足覆盖,但只给定位、风险和是否应迁类,不给可滥用操作。

本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。它们的平台、用途或分类存在边界,只作逐项核验,不当作默认安装候选。

项目上游定位与识别信号状态与采用前检查
seanpm2001/SNU主题用途:将 seanpm2001/SNU 作为「专项样本、风险项目与误收录核查」边界条目,通过 gpl3 · gplv3 · history · Java 核对它实际是否属于本教程。 上游自述(保留原文):The master SNU repository, the root of all SNU modules. This module is required for most SNU distributions. (Click/tap here to learn how to build SNU)(https://gist.github.com/seanpm2001/745564a46186888e829fdeb9cda584de)未归档源项目 · ★ 32 · GPL-3.0 · 2025-12-31。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。
tinku72/Pubg-Anti_Ban-Mod-0.19.0-主题用途:将 tinku72/Pubg-Anti_Ban-Mod-0.19.0- 作为「专项样本、风险项目与误收录核查」边界条目,通过 仓库名、README 与发布记录 核对它实际是否属于本教程。 上游自述(保留原文):Hello UC, so today i am sharing the source apk (decompiled one) but only for android. DONOT USE IN EMULATOR OR IT NOT WORK If you have rooted phone then no need to anything just follow steps and play but nonroot users must use virtual to bypass 3rd party bans (10 mins only no 10 years ban) I personally use this hack. If detected then inform as quickly as possible. Note -(Only NonRoot users) If your game crash then you got 3rd party ban so use updated hacks. You wont get 10 years ban so don't未归档源项目 · ★ 20 · GPL-3.0 · 2022-08-29。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。

开始前#

准备一台不含个人账号、SIM、相册或密码管理器数据的官方可调试 AVD。先运行 adb root,等待重连后用 adb shell id 确认 uid=0(root),再创建名为 clean-lab 的快照;若镜像是 production build 或拒绝 root,停止并换官方可调试镜像,不下载第三方预 Root 镜像。在电脑建立只读的 original 目录和单独的 working 目录。记录 AVD 的 Android API、ABI、镜像名、JADX/Apktool/Frida 版本,以及样本来源。

对 APK 运行 shasum -a 256 <sample.apk>(Windows 可用 certutil -hashfile <sample.apk> SHA256),把结果写入实验记录。再用 ADB 的 pm path 或 JADX Manifest 确认包名,不凭文件名猜测。

操作步骤#

1. 建立可丢弃实验室#

启动 AVD,运行 adb devices -l,确认列表中只有目标模拟器;再次运行 adb rootadb shell id,把 root 身份证据和 adb shell getprop ro.build.fingerprintadb shell getprop ro.product.cpu.abilist 一并记录。不要在同一 ADB 会话连接日用手机。

从 Device Manager 保存 clean-lab 快照。关闭共享剪贴板和不必要的宿主目录映射;实验 App 不需要互联网时,将模拟器设为飞行模式。这个回退点必须在安装样本之前创建。

2. 固定样本并静态定位#

复制 APK 到 working 目录,不直接处理 original。用 JADX GUI 打开工作副本,依次查看 AndroidManifest.xml、带 MAIN/LAUNCHER intent-filter 的 Activity、界面文字资源和 setOnClickListener/onClick 等调用。

选一个你能主动触发的方法,例如自有 App 的 checkGreeting(String);记录完整类名、方法名、参数类型,以及从按钮到该方法的调用路径。不要把“类名像安全检查”当作行为证据。

3. 用第二种视图交叉检查#

使用 apktool d <sample.apk> -o <decoded-dir> 解码工作副本。检查 decoded 目录里的 AndroidManifest.xml、res/values/strings.xml 和目标类对应 smali。确认包名、Activity、资源 ID 和方法签名与 JADX 看到的关系一致。

如果 JADX 显示反编译错误,以 smali 和运行结果为准;如果两者指向不同类,先停下来解释混淆、多 DEX 或内联的可能性,不盲目搜索更多“密码”“root”字符串。

4. 只观察一个运行时方法#

把未经修改的 APK 安装到已通过 root 前置验证的 AVD。按 Frida 官方 Android 指南启动与 ABI 匹配的 frida-server,再用 frida-ps -U 确认设备和包进程可见。只为已记录的类和方法生成 trace handler;handler 中保留日志,不改参数、返回值或控制流。

启动 App,点击一次目标按钮,记录时间、UI 操作和 Frida 输出。再执行一次不触发该按钮的对照操作;如果两次都有日志,说明你对调用条件的理解可能有误,应回到静态路径重新检查。

5. 保存证据并回滚#

将原始哈希、工具版本、静态路径、两次操作和运行日志整理成证据表。停止 frida-server,卸载实验包,恢复 clean-lab 快照。恢复后用 adb shell pm list packages <package>adb shell pidof <package> 确认样本包与进程均不存在,再用 adb shell pidof frida-server 确认 server 无残留;server 已停止时不用 frida-ps -U 充当清理证据。

验证#

检查项可观察的成功标准不足以证明成功的现象
样本身份原件和工作副本 SHA-256 已记录且一致文件名看起来正确
静态定位JADX 与 Apktool 指向同一组件/方法关系只搜到敏感字符串
动态观察指定 UI 动作产生一次可解释的调用日志Frida 没报错
对照实验不触发目标动作时日志行为符合预期只运行一次
回滚包、进程和实验状态从快照恢复仅关闭 App

排错#

现象常见原因安全处理
JADX 某些方法显示不完整混淆、异常控制流或新 DEX 特性查看 smali 和调用引用,不修改样本
frida-ps 看不到设备ADB、USB/模拟器连接或 Server ABI 不匹配核对单一目标、ABI 和官方版本,不下载第三方 Server
附加后 App 崩溃ROM 差异、反调试或版本不匹配停止动态步骤,保留崩溃日志;不要转向隐蔽绕过
Trace 没有输出方法签名、进程或触发动作选错回到静态路径,先跟踪更上层的自有回调
回滚后包仍存在恢复了错误快照或快照在安装后创建关机、选择明确的 clean-lab,再验证包列表

完成清单#

  • 我只使用了自有 APK 或 OWASP 官方练习样例。
  • 我记录了样本哈希、包名、工具版本和 AVD 指纹。
  • 我用两种静态视图定位了同一方法。
  • 我只观察调用,没有修改参数、返回值或保护逻辑。
  • 我做了一个对照操作并保存了证据表。
  • 我停止了 Frida、卸载样本并验证快照回滚。

一手资料#