Skip to content

Releases: ssyclr/zygisk-mcp-il2cpp

v2.9.0

Choose a tag to compare

@ssyclr ssyclr released this 24 Oct 16:27

v2.9.0 正式版更新说明

作者:洋葱落日 && DUM

加入 Unreal 对象查询和渲染支持,并改善悬浮窗的手势操作。

Unreal 查询与操作

  • 新增独立 Unreal 页面,支持类、对象、Actor、组件与反射函数查询;多个搜索标签分别保留条件,切换时不用重新输入。
  • 类型和对象详情独立开窗,支持全屏、字段偏移与数值查看,以及数组、结构体和对象引用展开。
  • 对象关系和字段路径可以逐级打开,每一步显示偏移和实际位置;支持快速返回或在新窗口查看。
  • 「Dump 数据」加入 Unreal,支持单个或多个类型导出。导出完成后显示文件位置,不会清空查询结果。
  • 对应功能同时支持悬浮窗手动操作和 MCP 调用,HTTP 与 Python 均可使用。

对象渲染与相机

  • Unreal 对象可单独加入渲染,也可跟踪整类及其派生实例,沿用现有样式和管理入口。
  • 相机支持从本地玩家自动获取,也可以手动选择兼容相机。
  • 改善多对象采样和实例刷新,保留上一轮完整计数,减少重新扫描时数量跳回零的情况。
  • 等待采样、过期和失效分别显示。对象或相机不兼容时给出原因,不强行绘制错误数据。

悬浮窗与使用体验

  • 修复横向手势可能带动主窗口整页内容错位、列表显示不完整的问题。左右滑动只作用于对应页签、路径或支持横向滚动的列表。
  • 修复页签滑动时图标越出栏位的问题;上下滚动、惯性、调色盘、滑块和窗口缩放保留各自操作。
  • 悬浮窗标题更新为 IL2CPP MCP v2.9.0 TG:@il2cppmcp QQ:276342773,语言、主题和布局继续自动保存。
  • 原有内存搜索与冻结、基址链、汇编/伪代码、追踪断点、JavaScript Frida、持久日志和 AI 工作台继续保留。

升级与兼容

安装新版模块并按提示重启设备,随后重新启动目标应用。原有安装 ID、目标配置、连接配置和数据目录保持不变。使用 Python 连接的用户请在 Web 重新导出 MCP.zip,同步更新客户端文件。

Unreal 当前主要适配 Android ARM64 的常见对象与反射布局。不同 UE4/UE5 版本及厂商修改可能需要单独配置;正式版不代表所有目标均可用。蓝图还原、UE 函数执行、纹理/模型导出与骨骼渲染暂不支持。IL2CPP、场景、资源、反编译和断点也各自受目标及设备条件限制。

使用方式见 项目首页、MCP 连接说明。

2.8.3

Choose a tag to compare

@ssyclr ssyclr released this 16 Oct 18:05

Zygisk IL2CPP MCP 2.8.3 更新说明

更新日期:2026-10-17

作者:洋葱落日 && DUM

这次主要补齐 JavaScript Frida,并统一 HTTP 与 Python MCP 的使用体验,原有功能继续保留。

本次更新 issues#8

  • 新增 frida_script:AI 可以直接运行 Frida JavaScript,管理脚本、收发消息、查看异常和卸载脚本。支持原生函数 Hook、参数/返回值修改及内存操作,无需另开 frida-server。
  • HTTP 与 Python MCP 共用设备端工具、具名参数、返回结果和功能开关,保留旧原生别名;修复长脚本、失败任务状态和链条结果不一致的问题。
  • 修复 _Rim 等材质属性因可选 API 缺失而无法写入的问题,兼容整数属性 ID;必要的类型、对象与作用域校验继续保留。
  • 修复字符串交叉引用分页时,跨页 ARM64 地址计算指令可能导致引用遗漏的问题。

使用提醒

JavaScript 引擎目前支持 Android ARM64;Java 桥接需要另外打包到脚本中。脚本可能改变游戏状态,卸载不会自动恢复任意内存写入。游戏重启后旧地址、任务 ID 和脚本失效,需要重新定位,避免复用旧地址。

升级时请同步更新手机模块与 Python MCP 文件,重新连接并刷新工具列表。原生 HTTP 用户仍可直接通过端口连接。版本更新不代表已验证所有设备与游戏的兼容性。

模块版本为 v2.8.3,versionCode 为 283;Python MCP、原生 HTTP MCP、WebUI 和悬浮窗标题同步更新。

MCP 使用说明

v2.7.9

Choose a tag to compare

@ssyclr ssyclr released this 04 Oct 12:39

Zygisk IL2CPP MCP 2.7.9 更新说明

更新日期:2026-10-04

作者:洋葱落日 && DUM

这次主要处理反馈的连接、实例列表和触摸问题:工具能看见却调用不了、有悬浮窗但进程不在线、同一个类在不同入口看到的数量不一致,以及滑动页面干扰调色盘。原有功能和 Python/原生 HTTP 两种连接方式都继续保留。

HTTP 工具调用与错误提示

  • 修复部分工具在列表中可见,调用时却提示命令不存在的问题,补齐游戏帧任务路由,避免重复包装请求。
  • Unity 资源、实例、对象检查和相关工作台命令使用统一的游戏帧分发规则;需要等待的操作仍先返回请求 ID,再查询结果。
  • 任务执行失败时明确返回失败状态,保留具体原因、工具名、命令和目标进程信息,不再把已失败的任务显示成成功。
  • 不自动重放方法调用、写入等操作,避免一次请求意外执行多次。

有悬浮窗但进程不在线

部分目标没有网络权限,悬浮窗能显示,但进程内 TCP 服务无法启动。这一版增加本地 Unix Socket 通信降级,由外部 Root 服务继续提供原来的 MCP 入口;无需修改目标应用或另填连接端口。

启动注册失败时也会退避重试,不再只尝试几次后一直离线。仍保留进程身份、会话及鉴权检查,不会因为通信降级就开放任意进程访问。设备权限或系统策略仍可能限制连接,不能保证所有系统都能使用。

实例数量与刷新

「所有实例 / 集合」与按类查找统一采用包含派生类的统计范围,支持时包含未激活对象。程序集、命名空间和类名都可用于区分目标;界面与 MCP 会说明实际查询范围。

  • 整轮实例统计完成后统一更新,刷新期间保留上一轮完整数量,不再显示扫描到一半的偏小结果。
  • 集合字段单独分帧解析,类型信息缓存复用,减少重复反射和读取,不再让列表、字典、数组解析拖住实例计数。
  • 移除原先 100,000 个快照对象、8,192 个集合的截断;每页条数不再被当作扫描总量上限,异常数据检查仍保留。
  • 打开类详情或批量渲染时重新查询当前对象;渲染任务持有自己的对象快照,列表刷新不会中断正在处理的批次。
  • 没有相机或关闭全局绘制时,仍可查找实例;发现对象不再依赖是否能够投影到屏幕。
  • 查询失败、尚未完成和真正零个对象分别显示。缺少集合接口时只停用集合扫描,不影响普通类统计。

对象在游戏运行中会不断增减,不同时间的查询仍可能不同。页面显示快照时间,MCP 也返回采样时间、完整性、当前类型数量及集合更新状态。这里统计的是 Unity 存活对象及其集合字段,不是所有托管对象的完整 GC 堆扫描。

以上变化继续通过 render_instance_inventory、render_inventory_items、render_inventory_set、render_inventory_status 提供给 AI。

调色盘触摸修复

拖动颜色区、色相条、色环和透明度条时,页面滚动不会中途接管手势。渲染样式、规则、自定义 UI 和材质弹出式颜色编辑均使用相同处理;松手后仍能正常滑动页面,不需要关闭整体手势功能。

悬浮窗标题同步更新为 IL2CPP MCP v2.7.9 TG:@il2cppmcp QQ:276342773。

升级说明

安装 2.7.9 模块后重启设备,让外部 Root 服务和注入目标使用同一版本。只更新电脑端 Python 文件不能修复旧手机模块;Python stdio 用户请同步更新客户端,原生 HTTP 用户重新连接并刷新工具列表。端口、监听与鉴权设置继续保留,默认仍建议使用 Bearer 鉴权。

模块版本为 v2.7.9,versionCode 为 279,Python MCP、原生 HTTP MCP 与 WebUI 包版本统一为 2.7.9。本次修改已进行离线回归和双架构语法检查,实际效果仍取决于设备与目标,不能据此保证所有游戏均已验证。

连接方法见 MCP 使用说明

v2.7.6: 功能更新:将 MCP 服务器升级到 2.7.6 版本,增加新功能和改进

Choose a tag to compare

@ssyclr ssyclr released this 04 Oct 03:04

Zygisk IL2CPP MCP 2.7.6 更新说明

更新日期:2026-10-04

作者:洋葱落日 && DUM

这次主要补强 MCP 的分析和调试能力。现在可以让 AI 从一个字符串、内存地址或对象字段开始,查找相关的类、字段和引用链,再通过字段监视查看实际访问来源;需要调整执行状态时,也可以在断点命中后修改寄存器。原有的 Python 和原生 HTTP 连接方式都继续保留。

查找字段是谁在读写

新增 field_activity。指定对象地址和字段名,就能查看字段类型、偏移、存储地址及当前内容,并按需开启读取、写入或读写监视。

触发后可以通过 MCP 获取线程、PC、寄存器、回溯和附近的汇编指令,帮助判断哪些代码在访问这个字段。也可以先查询静态访问候选,不必一开始就安装监视点。

字段监视使用外部 Root 服务。它属于采样监视,高频访问可能丢样,不能把返回结果当成每一次读写的完整记录;静态候选也不等于已经确认的实际来源。

字符串可以搜索、修改和继续查引用

  • search_strings 支持 UTF-8、UTF-16LE、ASCII 和自动识别,可以搜索中文、表情或部分文本,按模块、进程可读区域或指定地址范围筛选,并继续翻页。
  • string_write 支持比较旧值后修改并回读校验。原生字符串按缓冲区容量写入;IL2CPP 字符串字段使用新字符串和 GC 写屏障替换引用,不直接覆盖共享字符串。
  • find_string_xrefs 可以从字符串地址继续找 ARM64 直接代码引用和数据指针,结合 IL2CPP 信息定位相关类或字段。

修改需要提供预期旧值和明确确认。旧值已经变化、容量不足或相关能力不可用时会拒绝操作,不会强行写入。

从两个地址查出实际关系链

新增 address_resolve 和 address_relations:前者用于从地址查找可能所属的对象、类和字段;后者用于查找两个地址之间的实际内存关系。

例如可以得到这样的路径:

World.player(0x18) → Player.color(0xF0) → Color.RGB3(0xC)

结果包含字段名称、类型、偏移、实际存储地址,以及打开对应检查器或内存位置的操作。支持继承字段、内嵌结构、数组,以及 List/Dictionary 的底层存储;地址关系链最多支持 32 层,可分页继续查找,不会因为多条路径共用一个对象就只留下第一条。

原有的多个类之间关系查找继续保留,并补充继承字段、合法派生实例和终点自类型字段的处理。

同时修复了关系链到达字符串后还继续展开、把字符串字节显示成额外指针的问题。现在命中的指针分支会停止展开,其他路径仍可继续查找;嵌套结构仍能细化到具体字段。查询受范围和预算限制,结果不完整时会给出原因,不把“本次没找到”当作“绝对不存在”。

断点命中后可以修改寄存器

debugger_breakpoint_set 新增 on_hit 动作。执行到断点并满足条件后,可以修改指定寄存器,回读确认成功,再选择保持暂停或自动继续。

  • 支持 ARM64 的 X/W 通用寄存器、FP/LR、SP/PC。
  • 支持浮点和 SIMD 的 V/Q/D/S/H/B 视图,以及 FPSR、FPCR、NZCV。
  • 支持内核提供的 TLS 状态;SVE 仅在设备和当前线程已启用相关状态时可用。
  • 命中事件包含修改前后值、校验结果和错误,AI 可以通过 MCP 查询。
  • 悬浮窗「暂停调试 → 断点命中动作」也可以手动设置,不必只依靠 AI。

这是真正暂停线程的外部调试器,不是原来的 perf 采样断点。重叠寄存器别名、无效 PC/SP 或不可用的扩展状态会被拒绝;不支持修改特权寄存器,也不会强制启用 SVE。自动继续需要显式开启,线程仍受原有暂停租约保护。

修复与使用体验

  • 悬浮窗标题更新为 IL2CPP MCP v2.7.6 TG:@il2cppmcp QQ:276342773。
  • 修复部分 IL2CPP 程序集/搜索列表未接收到查询结果、看起来一直为空的问题,改善刷新、重试和缓存失效后的查询恢复。
  • 调整部分调试按钮和预设操作的结果接收,减少操作已提交但界面没有显示反馈的情况。
  • 修复断点校验错误被错误显示为 UNKNOWN_COMMAND 的问题。现在会返回寄存器别名冲突、扩展状态不可用、暂停状态已过期或实际内核拒绝原因,方便用户和 AI 判断下一步。

升级与兼容提醒

安装新构建的 2.7.6 模块并重启设备后再使用;仅更新电脑上的 Python 文件,不能让旧模块获得这些手机端能力。使用 Python stdio 的用户也请同步更新客户端文件;原生 HTTP 用户重新连接并刷新工具列表即可。

默认仍建议使用 Bearer 鉴权。Web 的「无需鉴权」选项继续支持本机和局域网监听,但任何能访问端口的应用或设备都可能调用已开启的工具,只适合可信环境,不要开放公网。

断点和监视点能否使用仍取决于设备内核、权限和硬件槽位。类型解析、GC 和运行时 API 不足时,相应功能会报告限制;这次更新不代表能够通用解密所有 IL2CPP 目标。旧地址、任务 ID 和暂停状态不能跨目标重启复用。

模块版本为 v2.7.6,versionCode 为 276,Python MCP、原生 HTTP MCP 和 WebUI 包版本统一为 2.7.6。

连接方法见 MCP 接入说明。

2.7.0

Choose a tag to compare

@ssyclr ssyclr released this 03 Oct 07:25

Zygisk IL2CPP MCP 2.7.0 更新说明

更新日期:2026-10-03

作者:洋葱落日 && DUM

这次主要围绕 MCP 连接、AI 分析能力和手机上的实际操作体验更新。原生 HTTP 连接已经加入,不想运行 Python 的用户可以直接连接手机;原来的 Python 方式继续保留。悬浮窗也调整了手势、路径导航和代码对照,Web 菜单则重新整理成适合手机、平板和大屏的黑白布局。

MCP 可以直接通过 HTTP 连接

  • 新增原生 HTTP MCP,入口为 /mcp,与原有 Socket 共用控制端口,默认 27184。手机本机客户端可以连接 http://127.0.0.1:27184/mcp,不需要 Python 或 ADB 转发。
  • 需要局域网连接时,在 Web「MCP 连接」中选择监听 0.0.0.0。页面自动检测手机的 Wi-Fi/热点 IPv4,结合已保存端口生成连接配置,不用再手填 IP。
  • 每个 HTTP 会话独立选择目标进程,保留 process_list、process_select 和 process_current。目标退出后不会自动把操作转给另一个进程。
  • 修复携带 Expect: 100-continue 的客户端等待问题,通过认证与报头检查后再接收请求体。
  • Web 增加原生 HTTP 的功能分组开关,默认全部开启。禁用的工具会从工具列表隐藏,直接调用也会被拒绝;管理开关本身不暴露给 AI。

HTTP 使用 Bearer 令牌,但没有 TLS。请只在可信局域网使用,不要把端口开放到公网,也不要公开包含令牌的客户端配置。0.0.0.0 是监听设置,不是客户端要连接的地址。

Python stdio 没有移除。HTTP 已支持共享的具名参数工具和 native_… 原生命令工具,但不是 Python 工具的一比一替换;需要电脑本地文件辅助时仍可使用 Python。两种连接方式的功能开关分别管理,不会自动同步。具体配置见 MCP 接入说明。

延迟启动可以在 Web 设置

在「目标设置」→「启动设置」填写延迟秒数,范围为 0–3600 秒,默认 0。等待结束后再启动 Hook、悬浮窗、目标命令服务和反编译预检,不阻塞游戏主线程。

这里延迟的是模块功能初始化,不是 Zygisk 最初映射引导 SO 的时机。等待期间目标尚未注册到网关,MCP 暂时看不到它属于正常情况。

扩展 AI 可直接使用的分析工具

这次把更多分析能力整理成具名参数工具,Python stdio 和原生 HTTP 可以使用相同名称调用,不需要 AI 自己拼接原生命令。

工具 可以做什么
analyze_function 一次取得汇编、控制流、调用、字符串、引用及已缓存的 IL2CPP 信息;显式设置 decompile=true 时再请求伪代码。各部分单独报告状态。
list_strings、search_strings、find_string_xrefs 枚举/搜索模块中的字符串,并继续查找代码或数据引用。
xrefs_to、xrefs_from 查询某个地址的直接引用,以及函数或指定代码范围向外的引用。
list_functions、get_function、callers、callees、call_graph 查找函数候选、已确认的函数范围和直接调用关系,生成有深度与规模限制的调用图。
field_accesses、dataflow_query 查询字段偏移相关的读写候选,分析 ARM64 寄存器来源与访存表达式。
symbol_bind、symbol_resolve、symbol_list 保存带模块或元数据身份校验的定位规则,重启后重新解析,不直接复用旧绝对地址。
analysis_cache_clear 清理当前进程的静态分析缓存,让后续查询重新扫描。
crash_diagnose 查询当前目标的持久诊断证据;重启后可用 previous=true 查看同一目标上一次已记录退出的会话。
native_library_upload 无需 Python 的 SO 分块上传与状态查询,字节由客户端提供,明确确认执行后才加载。

静态分析会返回扫描覆盖范围、候选依据和不完整状态。直接调用关系不等于完整动态调用关系,寄存器表达式也不是运行时实测值;偏移相同不能单独证明访问的是同一个字段。无法确认的函数边界和间接调用不会被伪装成确定结果。

HTTP 不能读取电脑上的文件路径。SO 上传后的代码仍在目标进程执行,错误的构造函数或 JNI 初始化可能让目标崩溃;遇到超时先查询任务状态,不要重复注入。

外部断点与寄存器信息更完整

  • ARM64 外部暂停调试增加按地址停止的硬件断点、继续运行、step-over 和 step-out;这与原有不暂停进程的 perf 采样断点是两套能力。
  • 断点支持寄存器条件和跳过前几次命中,事件中包含命中地址、次数、线程及通用寄存器快照,AI 可以通过 MCP 查询。
  • debugger_registers 保留 X0–X30、PC、SP、PSTATE,并在系统支持时返回 Q0–Q31、FPSR、FPCR。浮点/向量寄存器不可用时,不影响普通寄存器读取。
  • debugger_breakpoint_set、debugger_breakpoint_remove、debugger_breakpoint_list、debugger_breakpoint_events 分别用于创建、移除、管理和分页查看命中事件。
  • 改进帧指针回溯,返回原始地址、规范化地址和停止原因;PAC 处理只使用内核提供的掩码与可执行映射校验,不猜地址,也不把去除 PAC 位当作认证成功。

断点仍受硬件槽位、SELinux 和 ptrace 权限限制,不是有 Root 就保证可用。需要先显式暂停所选线程,修改操作使用最新 stop_id 并确认;暂停租约为 1–15 秒,读取不会自动续期。回溯仍是有界的帧指针分析,不支持完整 DWARF 或信号帧展开。

IL2CPP 符号可以手动适配

正常目标继续优先使用原有自动兼容,不需要额外填写配置。已经确认目标修改过导出名称时,可以在 Web「IL2CPP 符号」填写 原API名=实际导出名,也可以指定运行时 SO 名称。

模块相对偏移也支持,但必须明确指定模块并开启 allow_offsets=1。格式校验通过不代表函数签名、ABI 和语义一定正确,请不要凭猜测填写地址。

MCP 提供 il2cpp_symbols_list_apis、il2cpp_symbols_get、il2cpp_symbols_validate、il2cpp_symbols_set 和 il2cpp_symbols_reset。配置保存后重启目标生效,不在运行中替换 API;读取时会区分本次启动使用的配置与已经保存的配置。

同时修正 GC 句柄宽度问题,按指针宽度保留 Unity 6 的句柄,调整实例查找、对象检查、材质与渲染相关路径,降低句柄被截断带来的崩溃风险。这不代表所有加密或深度修改的 IL2CPP 都能自动兼容。

悬浮窗更适合触摸操作

  • 列表、表格、代码内容区和空白背景支持上下、左右拖动,不再只能拖滚动条或表格第一列;横向滚动需要内容超出可视范围。
  • 调整惯性和阻力,轻微移动、停手后释放不会继续甩动,新触摸会停止惯性;拖动时避免误触条目、跳转或长按复制。
  • 页签栏溢出时可以左右拖动查看标签,轻点后切换;全部标签可见时可横向滑动切换相邻页签。
  • 对象、函数、类型和 Unity 资源详情改用可点击路径栏。返回前面的节点后保留后续路径,打开新分支时再替换;长路径可以横向滑动,类型路径旁的「+」可以独立开窗。
  • IL2CPP 类型区分类、结构体、枚举、接口和常见字段类型的颜色,未知类型不猜测分类。

标题拖动、窗口缩放、滑块、输入框、分隔条和流程图画布继续使用各自的操作,不会被通用滚动手势接管。

汇编、伪代码和流程图

  • 「内存 / 汇编 / 伪代码」支持全屏,可选左伪代码右 ARM64、上下对照、自动布局或仅伪代码。
  • 伪代码上下文可以选择 64、128、256、512、1024、4096 行;长页面只绘制当前可见内容。
  • 顶部控制区和代码区域可以拖动分隔边界调整尺寸,分析信息与导出操作折叠收纳,代码不再固定只占窗口下半部分。
  • 点击更远处的汇编地址可以请求相应伪代码,联动只使用可靠地址映射;流程图独立加载并保持当前选择的函数,不随汇编翻页反复更换目标。
  • 修正 Ghidra 源码标记中的空白处理,改善伪代码显示;修正对 Android 应用 files 目录权限的过严检查,不修改应用正常目录权限来强行通过校验。
  • 改进代码读取的映射范围和边界检查。反编译继续在独立工作进程执行,失败不会把普通汇编结果一并丢弃,也不会因此关闭其他 MCP 功能。

实例与集合可以直接批量渲染

渲染页增加「所有实例 / 集合」表,按类汇总存活实例,并显示其数组、列表、字典字段引用、数量和地址。打开时持续刷新,全部匹配条目先按最近一次扫描的数量从多到少排序,再分页显示。

点击条目可以把可渲染对象批量加入现有渲染管理;长按或点击「打开」可检查集合元素、打开对象详情或停止渲染。原来的「查找渲染实例」入口继续保留。

对应 MCP 工具为 render_instance_inventory、render_inventory_items、render_inventory_set、render_inventory_status。批量操作分帧完成,先读取工作台请求结果,再查询渲染任务进度;拿到请求 ID 不代表所有对象已经处理完成。

取消固定的 128 个渲染对象总数限制,分页上限不再代表总数量上限。数量仍受设备内存和每帧开销影响,建议按类或距离筛选。这套扫描使用 Unity 存活对象及其集合字段,不是任意托管对象的完整 GC 堆遍历;缺少必要 API 时会明确返回不可用。

Web 菜单重新排版,保留黑白风格

Web 分为目标设置、MCP 连接、功能开关、IL2CPP 符号、运行日志和诊断导出六个入口。手机用紧凑导航和单列,平板根据横竖屏宽度分栏,大屏使用侧边导航。

目标以表格管理;端口、监听范围和客户端配置集中在连接页;符号编辑与参考说明分区;日志有会话列表、记录区和可展开的全宽详情。切换页面、旋转屏幕和后台刷新时,保留输入草稿、滚动位置及编辑光标。

最终使用黑白、黑色文字与直角样式,不包含液态玻璃、渐变、阴影或彩色高亮。玻璃外观开关已经撤回,不影响现有 MCP 功能。

本地诊断与模块更新入口

  • 原有日志继续保存在设备本地,不因目标崩溃或重启而清空,仍可在 Web 查看、筛选、导出和明确确认后清理。
  • 增加目标专属退出诊断记录,关联注册时的模块映射、最近命令及可读取的匹配 tombstone;Hook、补丁等操作增加持久回执,方便事后对照。
  • 诊断只在进程名、PID、UID 等身份匹配时关联崩溃文件。没有 tombstone 会说明证据缺失,正常退出不会直接认定为崩溃,最后一次 MCP 调用也不会被直接认定为根因。
  • 模块信息加入 updateJson 更新地址:https://raw.githubusercontent.com/ssyclr/zygisk-mcp-il2cpp/main/update.json。这里只配置更新入口,实际可用版本以远端发布信息为准。

更新方式与兼容提醒

  1. 安装重新构建的 2.7.0 模块并重启设备。原生 HTTP、调试和悬浮窗修改都在手机端,仅替换 Python 文件不会生效。
  2. 使用 Python stdio 的用户,同步更新 mcp/,或从新版模块 Web 导出 MCP.zip,随后重启 MCP 服务;使用原生 HTTP 的用户重新连接会话即可。
  3. 修改监听地址或端口后需要重启设备;修改目标包名、延迟启动或符号映射后,需要彻底退出并重启目标。
  4. 目标重启后重新选择进程、解析地址和获取对象,不继续使用旧对象地址、扫描结果或任务句柄。异步修改遇到超时先查状态,不盲目重放。

模块版本为 v2.7.0,versionCode 为 270,Python/原生 HTTP MCP 与 WebUI 包版本统一为 2.7.0。

本次已通过离线回归和手机/平板/大屏尺寸的浏览器布局检查,但这些不能替代各设备、各游戏的实际验证。反编译、Unity 资源、实例枚举、驱动和外部断点仍以目标返回的能力及错误为准,不支持的部分保持停用,其他能力继续使用。

项目首页 · MCP 使用说明

2.6.2

Choose a tag to compare

@ssyclr ssyclr released this 30 Sep 11:47

2.6.2 更新说明

作者:洋葱落日 && DUM

主要处理子进程问题。包名:minigame0 是独立进程,不是主进程里的一条线程。以前虽然整包规则能匹配子进程,但不能单独填写完整子进程名,而且多个进程会争用同一个控制端口。

可以只注入指定子进程

Web 菜单现在支持填写完整进程名,例如:

com.ss.android.ugc.aweme:minigame0

只保留这一条时,就只匹配这个子进程,不注入主进程、其他小游戏进程。记得移除原先的 com.ss.android.ugc.aweme 配置,否则主包名规则仍会匹配整包。保存后重启目标应用;删除配置不会卸载已经注入到运行中进程里的模块。

仍然可以填写普通包名,继续同时匹配应用主进程及它的子进程。多条配置可以混用。

MCP 可以查看和切换进程

  • process_list:查看已连接进程的名称、PID 和本次启动标识。
  • process_select:按完整进程名或 PID 选择目标。
  • process_current:确认接下来操作的是哪个进程。

只有一个目标时自动选择;多个目标同时在线时,需要先选择,不会默认把操作发给主进程。选定后,内存、IL2CPP、SO 注入和调试工具都走同一个目标,并在 MCP 返回中显示进程信息。

控制端口不再互相抢占

对外仍是 Web 中配置的一个端口,默认 27184。内部每个进程有独立连接,由外部 Root 服务统一转发;电脑只需要转发这一个端口,手机本地 MCP 仍可直连。悬浮窗操作保留原来的进程内调用,不跟随其他 MCP 客户端切换。

目标退出或重启后,旧选择会失效,不会自动切到别的进程。重新选择后,需要重新获取地址、对象和任务句柄。调用中途断开不会自动重放修改操作。切换进程不会替你停止旧进程里的冻结、Hook 或断点,请先按需清理。

更新与兼容说明

手机模块与正在使用的 MCP 服务都需要更新到 2.6.2,并重启目标应用和 MCP 服务。旧模块仍可使用原单进程协议,但没有进程列表和切换功能。新入口只列出已成功注入、启动内部监听并完成注册的进程,不负责启动应用,也不能绕过 Zygisk 排除规则或系统限制。

这是连接与选择方式的修复,不代表目标的加密 IL2CPP、Unity 资源接口或驱动兼容性也随之改变。新增路径仍需要不同设备上的实际验证,不把本地协议测试当作手机实测结论。

2.6.1

Choose a tag to compare

@ssyclr ssyclr released this 25 Sep 14:25

Zygisk IL2CPP MCP 2.6.1 更新日志

更新日期:2026-09-25

作者:洋葱落日 && DUM

这次更新主要围绕兼容性、稳定性和 MCP 的实际使用体验展开:补齐旧版 IL2CPP 的部分接口缺口,调整反编译加载方式,改进汇编与伪代码联动,同时加入自定义 SO 注入和更实用的关系链搜索。

IL2CPP 与 Unity 兼容

  • 正常导出 API 可用时优先走原有路径,不再额外触发混淆元数据扫描。
  • 对缺少类枚举接口的旧版运行时,增加核心库反射兼容路径。类列表、搜索、Dump、类型关系与 Unity 类发现共用这套适配,不需要为 AI 和手动界面分别配置。
  • 缺少数组头长度接口时,通过运行时分配结果和大小信息校验布局,不再直接假定固定偏移。
  • il2cpp_status 增加兼容模式、缓存验证和失败原因,区分“找到了基础 API”和“相应查询能力已经验证”。
  • 修正 Unity 对象查找、相机、材质、资源及泛型反射中普通托管引用参数多传一层指针的问题,降低由此引起的启动与查询崩溃风险。
  • 增加初始化与线程归属检查;不支持的接口明确返回错误,不尝试调用猜测地址。

这不是通用解密器。深度修改的 ABI、被裁剪的反射方法、不可读资源或缺失的游戏帧接口,仍可能让对应功能不可用。新版适配尚需更多设备验证,不能据此认定所有场景和资源都已恢复。

反编译、汇编与流程图

  • Ghidra 的加载、初始化和分析改到独立工作进程,通过封印 memfd 加载,处理部分设备上模块路径被 linker namespace 拒绝的问题。
  • 工作进程崩溃或超时会返回具体错误,并停用当前会话的反编译能力;控制连接先启动,避免反编译初始化拖住普通 MCP 请求。
  • 默认使用已经成功查询的 IL2CPP 元数据缓存,不在一次普通代码分析中隐式遍历大量类型和方法。
  • 汇编与伪代码按真实地址映射同步、高亮和定位;一行对应多条指令时可以选择地址,无映射时不猜位置。
  • 支持点击可解析的直接调用跳转函数、前进/后退,以及独立或全屏查看当前函数流程图。
  • 汇编编辑支持多行。每个非空行对应一条 ARM64 指令,保存前整块校验;有错误时保留输入并提示行号,不写入内存。确认后从首地址连续覆盖下方指令。

新增 SO 注入 MCP 工具

  • native_library_inject:从 MCP 服务所在机器上传 SO,并显式加载到当前已连接的目标进程。
  • native_library_status:查询任务进度、加载结果及错误,避免超时后重复注入。
  • 支持 ELF/架构检查、可选 SHA-256 校验、显式 JNI_OnLoad 和 global_symbols。
  • 不要求额外执行 adb push,也不提供任意 PID 注入。自定义 SO 在目标内运行,构造函数或 JNI 初始化的故障仍可能导致目标崩溃,不能视为安全沙箱。
  • dobby_resolve_symbol 现在只查已加载模块的动态导出,不再回退到全模块磁盘内部符号扫描。未导出符号返回 0x0,模块或符号存在歧义时明确提示。

关系链与 AI 逻辑

  • 关系链默认优先搜索较短路径,也可选择有界的多路径枚举。
  • 增加搜索内缓存,减少重复解析;保留多类选择、字段限定、ordered 顺序、15 层深度及逐段导航。
  • 类名、字段、偏移和实例地址继续分别处理;只有加载到有效实例后,才允许导航到实际字段存储位置。
  • AI 逻辑支持自定义函数、有界循环、return/assert、数学、字符串、集合和位运算。
  • 显式开启后可进行带参托管调用,支持调用去重、异步结果和取消尚未执行的任务。语法与限制可通过 logic_program_schema 获取。

悬浮窗与 Web 日志

  • 为 NativeActivity 增加独立 Java 触摸子窗口,修复部分目标中“菜单看得到但点不动”的问题;渲染继续使用 Java SurfaceView。
  • 保留拖动手势和窗口外游戏触摸,暂停、失焦及界面销毁时清理输入区域。
  • 改进 Web 日志目录校验和文件导出,减少不同 Root WebUI 环境下的 root 操作失败 1、目录权限检查误报。
  • 导出失败会显示具体阶段,不放宽为全局可写权限,也不会清空旧日志。

日志继续保存在设备本地,目标崩溃或重启后仍可查看;仅在 Web 菜单中明确确认清理后删除。原始日志导出目录为 /data/adb/zygisk_il2cpp_mcp/journal/<目标>/exports/,具体文件以导出回执为准。

更新方式与注意事项

  1. 手机端安装对应的新模块,并重新启动目标进程。仅更新 Python 客户端不会替换手机中的原生代码或 DEX。
  2. MCP 端更新 mcp/ 文件,或使用新模块 Web 菜单导出的 MCP.zip,然后重启 MCP 服务。
  3. 旧配置保留,但进程重启后不要继续使用旧对象地址、任务句柄或扫描结果;重新查询后再操作。

历史版本见 [2.5.0 更新日志]

2.5.0

Choose a tag to compare

@ssyclr ssyclr released this 13 Sep 06:30

Zygisk IL2CPP MCP 2.5.0 更新日志

更新日期:2026-09-13。模块版本 v2.5.0,versionCode 250;MCP 服务、WebUI 包及锁文件统一为 2.5.0。此次在原项目上增量扩展,不替换旧架构。

持久日志与 Web 导航

  • 外部 Root companion 保存分会话 JSONL 日志,约 8 MiB 分卷,历史不自动清除。
  • 命令意图/结果与有界诊断信息可通过 MCP 查询、分页或导出;导出只返回本地文件回执。
  • Web 菜单增加配置、持久日志、诊断导出、MCP 接入导航,可查看、筛选、导出,并由用户确认清理日志。
  • UI/游戏帧日志异步有界记录;磁盘或线程创建失败可诊断,不把日志视为保证完整的事务审计。

MCP 调试工作流与关系链

  • 增加持久调试项目、对象/集合/内存快照和差异、变更历史与受校验撤销、只读后台任务、统一停止入口。
  • 手动“调试项目”页面和 MCP 共用后端;项目不自动重放操作,也不信任跨重启的旧对象地址。
  • 多类/字段可分批加入命名选择集合,支持 any/all/ordered、有界深度 15 的关系分析、真实字段偏移和导航描述。
  • Root 外部暂停调试提供线程状态、ARM64 寄存器、租约、单步和回溯入口;与 perf 不暂停采样断点区分,不提供按地址停止断点或 step-over/out。
  • 修正 Root 重连状态、旧事件 ID 复用、撤销重试、64 KiB 快照差异排序/分页、导出回执覆盖及日志线程创建失败风险。

内存工作台与驱动

  • 恢复 Web 驱动选择,经外部 Root companion 连接;驱动只接管数据读写、搜索、冻结与指针链,其他能力保留本地 KittyMemory。
  • 增加 GG 风格多标签、联合/有序组与数值范围搜索、多类型选择、改善、批量操作、保存列表和缓存结果导出;相应操作有 MCP 入口。
  • 调整搜索标签、大分页、15 层指针链、多页面图标和忙碌状态显示;扩展 Paradise 协议诊断与兼容分支。
  • 不与 GG 完全等价,也不保证所有驱动版本都可用。

历史版本见 [2.4.0 更新日志]。

频道

TG:@il2cppmcp QQ:276342773

2.4.0

Choose a tag to compare

@ssyclr ssyclr released this 12 Sep 18:09

Zygisk IL2CPP MCP 2.4.0 更新日志

更新日期:2026-09-13。模块版本 v2.4.0,versionCode 240;MCP 服务与 WebUI 包版本统一为 2.4.0。

本次继续在原有源码上增量扩展工作台、Unity 资源、精确调用与可选调试后端,保留 Dobby、KittyMemory、对象渲染和现有 MCP 接口。

工作台与指针导出

  • IL2CPP 独立搜索标签可新建、复制、切换,分别保留查询条件;静默自动保存并在启动时恢复,不增加保存按钮或提示。
  • 只持久化标签名称与查询条件,不恢复旧对象地址,不自动重放调用或 Hook。
  • 方法调用器保留每个方法的参数草稿和有限历史,支持通过受保护的返回对象快照进入检查器。
  • 全量指针结果导出使用当前扫描缓存,不再局限于当前页;文件包含模块/偏移配方、批量加载参数和扫描截断信息。导出全部已缓存结果不等于扫描覆盖了全部地址空间。

Unity 动态资源

  • 独立 Unity 资源页支持场景 Renderer、材质/Shader 参数,以及纹理和 Mesh 等存活资源查询;兼容性不足时拒绝对应操作。
  • 增加资源变化监视器:启动、停止、状态和增量事件;采用有界采样,不保证捕获两个采样之间的短命资源。
  • 可读纹理走 CPU 快照,兼容的非可读纹理或 RenderTexture 走 GPU 回读;内置 PNG 编码,不依赖目标保留 EncodeToPNG。
  • Mesh、MeshFilter 和兼容的 SkinnedMeshRenderer 支持几何快照、Java 悬浮层独立模型视图及 OBJ 导出;不是完整材质、动画或骨骼渲染器。
  • 预览/导出复用原 MCP 工具;文件写入目标私有 exports 目录,仅返回状态与文件信息,不将图片或模型正文经 MCP 返回。

类型化调用与 Frida

  • 精确调用扩展结构体、枚举、ref/out 与泛型句柄;参数 schema 和泛型解析有独立工具,实际调用复用 il2cpp_call_exact。
  • 泛型依赖目标已有 AOT 实现及反射接口;无法解析时拒绝调用,不构造不存在的机器码。
  • 可选集成 ARM64 Frida Gum 17.18.0:Interceptor、寄存器/命中计数/回溯与有界 Stalker 事件;不包含 GumJS。
  • Frida 初始化前检查 libc 与模块发现能力,依赖不匹配或预检查失败时单独停用;已有 Dobby 与其余工具继续保留。
  • 工具支持离线 debug_help;

原生模块需用户自行更新并重启目标;MCP 客户端重新加载服务后使用新工具。历史版本见 [2.3.0 更新日志]

频道

TG:@il2cppmcp QQ:276342773

2.3.0

Choose a tag to compare

@ssyclr ssyclr released this 12 Sep 18:06

Zygisk IL2CPP MCP 2.3.0 更新日志

更新日期:2026-09-06

本版本在 2.2.1 的运行时调试能力上,补充游戏内可视化工作台、动态对象绘制、独立 UI 和不依赖 Lua 的原生 AI 逻辑区,并整合近期的内存、检查器、反编译及断点修复。

模块保持通用 MCP 工具定位。目标类型、字段路径、过滤条件、名称映射、业务规则和控制窗口均由调用方配置,不在底层内置某个游戏的实现。

1. 原生 AI 逻辑区

  • 新增独立于 Lua/LuaJIT 的原生 JSON 解释器,在已绑定的游戏线程执行。
  • 支持变量、跨执行周期状态、条件分支、数组遍历、循环控制、日志、数值运算、查表和短路求值。
  • 支持动态对象源、实例字段路径、静态字段、对象位置、坐标投影和共享 UI 变量读取。
  • 绘制输出可控制本程序来源对象的可见性、标签及样式;变量输出可连接 AI 创建的独立 UI 控件。
  • 新增通用“AI 逻辑”页面,提供源码编辑、校验、保存、启动、停止、重启、删除、导出和诊断。
  • 不预装业务程序;编辑器初始内容为空步骤模板。

新增 7 个 MCP 工具:

工具 用途
logic_program_schema 查询语言语法、宿主参数、输出格式、生命周期和限制
logic_program_validate 校验完整定义,不保存、不运行
logic_program_set 新建或完整替换程序
logic_program_list 列出程序及运行诊断
logic_program_get 获取完整定义、状态和错误
logic_program_control 启动、停止或重启
logic_program_remove 删除程序并解除它拥有的类跟踪组

runtime_capabilities 增加 native_logic 信息。原生命令入口、HELP、MCP Schema 和功能开关检查同步接入,AI 仅通过 MCP 即可查询用法。

2. 动态对象发现、绘制与恢复

  • 原生逻辑的对象源按程序集、命名空间和类描述,扫描周期与逻辑执行周期分别配置,位置和投影继续随游戏帧采集。
  • 新发现对象的自动选择由 select_new 控制,默认开启;刷新不会重新勾选用户已经取消选择的对象。
  • 绘制判断缓存同时检查对象 ID 和对象代次,避免地址复用时直接继承旧对象的显示结果。
  • 未得到当前程序判断的对象采用可配置的 default_visible,默认隐藏。
  • 先完成逻辑筛选,再处理可见对象的投影和骨骼采集,减少无效绘制工作。
  • 常见标量字段使用缓存的字段元数据和直接读取,减少反复查询及装箱;非常见值类型保留既有检查器回退路径。
  • 程序状态增加对象源扫描时间、发现数量、扫描错误、有效对象数、允许绘制数量和调度延后次数。
  • 停止或删除程序仅移除其拥有的跟踪组,保留其他来源和手动保留的对象。

工作区预设可保存原生程序定义。设置 auto_start=true 并保存 default 预设后,下次启动重新解析对象源并启动程序;不保存运行时对象缓存或程序状态。逻辑专属跟踪组由程序恢复,避免重复恢复后残留孤立跟踪器。

3. 独立 UI 与可视化工作台

  • 使用 Java 层承载 ImGui 菜单,支持中英双语、主题、拖动、缩放和折叠。
  • MCP 可创建独立父/子窗口、控件树、标签页、表格及绑定;业务窗口布局由调用方下发。
  • 共享 UI 变量支持整批校验后提交,容量不足时返回错误,避免只写入部分输出。
  • 加载预设后清空旧运行时变量,以保存的可写控件值作为初始值;实时变量写入优先。
  • 增加场景、类型、实例与字段路径浏览、独立类型窗口、类型关系图及 JSON/Mermaid 导出。
  • 支持对象和组件从检查器加入渲染,以及独立的对象、类跟踪、相机和样式管理。
  • 列表与分析窗口支持分页、长按复制、独立详情和目标私有文件导出;设置及窗口布局可保存。
  • 缺失相机或位置接口时,纯计算、UI 变量及静态字段逻辑仍可在可用的游戏帧上执行,显示能力单独降级。

4. 内存、检查器与调试改进

  • 统一使用 KittyMemory 进行内存读写和代码补丁,搜索使用受控快照;旧内核驱动配置不再加载。
  • 扩展精确/未知值搜索、多轮过滤、冻结任务管理,以及可配置深度、读取量、候选数量和时间预算的指针链扫描。
  • 指针链按实际 ELF 映射识别模块根,返回前重新读取验证;支持符号配方保存与批量加载,并提供截断及空结果原因。
  • 修复泛型引用数组识别、对象/集合查询和非有限浮点 JSON 输出;工作台响应保留精确整数文本并提供更具体的解析错误。
  • 选择性 Dump 支持程序集、命名空间或类范围,使用独立私有文件,避免覆盖旧结果。
  • Ghidra 伪代码通过真实源码地址映射与汇编同步,新增 ARM64 基本块流程图;无映射时不猜测地址。
  • Ghidra 异常按阶段报告,源码映射输出失败时可回退普通伪代码。
  • ARM64 硬件断点改由 Root companion 在目标进程外创建 perf 采样事件;命中详情提供已捕获的寄存器和回溯。
  • 追踪、计数器、断点及屏幕日志提供独立管理入口。硬件断点仍为非暂停采样,不是单步调试器。
  • 支持识别库名改变但仍保留标准导出与兼容 ABI 的 IL2CPP 运行库;安装流程同步处理共享库实际文件名与固定入口链接。

5. 本轮修复

  • 修复 LOGIC_PROGRAM_* 已实现处理函数但未进入原生命令入口的问题。
  • 校验阶段检查表达式参数数量,并拒绝循环外的 break/continue。
  • 程序运行设置步数、输出、状态和协作式耗时限制;多个程序轮转调度,预算不足时延后执行。
  • 程序执行或输出校验失败时丢弃该周期的状态和输出,停止该程序并记录错误路径。
  • 扩展工作区预设解析深度,支持嵌套原生逻辑定义。
  • 修复 Il2CppString 只有前向声明时使用 offsetof 导致的两处编译错误。字符串长度和字符地址改用 il2cpp_string_length、il2cpp_string_chars 获取,保留长度限制和有界内存读取。

更新设备模块后,需要同步更新外部使用的 mcp/ 客户端文件;旧模块无法识别新增原生命令。

当前限制与验证范围

  • 原生逻辑目前支持读取、计算、绘制覆盖和 UI 变量输出,尚未接入任意方法调用、字段写入或方法 Hook;不能把该能力描述为已经完成具体游戏的追踪功能。
  • 本轮没有修补骨骼采集。骨骼显示仍取决于目标提供的 Animator 等相关接口。
  • 对象源依赖受支持的 Unity 对象发现接口;普通托管对象不能直接作为空间绘制对象。
  • 协作式时间预算无法抢占已经开始的 Unity 调用,也不包含所有发现和绘制开销,不构成帧率保证。
  • 目前记录的检查结果为 55 项 Python MCP 接口测试、82 项源码契约检查通过;字符串兼容修复后另通过 5 项相关源码检查。

频道

TG:@il2cppmcp QQ:276342773