Skip to content

gagaword/gagademo

Repository files navigation

gagademo

面向 Android 安全研究 / CTF 训练的 Demo App。以 Jetpack Compose 作主界面挑战列表,逐项演示 Android 组件滥用、SSL Pinning、mTLS 双向认证、Frida Java/Native 对抗、硬件密钥认证、Cronet 网络栈、 Zygote 隔离进程等;配套 native 加解密与反检测代码,以及 secret.dex 运行时动态加载机制。

⚠️ 仅用于安全研究与教学,请勿用于非法用途。

技术栈

  • Kotlin + Java 混合;主界面 Jetpack Compose,各挑战页 View/XML
  • compileSdk 36 / minSdk 29 / targetSdk 36,ABI 仅 arm64-v8a
  • NDK + CMake(C++17)native 层;AIDL;ViewBinding
  • 依赖:Compose BOM、Material3、OkHttp、Cronet、Timber、Gson 等
  • 配套后端 appdemo(Spring Boot):提供 mTLS flag 接口与 Android Key Attestation 验签接口

挑战一览

分组 挑战 入口
Android 组件安全 Activity / Service / 广播 / 内容提供者漏洞 ui.demo.*
逆向分析 Smali 练习、Frida Java 层、Frida Native 层 ui.reverse.*
网络安全 SSL Pinning、双向证书认证(mTLS)、Cronet 通信 ui.security.*ui.cronet.*
系统对抗 Zygote 隔离进程 / 脏 sepolicy、Bootloader 硬件认证检测 env.*、Frida 关卡 12

挑战集中注册在 ui.main.ChallengeRegistry,主界面通过显式 Intent 启动对应 Activity。

构建

./gradlew assembleRelease
  • 产物:app/release/gagademo_v<versionName>_c<versionCode>_<buildType>.apk
  • 仅 arm64-v8a,模拟器需 ARM64 镜像
  • buildSecretDex 任务会把 src/secret/java 单独 d8 为 assets/secret.dex(运行时动态加载题材)

更新日志

v3.7.5 (375)

  • 新增「双向证书认证 (mTLS)」关卡:客户端携带证书 + 服务端验签,目标是开启抓包后取得 flag
  • 新增「Bootloader 状态检测」关卡(Frida 关卡 12):采集 Android Key Attestation 硬件认证证书链, 上传服务端 PKIX 验链(锚定 Google 硬件认证根)+ 解析 RootOfTrust 判定,本地不判定
  • 主界面重构:移除登录 / 注册与「我的」页、移除底部导航,启动后直接进入关卡列表(Compose)
  • 更新弹窗现代化:卡片式弹窗 + Material LinearProgressIndicator 进度
  • strings.xml 标点规范化(全角 → 半角)
  • 清理 Compose 化后遗留的 View 适配器与孤儿资源
  • 更新 Frida 检测逻辑;Zygote 隔离进程 / 脏 sepolicy 演示

更早

  • 新增 AES 加密与登录注册页
  • Frida Java / Native 对抗关卡、Cronet 网络、SSL Pinning、Smali 与组件漏洞演示

About

App课程Demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors