a0yark/MobileRE-AI
GitHub: a0yark/MobileRE-AI
一款面向 ARM64 Android 的移动逆向工作台,集成了内存扫描、硬件断点调试、Lua 脚本与 AI 工具调用能力。
Stars: 0 | Forks: 0
# MobileRE AI
[简体中文](README.md) | [English](README_EN.md)
面向 ARM64 Android 12–16 的移动逆向工作台:在一台 root 手机上完成内存扫描、事务写入、冻结、指针链、硬件断点、寄存器/栈/反汇编、GDB Remote、Lua 自动化与 AI Tool Calling。
手机端是完整控制面;Windows 端提供 CLI、托盘、MCP 与 GDB bridge。默认 `STEALTH_HW` 配置按需进入 root 核心,不向目标装载常驻 agent,也不修改目标代码页。
[](https://github.com/a0yark/MobileRE-AI/releases)
[](https://github.com/a0yark/MobileRE-AI/actions)





仓库:
## 目录
- [它能做什么](#它能做什么)
- [界面](#界面)
- [快速开始](#快速开始)
- [核心能力](#核心能力)
- [调试配置](#调试配置)
- [架构](#架构)
- [Windows、MCP 与 GDB](#windowsmcp-与-gdb)
- [实机结果](#实机结果)
- [平台与能力状态](#平台与能力状态)
- [工作空间](#工作空间)
- [构建与测试](#构建与测试)
- [发布](#发布)
- [文档](#文档)
- [许可](#许可)
## 它能做什么
### 1. 建立并管理目标会话
- 从手机 UI、悬浮窗或 Windows CLI 枚举进程,按包名/PID 选择目标。
- Attach 时固定 `package + pid + process_start_ticks + ABI + session_generation`,识别 PID 复用与进程重启。
- 持续追踪 `/proc/PID/maps` generation、模块加载和进程退出;地址引用同时保存 absolute、module build-id/path hash、RVA 与 maps generation。
- 目标重启、映射变化或模块重载后,旧扫描结果、地址表项和事务会进入 stale 状态,避免误写到新进程实例。
- 当前采用单设备、单活动目标会话;手机 UI、AI、Lua、MCP 和 GDB 客户端共享同一个事件与资源视图。
### 2. 从未知值定位到稳定地址
- 数值类型:`i8/i16/i32/i64`、`u8/u16/u32/u64`、`f32/f64`。
- 文本与原始数据:UTF-8、UTF-16、byte array、十六进制 pattern。
- 初次扫描:精确值、范围、未知初值、浮点 epsilon、对齐/非对齐、联合值与相对偏移 group scan。
- 二次筛选:`changed`、`unchanged`、`increased`、`decreased`、`increased-by`、`decreased-by`、精确值和范围。
- 区域选择:anonymous、heap、stack、module、executable、全部 readable map 与自定义地址范围;自定义范围会裁剪、排序并合并。
- 扫描器按 VMA 分块并行读取,raw-pattern hot loop 跨块处理边界;单任务有全局结果预算、取消令牌与进度事件。
- 读取后端按能力选择 `process_vm_readv`、`/proc/PID/mem` 或 GhostHook KPM 页表路径;不可读页会局部跳过,而不是丢弃整个区域。
- 结果按地址排序,使用 delta 编码、zstd 和分页索引保存;首屏、深分页与 AI 资源读取不需要一次装载全部结果。
- 值变换支持 XOR、加减、比例、字节序;`ValueTransform` 可扩展,Lua 自定义变换按向量批次执行。
### 3. 筛选结果、写入、冻结与指针链
- 结果页可继续按地址、模块、RVA、当前值、数据类型和备注筛选,并可加入地址表。
- 写入支持单地址、批量地址、声明类型编码与 raw bytes;一次写事务默认上限为 4096 个地址或 8 MiB。
- 每个 `WriteTransaction` 保存原始字节、目标实例、maps generation、状态与回滚元数据,可 commit、单独 rollback 或在急停时批量回滚。
- 冻结器将相邻/重叠地址合并成区域写,默认 100 ms 周期,可按组启停;映射变化会先禁用组,再阻止后续写入。
- 地址表支持备注、分组、模块 RVA 归一化和 checkpoint;重新进入会话时会先验证目标身份与映射。
- 指针扫描支持 1–6 层、正负偏移范围、模块基址归一化、候选数限制、任务取消、checkpoint 和断点续扫。
- 大型 dump 与 pointer 结果通过 `mobilere://` 资源分页获取,并带 SHA-256/ETag 语义,供手机、AI 和 MCP 共用。
### 4. ARM64 动态调试
- 硬件执行断点、读 watchpoint、写 watchpoint 和读写 watchpoint。
- 支持线程过滤、命中条件、一次性断点、命中计数、模块加载等待与 ASLR/RVA 转换。
- 命中事件包含线程、地址、断点类型、时间戳以及可用的 `x0..x30`、PC、SP、PSTATE 寄存器快照。
- 提供 continue、step into、step over;step over 通过 Capstone 分析 call/branch,并设置一次性临时断点。
- 提供逐线程寄存器读取、COMPAT 寄存器写入、栈读取、backtrace、模块列表、符号解析和 ARM64 反汇编。
- 处理 ARM64 PAC/TBI 地址规范化、BTI、4 KiB/16 KiB 页面、延迟加载模块和硬件槽位耗尽。
- GDB RSP 由核心生成并通过 Windows bridge 转发,可让 GDB、IDA 和 LLDB 接入同一会话。
- `RunControlLease` 保证同一时刻只有一个客户端控制执行流;其他客户端仍可读取事件,急停拥有最高优先级。
### 5. 三套调试配置与 GhostHook KPM
- `STEALTH_HW`:优先 GhostHook Direct BRP/WRP,其次 perf hardware + Aya event;不向目标加载常驻 agent,也不修改目标代码页。
- `HYBRID`:在硬件断点外加入精确 no-XOL Aya UProbe,其余地址可使用 Shadow DBI。
- `COMPAT`:加入 ptrace 运行控制与寄存器写入,覆盖更广的兼容路径。
- GhostHook KPM 1.15.14 提供直接 ARM64 BRP/WRP 管理、独立 execute/watchpoint 槽位与调试寄存器账本。
- Shadow Code 支持 EPAN dual-PFN 与 UXN execute-fault fallback,同页多 Hook、Before/After 回调和寄存器透明的远跳 gate。
- 指令插桩可在 PRE/POST 采集完整寄存器;Ghost DBI 能重建直接/间接分支、call/return、PAC/BTI 与固定 slot trace image。
- Ghost Memory 提供 VMA-less 分配、W^X protect、mmap collision guard;Shadow Data 提供可信数据视图。
- 内核数据面支持 VMA Dump/path、direct/bulk PTE memory、进程退出事件、多客户端 nonce、资源 quiescence 和确定性清理。
- kernel Trace、user Trace、fork 私有继承和 Ghost Agent/热重载实现由显式运行门隔离,默认 release 只发布已通过设备资格验证的 capability。
### 6. Unity IL2CPP、Unreal 与符号工作流
- `EnginePlugin` 统一提供 detect、summarize、resolve_symbol、resolve_object 和 normalize_address。
- Generic 插件处理普通 ELF 模块、build-id、动态符号和模块/RVA 回退。
- IL2CPP 入口识别 `libil2cpp`、metadata、注册表以及标准类/字段/方法映射。
- Unreal 入口识别引擎模块、名称池、对象数组和模块级符号入口。
- 目标内 ELF 解析不依赖 `dl_iterate_phdr`;可从目标内存解析动态符号、GNU hash,并批量反查最近符号。
- v1 插件静态编入核心;协议已经保留 `plugin_id/plugin_version`,供后续签名插件包使用。
### 7. 手机端 AI 自动化
- 原生支持 OpenAI、Anthropic、Gemini 与自定义 OpenAI-compatible endpoint。
- Provider 统一使用 `ModelRequest / StreamEvent / ToolCall / ToolResult`,支持流式输出、工具调用和取消传播。
- AI 与 UI、Lua、MCP 共享统一 Tool Registry;设备、扫描、写入、指针、调试、会话和急停工具具有同一参数模型。
- 上下文使用“结构化摘要 + 按需资源片段”;扫描结果、dump、日志和 pointer 结果按资源句柄分页,不直接塞入整段上下文。
- 全自动模式默认每轮最多 200 次工具调用或 30 分钟;扫描、写事务和执行控制还有独立预算。
- API key 写入 Android Keystore,优先 StrongBox、随后 TEE;普通设置、会话元数据和审计索引保存在 app-private Room/SQLite。
- 每个工具动作写入可导出的哈希链审计日志,包含调用方、参数摘要、结果、时间和前一条记录 hash。
### 8. Lua 5.4 与 GG 脚本迁移
- 非 root Rust Lua runtime 承载脚本,通过 Tool Registry 请求特权能力。
- `mobilere.*` 提供强类型 device、target、scan、memory、pointer、debug、session 和 control API。
- GG 常用兼容层覆盖 `searchNumber`、`refineNumber`、`getResults`、`setValues`、`editAll`、`addListItems` 等调用。
- 类型编码、异步 job 等待、事务 ID、地址表和 GhostHook 工具均可从脚本访问。
- 脚本取消会传递到扫描/指针等后台 job;急停会同时终止脚本并清理本项目持有的 root 资源。
### 9. Windows、MCP、GDB 与局域网
- `mobilere.exe` 提供设备发现、能力探针、进程/目标、工具调用、MCP stdio、MCP HTTP 和 GDB 转发。
- `mobilere-tray.exe` 提供设备、配对、连接状态、MCP/GDB 地址、证书管理、日志和急停。
- ADB 模式使用随机 abstract socket、一次性 token、显式 bootstrap intent 和 `adb forward`,Windows 仅监听 `127.0.0.1`。
- LAN 模式使用 mDNS `_mobilere._tcp.local`、QR nonce、60 秒配对码、手机 CA、客户端 CSR、mTLS 与证书撤销。
- MCP 遵循 `2025-11-25` Streamable HTTP,覆盖 Origin 校验、bearer token、session ID、SSE resume、DELETE 和取消通知。
- 对外暴露 76 个工具与 `mobilere://` 分页资源;默认 MCP HTTP 为 `127.0.0.1:19812`,GDB RSP 为 `127.0.0.1:3333`。
### 10. 生命周期、恢复与急停
- Root Core 状态机为 `STOPPED → STARTING → READY → ATTACHED → STOPPING`,异常进入 `FAULTED`。
- App 每 5 秒发送心跳,15 秒超时后清理会话;App/root 进程退出时释放 perf FD、BPF link、冻结任务、GDB 和网络资源。
- APK 更新会校验 native core 版本、SHA-256 和协议主版本,版本不匹配时阻止建立业务通道。
- 急停会取消 job、停止冻结、释放 breakpoint/perf/BPF、关闭 GDB/LAN、回滚活动事务并结束 root 会话。
- P0/P1、EDBG matrix、GhostHook、runtime gates、MCP、LAN、Android API matrix 和 soak 均有自动化验证脚本与发布报告。
### 项目边界与默认策略
- 首发目标为 Android 12–16、ARM64、root 设备。
- Windows 端定位为 bridge/CLI/托盘,完整交互界面位于手机端。
- 默认连接只使用 ADB loopback 或局域网 mTLS,不开机自启,不创建 KSU 常驻模块,不监听公网。
- KPM 高级路径依赖匹配的 SukiSU/KernelPatch 内核、符号与能力探针结果。
- 默认 `STEALTH_HW`、按需 root、内存加载 eBPF、零 BPF pin;会话结束后立即清理本项目资源。
## 界面
Jetpack Compose + MIUIX 0.9.3,中文主界面,支持浅色/深色与悬浮窗。
标签:Android, ARM64, DSL, Kotlin, Lua, Rust, 内存扫描, 可视化界面, 硬件调试器, 移动逆向工程, 网络流量审计, 通知系统