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解密, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码混淆, 反调试绕过, 堆漏洞利用, 堆风水, 安全挑战, 客户端加密, 快速连接, 恶意软件分析基础, 栈溢出, 汇编语言, 目录枚举, 移动安全, 类型混淆, 缓冲区溢出, 网络安全, 自定义虚拟机, 逆向工程, 隐私保护, 静态分析