0xCD4/N4TIVE

GitHub: 0xCD4/N4TIVE

一款包含六道由浅入深的 Android Native 逆向挑战的 CTF 应用,专注 .so 库分析与漏洞利用训练。

Stars: 19 | Forks: 2

# N4TIVE Android Native 逆向工程 CTF ## 概述 N4TIVE 是一个包含六个挑战的夺旗(Capture The Flag)应用程序,主要侧重于 Android Native 库分析。所有挑战都需要逆向分析由 C 语言编译的 `.so` 文件。 ## 环境要求 - Android 设备或模拟器 (API 26+) - Ghidra、IDA Pro 或类似的反汇编工具 - Frida(推荐用于动态分析) - 对 ARM 汇编和 JNI 有基本了解 ## 安装说明 ``` adb install n4tive.apk ``` 从源码构建: ``` git clone https://github.com/0xCD4/N4TIVE.git cd N4TIVE ./gradlew assembleDebug adb install app/build/outputs/apk/debug/app-debug.apk ``` ## 挑战 ### 挑战 01:字符串迷宫 **难度:** 1/5 **库文件:** libch01_stringmaze.so **技术:** 静态分析,XOR 解密 目标字符串经过三层混淆加密。请在 `.rodata` 段中追踪其解密链路。 ### 挑战 02:栈溢出攻击 **难度:** 2/5 **库文件:** libch02_stacksmasher.so **技术:** 缓冲区溢出,控制流劫持 一个 64 字节的栈缓冲区没有进行边界检查。通过溢出它将执行流重定向到一个隐藏函数。 ### 挑战 03:类型混淆 **难度:** 3/5 **库文件:** libch03_typeconfusion.so **技术:** JNI 类型不匹配漏洞利用 四个关卡保护着目标。每个关卡都期望接收特定的 Java 类型,但可以通过传递错误的类型来绕过它们,从而触发备用代码路径。 ### 挑战 04:反调试长廊 **难度:** 3/5 **库文件:** libch04_gauntlet.so **技术:** 绕过反分析 七项反调试检查必须通过或被绕过: 1. TracerPid 检测 2. Frida 端口/映射文件 扫描 3. ptrace 自附加 4. 计时分析 5. 软件断点检测 6. Java 调试器检查 7. APK 签名验证 ### 挑战 05:堆风水 **难度:** 4/5 **库文件:** libch05_heapcraft.so **技术:** 堆漏洞利用,释放后使用 (Use-After-Free) 一个包含 8 个插槽的自定义 Slab 分配器。差一 16 字节(off-by-16)的溢出漏洞允许破坏相邻插槽的元数据。结合 UAF 漏洞,劫持函数指针。 ### 挑战 06:虚拟机 **难度:** 5/5 **库文件:** libch06_vm.so **技术:** 自定义 VM 逆向,约束求解 一个具有 32 个操作码的自定义基于栈的虚拟机。字节码经过 XOR 编码。请逆向分析其指令集,解码字节码,并求解约束系统。 ## 构建要求 - Android Studio - NDK(通过 SDK Manager 获取) - CMake 3.22.1+(通过 SDK Manager 获取) ## 项目结构 ``` app/src/main/ ├── java/com/ctf/nativectf/ │ ├── MainActivity.java │ ├── ChallengeActivity.java │ └── challenges/ │ └── Ch01.java - Ch06.java └── jni/ ├── CMakeLists.txt ├── flag_core.c ├── ch01_stringmaze.c ├── ch02_stacksmasher.c ├── ch03_typeconfusion.c ├── ch04_gauntlet.c ├── ch05_heapcraft.c └── ch06_vm.c ``` ## 作者 Ahmet Goker
标签:Android安全, APK逆向, APP安全, ARM汇编, Bash脚本, CTF Writeup, CTF靶场, Docker支持, Frida, Ghidra, IDA Pro, JNI, JS文件枚举, Native层, SO库逆向, Use-After-Free, XOR解密, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码混淆, 反调试绕过, 堆漏洞利用, 堆风水, 安全挑战, 客户端加密, 快速连接, 恶意软件分析基础, 栈溢出, 汇编语言, 目录枚举, 移动安全, 类型混淆, 缓冲区溢出, 网络安全, 自定义虚拟机, 逆向工程, 隐私保护, 静态分析