在 Cheat Engine (CE) 中,通过编写 Auto Assemble(自动汇编) 脚本禁用 ClipCursor 的原理非常直接:

Windows 的 user32.dll!ClipCursor 函数负责将鼠标限制在指定区域。通过 CE 脚本将该函数的入口指令直接修改为 mov
eax, 1; ret,就可以让游戏在尝试锁定鼠标时直接返回“成功”而不执行任何实际的锁鼠操作。

由于《孤岛惊魂3》(Far Cry 3)是 32 位(x86) 游戏,下面提供针对 32 位程序的脚本及详细操作步骤。

第一步:准备与附加进程

  1. 启动《孤岛惊魂3》游戏。
  2. 打开 Cheat Engine。
  3. 点击 CE 左上角的 电脑图标(Select a process to open)。
  4. 在进程列表中找到并选中 FC3.exe 或 FC3_d3d11.exe,点击 Open 附加到游戏。

第二步:编写 Auto Assemble 脚本

  1. 在 CE 主界面按下快捷键 Ctrl + M 打开 Memory Viewer(内存浏览器) 窗口。
  2. 在 Memory Viewer 窗口的菜单栏中选择 Tools -> Auto Assemble(或直接在 Memory Viewer 中按下 Ctrl
    • A)。
  3. 在弹出的 Auto Assemble 窗口中,将默认的内容全部清空,然后粘贴以下脚本:

[ENABLE]
// 赋予 user32.ClipCursor 函数内存页面的可写权限
fullaccess(user32.ClipCursor, 16)

// 分配内存备份原始指令
alloc(orig_clip, 16)

// 保存 user32.ClipCursor 的原始字节
orig_clip:
readmem(user32.ClipCursor, 16)

// 修改 ClipCursor 入口:强制返回 TRUE (1),并清理 1 个参数 (ret 0004)
user32.ClipCursor:
mov eax, 00000001
ret 0004

[DISABLE]
// 恢复原始指令
user32.ClipCursor:
readmem(orig_clip, 16)

// 释放备份内存
dealloc(orig_clip)

第三步:将脚本保存到 Cheat Table

  1. 在 Auto Assemble 窗口的上方菜单栏选择 File -> Assign to current cheat table(分配给当前表格)。
  2. 关闭 Auto Assemble 窗口和 Memory Viewer 窗口。
  3. 回到 CE 的主界面,你会发现在下方的地址列表中多出了一个条目(默认名称为 Auto Assemble script)。
  4. 双击该条目的名称,可以将其重命名为 禁用 ClipCursor (解锁鼠标)。

第四步:激活脚本

  1. 点击该条目左侧的 方框 [ ] 勾选它(激活状态下会显示 [X])。
  2. 当脚本处于勾选状态时,游戏再次调用 ClipCursor 将不会产生任何限制效果,鼠标可以随意移出游戏窗口,方便你在旁边的屏幕或窗口中进行调试。
  3. 不需要时取消勾选即可恢复原样。

补充:64 位(x64)游戏的脚本写法(备用参考)

如果未来调试 64 位(x64)游戏,64 位的 Windows API 调用约定不同(通过 rsp 栈和寄存器传参,无需
ret 0004),脚本中的修改部分需改为:

[ENABLE]
fullaccess(user32.ClipCursor, 16)
alloc(orig_clip, 16)

orig_clip:
readmem(user32.ClipCursor, 16)

user32.ClipCursor:
mov eax, 00000001
ret

[DISABLE]
user32.ClipCursor:
readmem(orig_clip, 16)

dealloc(orig_clip)

极简手工修改法(如果不写脚本)

如果你不想保存脚本,只想临时解锁:

  1. 在 CE 中按 Ctrl + M 打开 Memory Viewer。
  2. 按 Ctrl + G 跳转地址,输入:user32.ClipCursor,点击 OK。
  3. 光标会自动停在 ClipCursor 函数的第一行汇编指令上。
  4. 直接双击第一行指令,将其修改为 mov eax, 1,按 Enter。
  5. 下一行指令修改为 ret 4(32 位游戏)或 ret(64 位游戏)即可。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐