Skip to content

brszzz/android-sandbox

Repository files navigation

Aegis Android Sandbox

面向安全分析、逆向工程、游戏外挂取证的 Android 沙箱框架。支持 APK 静态/动态分析、ARM64 ELF 二进制反混淆、压缩壳解压、内核驱动通信还原。


架构

┌─────────────────────────────────────────┐
│  分析工具层 (tools/)                      │
│  ├── APK 静态分析 (AXML/DEX/证书)         │
│  ├── 动态监控 (网络/文件/进程/Logcat)      │
│  ├── ELF 反混淆 (OLLVM CFF/BCF/SUB 检测) │
│  ├── 沙箱模拟 (Unicorn ARM64 + API 劫持)  │
│  └── 压缩壳解压 (SpraUPX/UPX-like)       │
├─────────────────────────────────────────┤
│  平台层 (规划中)                          │
│  ├── aegis-core (namespace/seccomp)      │
│  ├── aegis-hook (LSPlant + Dobby)        │
│  └── aegis-ndk (ART hook / JNI bridge)   │
└─────────────────────────────────────────┘

代码文件

tools/
├── apk_analyzer.py                  APK 静态分析 (AXML/DEX/证书/权限/风险评分)
├── run_sandbox.py                   模拟器一键部署 + 动态监控
├── dyn_monitor.py                   四路并行运行时监控 (网络/文件/进程/Logcat)
├── ollvm_deobfuscator.py            OLLVM CFF/BCF/SUB/SPLIT 检测与反混淆
├── find_openssl_cff.py              全量函数 CFF 调度器扫描
├── sandbox_deobfuscator.py          Unicorn + API 劫持 (绕过 dlopen/dlsym 隐藏)
├── elf_trace.py                     ELF 执行追踪
├── trace_ollvm_bridge.py            seccomp-notify syscall 追踪 + OLLVM 桥接
├── unicorn_full_unpack.py           SpraUPX 压缩壳解压 (ALL-RWX + exit 抑制) ★
├── spraupx_decompressor.py          SpraUPX LZ4-like 解压算法 Python 实现
├── analyze_test_duizhi.py           SpraUPX 打包 ELF 结构分析
├── deep_analyze_duizhi.py           压缩态函数分类与偏移扫描
├── trace_bootstrap_io.py            引导代码文件 I/O 追踪
├── dump_mmap_regions.py             Unicorn mmap 区域快照导出
├── find_core_cheat_logic.py         作弊核心逻辑搜索 (dlopen 调用者/驱动接口)
├── analyze_driver_interface.py      IOCTL 内核驱动通信分析
└── find_game_data_offsets.py        UE4/Unity 引擎结构体偏移映射

已完成功能

APK 分析

工具 功能
tools/apk_analyzer.py APK 纯 Python 解析:AXML 二进制 XML 解析、DEX 头部分析、签名证书提取、权限扫描、嵌入 URL 提取、风险评分
tools/run_sandbox.py 一键部署:创建 AVD → 启动模拟器 → 安装 APK → 静态分析 → 动态监控
tools/dyn_monitor.py 四路并行运行时监控:网络连接 (/proc/net/tcp)、文件操作 (find -printf)、进程状态 (ps + /proc)、Logcat 实时流

ELF 反混淆

工具 功能
tools/ollvm_deobfuscator.py OLLVM CFF(控制流平坦化)检测:调度器评分、状态变量提取、真实块识别、去混淆率。同时检测 BCF(虚假控制流)、SUB(指令替换)、SPLIT(基本块分裂)
tools/find_openssl_cff.py 全量函数 CFF 扫描,区分 OpenSSL vs 用户代码的混淆分布

沙箱模拟执行

工具 功能
tools/sandbox_deobfuscator.py Unicorn ARM64 沙箱 + API 劫持:在 dlopen/dlsym 调用点安装钩子,记录运行时解析的符号,绕过动态导入隐藏。成功还原 156 个 Vulkan 函数的导入表
tools/elf_trace.py ELF 执行追踪与行为分析
tools/trace_ollvm_bridge.py seccomp-notify syscall 追踪 + OLLVM 分析桥接:将 syscall 序列映射到函数行为,检测代码注入、文件无关执行、隐蔽 C2

压缩壳解压 (SpraUPX)

工具 功能
tools/unicorn_full_unpack.py 核心突破 — ALL-RWX + exit 抑制策略:在 Unicorn 中成功执行 3500 万条指令,解压 SpraUPX 压缩壳,恢复 96% 原始代码 (258 个函数)
tools/spraupx_decompressor.py SpraUPX LZ4-like 解压算法的 Python 静态实现(比特流读取器 + 变长整数编码)
tools/analyze_test_duizhi.py SpraUPX 打包 ELF 的结构分析:程序头解析、熵分析、解压桩识别
tools/deep_analyze_duizhi.py 压缩态代码的函数分类与游戏引擎偏移扫描
tools/trace_bootstrap_io.py 引导代码文件 I/O 追踪,用于定位段表结构
tools/dump_mmap_regions.py Unicorn 运行时 mmap 区域快照与导出

作弊逻辑分析

工具 功能
tools/find_core_cheat_logic.py 搜索作弊核心逻辑:dlopen 调用者定位、A64HookFunction 引用追踪、内存操作函数识别
tools/analyze_driver_interface.py 内核驱动 IOCTL 通信分析:命令码解码 (_IOC 宏)、vtable 分发追踪、设备节点恢复逻辑 (/proc + mknod)
tools/find_game_data_offsets.py UE4/Unity 引擎结构体偏移映射:从指令立即数中提取硬编码偏移,匹配已知引擎布局

待完成功能

Phase 1: Android 虚拟化框架 (MVP)

模块 描述 状态
项目脚手架 Monorepo (Gradle + CMake),版本目录
aegis-core namespace 隔离、seccomp 过滤器、IO redirect
aegis-ndk ART 符号解析、JNI bridge、Binder ioctl hook
aegis-hook LSPlant 集成、Dobby 集成、IHookEngine 接口
app (宿主) 最小宿主 App + Stub Activity + Daemon 启动
aegis-client AMS/PMS Hook、身份伪造
aegis-daemon VAMS (虚拟 Activity 管理)、进程管理、Room DB
aegis-proto Protobuf IPC 协议
IO redirect /data/data 和 /sdcard 路径重定向
集成测试 端到端:安装 → 启动 → 交互

Phase 2: 高级特性

功能 描述 状态
Per-app UID 隔离 CLONE_NEWUSER + uid_map
四大组件代理 ContentProvider / Service / BroadcastReceiver
反检测引擎 Build spoof、/proc/self/maps 伪装、root 隐藏
插件 API aegis-plugin-api + 加载器 + Xposed 兼容
流量监控 VPN 模式流量拦截

Phase 3: 平台扩展

功能 描述 状态
桌面端 Docker + ReDroid 集成
REST API aegisctl CLI 工具
syscall 追踪 指令级调用图可视化

使用方法

环境要求

pip install capstone unicorn
# APK 动态分析需要:
#   Android SDK (adb + emulator) 或 Docker (ReDroid)

1. APK 静态分析

python tools/apk_analyzer.py apks/target.apk --output reports/
from tools.apk_analyzer import APKAnalyzer
analyzer = APKAnalyzer("apks/target.apk")
result = analyzer.analyze()
# result['package'], result['permissions'], result['dex'], result['risk']

2. APK 动态监控

python tools/run_sandbox.py \
    --apk apks/target.apk \
    --avd aegis_analysis \
    --system-image system-images/android-34/default/x86_64 \
    --monitor

3. ELF 静态分析 (OLLVM 检测)

python tools/find_openssl_cff.py
from tools.ollvm_deobfuscator import OLLVMDeobfuscator
deobf = OLLVMDeobfuscator("path/to/binary.elf")
functions = deobf.analyze()
for func in functions:
    if func.is_ollvm_flat:
        print(f"func_0x{func.addr:x}: {func.real_blocks} real blocks")

4. Unicorn 沙箱模拟 (绕过动态导入隐藏)

python tools/sandbox_deobfuscator.py
from tools.sandbox_deobfuscator import SandboxDeobfuscator
sandbox = SandboxDeobfuscator("path/to/elf")
result = sandbox.emulate(target_func=0x3a4470)
for call in result.api_calls:
    print(f"  {call.name}")

5. SpraUPX 压缩壳解压

python tools/unicorn_full_unpack.py

关键配置:

from unicorn import *
from unicorn.arm64_const import *

uc = Uc(UC_ARCH_ARM64, UC_MODE_ARM)

# 1. ALL-RWX 内存映射 — 绕过 mprotect 权限限制
uc.mem_map(0, seg0_size, UC_PROT_ALL)
uc.mem_map(0x260000, seg1_size, UC_PROT_ALL)

# 2. exit 抑制 — 不让引导代码的失败检查终止执行
def hook_syscall(uc, intno, user_data):
    w8 = uc.reg_read(UC_ARM64_REG_X8)
    if w8 in (93, 94):                    # exit / exit_group
        lr = uc.reg_read(UC_ARM64_REG_X30)
        uc.reg_write(UC_ARM64_REG_PC, lr)  # 跳到调用者继续
        uc.reg_write(UC_ARM64_REG_X0, 0)

uc.hook_add(UC_HOOK_INTR, hook_syscall)
uc.emu_start(e_entry, 0, count=35_000_000)

# 3. 导出解压后代码
decompressed = uc.mem_read(0x50020000, 0x250000)

6. 游戏数据偏移扫描

python tools/find_game_data_offsets.py

7. 内核驱动接口分析

python tools/analyze_driver_interface.py

技术栈

技术
静态分析 Capstone (ARM64)、纯 Python AXML/DEX 解析器
动态分析 Unicorn Engine (ARM64 模拟)、adb (Android 调试桥)
混淆分析 OLLVM CFF/BCF/SUB/SPLIT 检测、Unicorn API 劫持
压缩壳 SpraUPX LZ4-like 解压、ALL-RWX 内存策略
引擎逆向 UE4/Unity 结构体偏移映射、NEON SIMD 识别
驱动分析 IOCTL 命令解码、/proc 利用、设备节点重建
规划中 LSPlant + Dobby Hook、seccomp-notify、Docker/ReDroid

License

Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors