Skip to content

Latest commit

 

History

History
315 lines (246 loc) · 12.6 KB

File metadata and controls

315 lines (246 loc) · 12.6 KB

AI GG Modifier v3.0.0

AI 驱动的游戏内存修改器 — 通过自然语言对话实现游戏内存搜索、修改、冻结


项目概览

项目 说明
名称 AI GG Modifier (ai_gg666)
版本 2.0.0+2
包名 com.yl.aigg.ai_gg666
平台 Android(需 Root)
框架 Flutter + 原生 Kotlin + C++
Dart SDK ^3.11.5
Java 兼容 Java 17
CMake 3.22.1
C++ 标准 C++11

核心架构

┌─────────────────────────────────────────────────┐
│                   Flutter UI                     │
│  ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│  │ 主应用    │ │ 对话记录  │ │ WebView 渲染管线  │ │
│  │ (Riverpod)│ │ (Hive)   │ │ marked+KaTeX+    │ │
│  │           │ │          │ │ Prism+Mermaid    │ │
│  └─────┬────┘ └─────┬────┘ └────────┬─────────┘ │
│        │            │               │            │
│  ──────┼────────────┼───────────────┼────────────│
│        │    MethodChannel Bridge    │            │
│  ──────┼────────────┼───────────────┼────────────│
│        ▼            ▼               ▼            │
│  ┌─────────────────────────────────────────────┐ │
│  │            Kotlin Native Layer               │ │
│  │  OverlayService │ MemoryEngine │ LuaEngine   │ │
│  │  RootScanner    │ RootManager  │ ProcessMgr  │ │
│  └──────────────────────┬──────────────────────┘ │
│                         │ su + stdin/stdout       │
│  ┌──────────────────────▼──────────────────────┐ │
│  │         C++ scanner_root (Root)              │ │
│  │   process_vm_readv / pread64 / writev        │ │
│  │   2MB 高速缓冲区滑动窗口                      │ │
│  └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘

双模式架构

模式 实现 说明
主应用 Flutter (GgModifierApp) 完整功能界面,底部导航栏
悬浮窗 原生 Android View (OverlayService) 游戏内浮窗,通过 SharedPreferences 同步状态

技术栈详解

前端 (Flutter / Dart)

依赖 版本 用途
flutter_riverpod ^2.6.1 状态管理
hive / hive_flutter ^2.2.3 / ^1.1.0 本地键值存储(对话、书签、脚本)
http ^1.2.2 LLM API HTTP 请求
webview_flutter ^4.10.0 WebView 渲染 Markdown/LaTeX/Mermaid
flutter_markdown ^0.7.4+3 Markdown 解析
markdown ^7.3.0 Markdown AST
flutter_svg ^2.0.16 SVG 渲染
shimmer ^3.0.0 加载动画
uuid ^4.5.1 UUID 生成
intl ^0.19.0 国际化
path_provider ^2.1.5 文件路径

后端 (Kotlin / Android)

文件 行数 职责
OverlayService.kt ~2800 悬浮窗服务:AI 对话、内存搜索、脚本执行、面板管理
MemoryEngine.kt ~580 内存引擎 v20.0:精确/范围/AOB/模糊搜索、读写、冻结
RootScanner.kt ~354 Root 扫描器:JSON IPC 与 C++ scanner_root 通信
RootManager.kt ~200 持久化 su shell、root 命令执行、/proc/pid/mem 读写
MemoryFreezer.kt ~80 后台冻结线程
LuaEngine.kt ~100 Lua 脚本执行(LuaJ)
ProcessManager.kt ~80 进程列表(pm + ps)
MainActivity.kt ~500 Flutter ↔ Kotlin MethodChannel 桥接
OverlayFlutterActivity.kt ~30 悬浮窗 Flutter Activity

原生 C++

文件 行数 说明
scanner_root_optimized.cpp 544 主力扫描器pread64 + 静态链接 + -O3 优化
scanner_root.cpp 409 Root 独立可执行文件
scanner_v19.cpp 305 JNI 共享库版(libaigg_scanner.so
scanner.cpp 365 原始 JNI 扫描器

编译产物:

  • scanner_root — 独立可执行文件,通过 su 以 Root 运行
  • libaigg_scanner.so — JNI 共享库(备用)

编译优化:-O3 -ffast-math -funroll-loops


AI Function Calling 系统

AI 对话支持 8 个内存操作工具,LLM 可直接调用真实内存引擎:

工具名 功能 对应 MemoryEngine 方法
search_memory 精确/范围/AOB 搜索 searchExact / searchByRange / searchAob
read_memory 读取指定地址值 readMemory
write_memory 写入值到地址(自动回读验证) writeMemory
fuzzy_search 模糊搜索(增大/减小/变化/不变) searchFuzzy
filter_results 在上次结果中二次过滤 filterResults
save_address 收藏地址到书签 saveFavorite
freeze_value 冻结/解冻地址值 toggleBookmarkFreeze

工作流程:用户自然语言 → LLM 判断调用工具 → 执行 MemoryEngine 真实操作 → 返回结果 → LLM 生成最终回复

支持的 LLM:DeepSeek-V3/R1、OpenAI GPT-4o/4/3.5、小米 MiMo 等兼容 OpenAI API 的模型


对话渲染系统

AI 回复通过 WebView 渲染,支持三种内容混合输出:

渲染管线

原始 Markdown → protectLaTeX() 保护 LaTeX → marked.parse() 渲染 Markdown
    → restoreLaTeX() 恢复占位符 → Prism.highlight() 代码高亮
    → katex.render() 渲染公式 → mermaid.run() 渲染图表

核心特点

  • 需要 Root 权限:使用独立的 C++ 可执行文件通过 su 以 Root 身份读写目标进程内存
  • 双模式架构:主应用 (Flutter) + 悬浮窗 (原生 Android View),通过 SharedPreferences 同步状态
  • AI Function Calling:AI 可直接调用 8 个内存操作函数,实现"说一句话就改数据"
  • Markdown/Mermaid/LaTeX 渲染:AI 回复支持代码块高亮、Mermaid 图表、LaTeX 公式
  • 对话渲染系统:katex@0.16.9/auto-render.min.js,katex@0.16.9/katex.min.js,katex@0.16.9katex.min.css,mermaid@8.14.0/mermaid.min.js,marked@4.3.0/marked.min.js
  • 悬浮窗系统:HTML 渲染管线(marked + KaTeX + Prism.js + mermaid),通过 WebView 渲染

本地 JS/CSS 资产

版本 文件
KaTeX 0.16.9 katex.min.js + auto-render.min.js + katex.min.css
Mermaid 8.14.0 mermaid.min.js
Marked 4.3.0 marked.min.js
Prism.js 1.29.0 prism.min.js + 16 种语言组件 + prism-tomorrow.min.css

支持的语言高亮:JavaScript、Python、Java、Kotlin、C/C++、C#、Lua、Bash、SQL、JSON、YAML、XML 等

两种渲染模式

模式 实现 场景
单内容模式 MarkdownWebView(markdownContent: ...) 悬浮窗 AI 对话
多消息模式 MarkdownWebView(messages: ...) 对话记录详情页(单 WebView 渲染全部消息,避免多 WebView 性能问题)

内存搜索引擎

Root 架构

MemoryEngine.kt
    ↓ JSON 命令 (stdin)
RootScanner.kt → su → scanner_root (C++ 可执行文件)
    ↓ JSON 结果 (stdout)
MemoryEngine.kt → 返回搜索结果

搜索模式

模式 方法 说明
精确搜索 searchExact(value, type) 搜索精确数值
范围搜索 searchByRange(min, max, type) 搜索数值范围
AOB 搜索 searchAob(pattern) 按机器码特征码搜索
模糊搜索 searchFuzzy(comparison, type) 增大/减小/变化/不变
结果过滤 filterResults(addresses, value, type) 在已有结果中二次过滤

数据类型

类型 常量 字节数
BYTE gg.TYPE_BYTE 1
WORD gg.TYPE_WORD 2
DWORD gg.TYPE_DWORD 4
QWORD gg.TYPE_QWORD 8
FLOAT gg.TYPE_FLOAT 4
DOUBLE gg.TYPE_DOUBLE 8

Lua 脚本系统

  • 引擎:LuaJ (org.luaj.vm2) — luaj-jse-3.0.2.jar
  • API:GG 兼容 API(gg.searchNumbergg.getResultsgg.editAllgg.clearResults 等)
  • UI APIgg.toastgg.alertgg.promptgg.choice
  • 内置脚本:auto_gold、auto_heal、speed_hack
  • 模板:freeze_value、search_and_modify

项目结构

ai_gg666/
├── lib/                              # Dart 源码 (32 文件)
│   ├── app.dart                      # 应用入口 + 主题定义
│   ├── main.dart                     # 启动入口(主应用/悬浮窗路由)
│   ├── overlay_app.dart              # 悬浮窗 Flutter 应用
│   ├── core/
│   │   ├── ffi/                      # 原生桥接
│   │   ├── llm/                      # LLM 集成(API、Function Calling、Prompt)
│   │   ├── lua/                      # Lua 脚本服务
│   │   └── models/                   # 数据模型(6 个)
│   ├── features/
│   │   ├── chat/                     # 对话记录 + WebView 渲染
│   │   ├── home/                     # 首页
│   │   ├── plugin/                   # 插件中心
│   │   ├── process/                  # 进程选择器
│   │   ├── script/                   # 脚本库
│   │   ├── search/                   # 内存搜索页
│   │   └── settings/                 # 设置页
│   ├── services/                     # 存储、内存、进程服务
│   └── widgets/                      # 通用组件
├── android/app/src/main/
│   ├── kotlin/com/yl/aigg/ai_gg666/  # Kotlin 源码 (9 文件)
│   ├── cpp/                          # C++ 源码 (4 文件, 1623 行)
│   ├── assets/
│   │   ├── js/                       # JS 库 (18 文件)
│   │   └── css/                      # CSS (2 文件)
│   └── res/drawable/                 # PNG 图标
├── assets/icons/                     # UI 图标
├── lua/                              # Lua 脚本
│   ├── builtins/                     # 内置脚本
│   └── templates/                    # 脚本模板
└── pubspec.yaml                      # 依赖配置

主题系统

暖棕奶白色全局主题(app.dart):

角色 色值 用途
kBackgroundColor #FDFBF7 页面背景(奶白色)
kSurfaceColor #FFF9F0 卡片/输入框(浅奶黄)
kPrimaryColor #8D6E63 主色调(柔和棕)
kAccentColor #4E342E 深色动作
kTextPrimary #3E2723 深棕文字
kSplashColor #FFF3E0 点击反馈色

AI 对话窗口使用深棕色独立主题(#723d09 背景)。


权限要求

权限 用途
Root (su) 读写目标进程内存
SYSTEM_ALERT_WINDOW 悬浮窗
INTERNET LLM API 请求
FOREGROUND_SERVICE 前台服务保活
READ/WRITE_EXTERNAL_STORAGE 导出文件

二次开发指南

环境要求

  • Flutter SDK 3.x(Dart ^3.11.5
  • Android Studio + NDK(CMake 3.22.1
  • Java 17
  • Root 设备或模拟器

关键扩展点

扩展 文件 说明
新增 LLM 模型 settings_page.dart 在预设列表中添加
新增搜索模式 MemoryEngine.kt + OverlayService.kt 添加新方法 + 工具定义
新增 Lua API LuaEngine.kt 注册新的 JavaFunction
新增悬浮窗面板 OverlayService.kt makeDraggablePanel() + showXxxPanel()
修改渲染管线 markdown_webview.dart JS 核心在 _jsCore 常量中
修改主题 app.dart 颜色常量 + ThemeData

构建命令

# 安装依赖
flutter pub get

# Debug 构建
flutter run

# Release 构建
flutter build apk --release