GG修改器一键对接内核驱动,实现过搜索检测

发布时间:2026/10/7 12:12:04
GG修改器一键对接内核驱动,实现过搜索检测 本文介绍ggdrv工具包的实现原理与使用方法通过一条脚本即可让 GameGuardianGG修改器绕过应用层内存读写改走内核驱动通道从而实现过搜索检测——对游戏的内存搜索、修改行为不再经过常规的系统调用路径检测方难以在用户态捕获痕迹。一、为什么需要内核驱动GG 默认通过process_vm_readv/process_vm_writev系统调用读写目标进程内存。这条路径有明显特征系统调用本身可被 hook / 日志记录部分游戏和 ACE、TP 等反作弊系统会检测/proc/pid/maps异常访问、ptrace 附着、syscall 来源等高频次的process_vm_readv调用模式本身就是检测特征。内核驱动方案的思路是把内存读写下沉到内核态。GG 发出的读写请求被中间层拦截后不再走process_vm_readv系统调用而是通过私有通道字符设备 / kprobe / input 节点 / netlink 等直接交给内核模块完成物理/虚拟地址读写用户态看到的只是一次普通的函数调用。二、整体架构ggdrv采用三层结构┌─────────────────────────────────────────────┐ │ GG修改器进程 │ │ └─ 调用 syscall(process_vm_readv, ...) │ ├─────────────────────────────────────────────┤ │ libKernelGg.so (LD_PRELOAD 拦截层) │ │ └─ 拦截 syscall()识别 process_vm_readv │ │ → 合并 iov 块 → 走驱动私有通道 │ ├─────────────────────────────────────────────┤ │ xxx.ko (内核模块) │ │ └─ 内核态直接读写目标进程内存 │ └─────────────────────────────────────────────┘三个关键文件的分工文件作用xxx.ko内核模块按内核版本分发负责实际的跨进程内存读写libKernelGg.soLD_PRELOAD 库导出syscall符号拦截 GG 的系统调用并转发给驱动内部会做连续 iov 块合并减少驱动上下文切换lib5.sh替换 GG 原lib5.so的包装脚本注入LD_PRELOADlibKernelGg.so后执行原库lib5.so.primary三、内置驱动清单ggdrv目录下每套驱动是一个子目录结构统一驱动名/ ├── *.ko # 按内核版本分发的模块可多个 ├── libKernelGg.so # 该驱动配套的用户态拦截库 ├── desc # 驱动描述 └── modname # 加载后的模块名lsmod 中显示的名字当前内置四套驱动目录描述模块名通道方式说明paradiseParadise v3.8.1 input-hookparadiseinput 设备节点 hook兼容性好支持硬件断点qx114QX完美驱动 V11.4entryi私有接口体积最小的实现4.x~5.x 内核模块仅 13~21KBrtdevRT-dev 兼容性强 dev节点RTkernel字符设备节点覆盖面最广支持内核版本最多rthookRT-hook kprobe-inet_ioctlhackkprobe 挂钩 inet_ioctl无设备节点隐蔽性好内核版本支持情况内核版本paradiseqx114rtdevrthook4.9.x-✔✔-4.14.x-✔117/180/186✔-4.19.x-✔含 ColorOS/note12pro 特版✔-5.4.x✔✔含 ColorOS 特版✔✔5.10.x✔含 Pixel 特版✔✔✔5.15.x✔含 Pixel 特版✔✔✔6.1.x✔✔✔✔6.6.x✔-✔✔模块名与匹配规则ggdrv.sh按uname -r取主.次版本如6.6做前缀匹配完整版本号前缀命中的变体如4.19.157-ColorOS-A13也会入选候选。四、一键部署4.1 准备把ggdrv/整个目录推到手机adb push ggdrv /data/local/tmp/设备需要 rootMagisk / KernelSU 均可架构 arm64。4.2 交互式安装adb shellsush/data/local/tmp/ggdrv/ggdrv.sh脚本会自动完成环境检测并给出菜单 GG内核驱动部署工具 设备型号 : ... 安卓版本 : ... 内核版本 : 6.6.66-android15-8-... CPU架构 : arm64-v8a -------------------------------------------- [✔] root权限 [✔] ARM64 架构 [✔] GG目录: /data/user/0/包名/files/GG-xxx [✔] 适配内核 6.6 的驱动: paradise rtdev rthook -------------------------------------------- 驱动状态 : 未加载 / rthook(hack) GG状态 : 原版 / 已改造(内核读写模式) -------------------------------------------- 适配驱动 (内核 6.6): 1) 安装 paradise Paradise v3.8.1 input-hook (1个版本) 2) 安装 rtdev RT-dev 兼容性强 dev节点 (1个版本) 3) 安装 rthook RT-hook kprobe-inet_ioctl (1个版本) u) 还原 (恢复GG卸载全部驱动) q) 退出输入序号即安装。同一驱动有多个候选.ko时会进入二级版本选择。4.3 命令行模式shggdrv.shinstallrthook# 直接安装指定驱动自动选首个匹配koshggdrv.sh uninstall# 还原GG 卸载全部驱动shggdrv.sh status# 查看状态shggdrv.sh list# 列出当前内核可用驱动及版本4.4 安装过程详解install 的 4 个步骤[1/4] insmod 加载选中的 .ko 驱动 [2/4] 生成 lib5.sh 包装脚本LD_PRELOADlibKernelGg.so [3/4] 改造GG目录lib5.so → lib5.so.primary 拷入 libKernelGg.so 和 lib5.sh改名为 lib5.so [4/4] 修正权限 777 属主对齐 GG 的 data 目录属主GG 原本加载的lib5.so被换成包装脚本启动时先注入拦截库再执行真身lib5.so.primary对 GG 完全透明。五、验证安装完成后lsmod|grephack# 或对应模块名 paradise/entryi/RTkernel然后打开 GG授予 root对目标游戏搜索一个已知数值——能正常搜到/改到即驱动链路通了。GG 侧搜索走的是内核通道游戏反作弊在用户态看不到process_vm_readv行为。六、还原菜单选u或sh ggdrv.sh uninstall[1/3] 删除改造文件lib5.so.primary 改回 lib5.so [2/3] rmmod 卸载全部已加载驱动失败的重启即清除 [3/3] 清理 lib5.sh七、注意事项每次重启需重新加载模块内核模块不持久化重新跑一遍install即可GG 目录改造状态重启后仍保留。同一时间只装一套驱动换驱动建议先uninstall再装避免多个模块并存。.ko与内核严格按版本匹配若没有匹配项说明该内核暂不支持如 qx114 无 6.6 版本。卸载驱动提示失败属正常模块被引用计数占用重启设备即可彻底清除。多套 GG多开/共存包共存时脚本会自动列出所有files/GG-*目录让你选目标。八、目录文件速查下载地址ggdrv.zipggdrv/ ├── ggdrv.sh # 部署主脚本交互/命令行两用 ├── lib5.sh # 包装脚本安装时自动生成 ├── paradise/ # Paradise v3.8.1 ├── qx114/ # QX完美驱动 V11.4 ├── rtdev/ # RT-dev └── rthook/ # RT-hook