公司动态
Cheat Engine+AI编程:零基础入门内存调试与脚本自动化
这次我们来看一个组合玩法Cheat Engine AI 编程。Cheat Engine简称 CE是一个开源的内存调试工具AI 编程工具则让你用自然语言生成和修改代码。这两个东西放在一起能组成一套适合零基础同学的“底层编程入门课”用 CE 把“内存地址、指针、偏移量、基址”这些抽象概念变成可视化操作再让 AI 帮你写脚本、解释报错、生成批量任务。如果你手里只有一台普通 Windows 电脑没有独立显卡这套学习路径基本没有门槛。为什么值得试核心原因有三个。第一CE 自带官方教学程序 Tutorial跟着关卡走几分钟就能完成第一次内存扫描看到数值从“游戏里的一行 UI”变成“内存中的一个地址”。第二AI 编程工具可以让过去半小时才能查明白的 Lua 脚本语法在几分钟内生成并跑通。第三这套组合不只是“改数值”而是让你实际接触进程内存、指针追踪、汇编指令和脚本自动化对以后学逆向、学 C/C、学调试都很有帮助。本文会用一台普通 Windows 电脑从零开始安装 CE、选择 AI 编程工具、跑通第一次内存扫描、用指针找到稳定地址、用 AI 生成 CE Lua 脚本并完成一个简单的批量修改自动化示例。同时会专门说明使用边界和合规要求哪些场景能玩、哪些场景绝对不能碰。1. CE AI 编程核心能力速览能力项说明工具组合Cheat Engine开源内存调试工具 AI 编程工具Cursor / Copilot / Claude 等核心用途学习内存结构与指针概念、辅助编写调试脚本、自动化内存分析操作系统WindowsCE 主要支持 WindowsLinux 下可用 Wine 但体验一般硬件需求普通 x86_64 CPU、2GB 内存即可运行不依赖 GPU无显存要求安装方式官网下载安装包按向导安装启动方式桌面图标启动 CEAI 编程工具按各自官方客户端启动脚本接口CE 提供 Lua 脚本接口和 Auto AssemblerAA脚本批量任务CE Lua 可批量处理地址和重复写入AI 可批量生成代码框架典型场景单机程序调试、CTF/逆向入门、编程辅助、自动化测试学习从表格能看出这个组合最友好的地方是没有显卡门槛。CE 是轻量桌面工具市面上主流的 AI 编程助手也是云端服务本地不需要部署大模型普通办公本就能跑。2. 这个组合能解决什么问题先拆开看两个工具的定位。Cheat Engine 解决的是“看不进内存”的问题。平时写代码变量、数组、结构体在内存里怎么排很难直观感知。CE 附加到一个进程后可以直接扫描内存中的数值查看汇编指令跟踪指针链。当你亲手把一个“游戏里的血量”从 100 改成 9999并且看着它在内存地址里变化时“内存布局”这个概念就落地了。AI 编程解决的是“写不出脚本”的问题。CE 的 Lua 脚本和 AA 脚本本身有一定学习成本零基础玩家第一次看到writeInteger、getAddress、aobscan这些 API 会很不适应。AI 编程工具可以充当随叫随到的老师你描述需求它生成脚本你贴报错它解释原因你问概念它用例子说明。两者结合等于有了“实验器材”和“辅导员”。适合的人群包括想理解指针、地址、偏移量底层含义的编程新手。想学 CE 但卡在“扫描出地址又变了”这一步的自学者。想用 AI 快速生成自动化调试脚本的测试或开发人员。对逆向工程、CTF 比赛中内存分析感兴趣的进阶玩家。不适合的人也要说清楚想修改在线游戏、绕过付费机制、破坏他人数据、在没有授权的软件上做攻击性测试的人不应该学这套内容。工具本身没有善恶属性使用边界在人的选择上。3. 必须遵守的安全边界与合规使用这篇文章的所有示例只允许在单机测试程序、自有软件或获得授权的实验环境中进行。CE 自带的教学关卡 Tutorial 就是一个专门用来练习的官方目标程序学习阶段优先用它不要急着拿其他程序做实验。使用 CE 和相关脚本时遵守以下边界不要对在线游戏、多人竞技游戏使用内存修改这通常违反服务条款可能导致账号封禁严重时引发法律纠纷。不要用于篡改商业软件、绕过付费系统、窃取用户数据或侵犯他人隐私。不要从未知来源下载所谓“CE 压缩包”“老版本破解包”这类文件很可能捆绑恶意程序。请从 Cheat Engine 官方网站或官方 GitHub Releases 获取最新版本。在 CTF 比赛、课程实验、公司内部测试等场景使用前先确认实验环境是否允许调试和修改目标进程。涉及人脸、声音、版权素材、账号数据等内容时必须确认你拥有合法使用和修改的授权。合规不是套话而是工程实践的前提。把 CE 当“内存显微镜”来学底层原理这个方向是正向且有价值的把 CE 当“破坏工具”来滥用既没有技术深度也会给自己带来麻烦。4. 环境准备与前置条件4.1 硬件和系统要求CE 对系统要求很低Windows 7 以上系统基本都能跑。建议使用 Windows 10 或 Windows 1164 位系统体验最完整。CPU 没有特殊要求内存建议不低于 2GB磁盘剩余空间 500MB 左右即可。AI 编程工具方面如果用 Cursor、GitHub Copilot、Claude 网页版这类云端服务本地不需要 GPU不需要配置 CUDA。有人会问“需不需要大显存”答案是这个入门课不涉及本地大模型推理所以不需要考虑显存。4.2 安装 Cheat Engine从官网下载最新版本安装包。安装过程中需要注意一点安装向导可能会默认勾选一些可选组件或推广软件建议手动取消额外勾选只保留主程序。安装完成后桌面会出现 Cheat Engine 图标同时安装目录里会有一个Tutorial-x86_64.exe这就是官方教学程序。启动 CE 后界面主要分为几块左侧是“目标进程列表”中间是扫描区底部是地址列表菜单栏里可以打开“Lua Engine”脚本控制台。第一次打开时如果杀毒软件拦截可以用官网安装包重新安装并在正规渠道确认文件签名。4.3 选择并安装 AI 编程工具AI 编程工具的选择范围很大常见的有Cursor基于 VS Code 的 AI 编辑器免费版就能用支持聊天、补全、代码生成。GitHub Copilot老牌 AI 编程助手官方插件支持 VS Code、JetBrains 系列。Claude 网页端 / API适合直接贴报错、问概念也可以让我先生成完整脚本。通义灵码等国内 AI 编程插件安装方便支持中英文普通用户门槛低。入门阶段不用纠结“哪个最强”选一个自己用得顺手的就行。我的建议是编辑器里装一个 Cursor 或 AI 插件浏览器里留一个 Claude 或同类对话网页前者负责写代码后者负责解答概念。4.4 准备一个测试目标学习阶段最好的目标程序是 CE 自带的 Tutorial。它分多个关卡从精确值扫描、未知初始值扫描、浮点扫描一直做到指针和汇编代码定位完全是为 CE 教学设计的。如果你不想用 Tutorial也可以自己写一个简单的程序。比如用 Python 写一个循环变量或者用 C 语言写一个简单的计数器编译成可执行文件后作为调试对象。自己写的程序没有任何合规风险还能顺便复习编程知识。5. 第一次实战用 CE 完成内存扫描安装好 CE 后先跑通最经典的流程“精确值扫描 修改内存”。这个过程能让你理解“变量在内存里是怎么存、怎么找的”。5.1 附加目标进程启动 CE打开 Tutorial。回到 CE 窗口点击左上角的电脑图标Select a process在进程列表中找到Tutorial-x86_64.exe点击“Open”附加。注意如果附加失败试试右键以管理员身份运行 CE。CE 读取进程内存需要系统权限权限不足时会失败。附加成功后CE 主界面右下角会显示目标进程的信息。5.2 精确值扫描Tutorial 第 1 关Tutorial 第一关会告诉你给一个 Health 值初始是 100点击“Hit me”会减少它。目标是把这个值找出来并改成 999。操作步骤在 Tutorial 中记下当前 Health 数值例如 100。在 CE 的Value输入框中输入100Scan Type选择Exact ValueValue Type选择4 Bytes或All。点击First Scan左侧会出现大量匹配结果。回到 Tutorial点击按钮让数值减少比如变成 99。回到 CE将Value改为99点击Next Scan。重复“修改数值 - Next Scan”的过程直到结果只剩 1 到 2 个地址。双击这个地址添加到下方地址列表。在地址列表里双击Value列把数值改成999。回到 Tutorial点击检查按钮第一关通过。这个过程的本质是通过不断缩小匹配范围定位到真正保存该数值的内存地址。你会直观看到“变量”不是一个抽象概念而是某个地址上一段连续字节。5.3 应对动态地址指针与偏移量如果你直接重启 Tutorial再重复上面的扫描会发现上一次找到的地址已经失效。这就是动态地址操作系统每次给进程分配的内存基址可能不同游戏里很多对象也是运行时动态创建。CE 的解决方案是“指针扫描”。找到当前数值的地址后右键点击该地址选择Find out what writes to this address然后回到 Tutorial 点击按钮改变数值。CE 会捕获到执行写入的汇编指令例如mov [rax18], edx。这里的rax通常指向某个对象18是偏移量。接下来右键点击地址选择Pointer scan for this addressCE 会扫描指向该地址的指针链。扫描完成后找到一条以绿色显示的地址那就是静态基址。把“基址 偏移量”组合起来就能得到一个稳定地址即使重启进程也能定位到正确位置。对初学者来说指针这个概念第一次变得“看得见”。理解指针链时可以让 AI 帮你画一个简单的数据关系图也可以这样问 AI“请用通俗的语言解释什么是指针、基址和偏移量最好结合一个游戏角色属性的例子。”5.4 用 Lua 脚本写入数值地址找到后可以在菜单栏点Table - Lua Engine打开 Lua 控制台直接执行脚本。这个脚本读取当前附加进程然后向指定地址写入新值-- 在 CE 的 Lua 控制台执行 -- 需要先附加目标进程 local pid getOpenedProcessID() if pid 0 then print(请先附加目标进程) return end -- 地址来自前面扫描结果请替换为你自己的地址 local addr 0x017A2B3C local newValue 999 writeInteger(addr, newValue) print(string.format(已写入地址 %X %d, addr, newValue))执行后如果地址有效Tutorial 中的数值会被改掉。这个示例体现了 CE 脚本化的基本思路附加进程 → 定位地址 → 写入数据。需要说明的是addr要替换成你自己扫描出来的地址不能直接运行。CE 的 Lua API 在不同版本里有些差异以帮助文档中的Lua API说明为准。6. 用 AI 编程工具辅助学习与开发现在把 AI 编程工具引入学习流程。AI 能解决的核心问题有三个解释概念、生成脚本、调试报错。6.1 AI 适合解决哪些问题在 CE 学习过程中你可能会遇到这些场景看到mov [rax18], edx这样的汇编代码不知道什么意思。想写一个脚本批量修改多个地址但不知道 CE Lua API 怎么用。脚本运行时报错比如writeInteger参数不对不知道哪里写错。想理解“锁定数值”和“自动写入”的区别但教程讲得不够细。这些问题非常适合丢给 AI。因为它们是标准技术问题AI 有大量训练数据支撑回答的准确率很高。6.2 提示词模板用好 AI 编程工具的关键是提示词。下面是我常用的模板思路你是 Cheat Engine 脚本专家。我当前附加的进程是 tutorial-x86_64.exe已经通过扫描找到一个 4 字节地址值是 100。请帮我写一个 Lua 脚本 1. 将该地址的值改为 500 2. 每隔 3 秒自动写入一次 3. 输出每次写入结果。 等我提供具体地址后脚本中请用变量保存地址方便我替换。写提示词时注意三点角色设定、任务目标、输入条件。告诉 AI 你用的是 CE Lua 环境它会优先输出可运行的 CE 脚本而不是普通 Python 代码。6.3 让 AI 解释概念如果你完全不懂指针可以这样问我是编程零基础。请用生活化的例子解释指针、基址、偏移量是什么为什么调试游戏时一个角色血量的内存地址每次启动都会变化AI 通常会给出类似“指针就像门牌号基址是路名偏移量是房间号”的解释。虽然不完全严谨但对入门者建立起第一印象很有帮助。6.4 让 AI 生成 CE 脚本在 5.4 节的 Lua 脚本基础上让 AI 帮你扩展功能。例如请帮我把上面的 Lua 脚本改成批量模式有一个地址列表每个地址都写入一个新值写入前先判断进程是否已附加如果写入失败打印错误信息并跳过。AI 生成代码后不要直接运行先看一遍。遇到不理解的地方继续提问“这一行writeInteger(addr, newValue)的作用是什么可不可以改成writeFloat”6.5 让 AI 调试报错CE Lua 控制台报错时直接把报错信息和相关脚本一起贴给 AI我在 CE Lua 控制台运行这段脚本 粘贴脚本 报错 粘贴报错信息 请帮我找出错误原因并修正。这个工作流比手动翻文档高效很多。我也是这样建议学员的AI 是辅导员不是代写机器。每次让 AI 生成代码后必须要求它解释关键行确保你理解后再拿去用。7. 接口 API 与批量任务自动化CE 的 Lua 接口就是它的“API”。通过 Lua你可以实现自动附加进程、按地址列表批量写入、定时锁定数值、记录变化趋势等任务。这套能力在学习自动化测试和脚本编程时非常有用。7.1 CE 常用 Lua API入门阶段常用的几类函数作用getOpenedProcessID()获取当前附加进程的 PIDopenProcess(pid)打开指定 PID 的进程writeInteger(address, value)向指定地址写入 4 字节整数writeFloat(address, value)向指定地址写入浮点数readInteger(address)从指定地址读取 4 字节整数getAddress(moduleoffset)解析模块名偏移量的地址具体规则以 CE 帮助文档中的 Lua API 章节为准。AI 在生成脚本时一般会主动使用这些函数你只需要提醒它“按 CE 官方 Lua API 生成”。7.2 批量修改多个地址假设你想同时修改一组地址的数值用 Lua 循环是最直接的做法-- 批量修改示例对多个地址写入同一个值 local addresses { 0x017A2B3C, 0x017A2B40, 0x017A2B44, } local newValue 888 for i, addr in ipairs(addresses) do writeInteger(addr, newValue) print(string.format(地址 %X 已写入 %d, addr, newValue)) end这个脚本展示了“把重复操作编程化”的思路。如果地址数量很大可以放在一个表里或者从外部文件读取。AI 可以帮你把“从文本文件读取地址列表”的逻辑补全。7.3 定期写入与状态监控如果你需要让某个地址每几秒保持一个值可以写一个循环-- 每隔 3 秒写入一次按 Esc 结束 local addr 0x017A2B3C local value 500 while true do writeInteger(addr, value) print(已写入 , value) sleep(3000) -- 单位毫秒 end这个功能等同于 CE 地址列表里的“Active 锁定”但脚本方式更灵活可以加上条件判断、日志记录和异常处理。再次强调这套自动化能力只应在你自己编写或获得授权的测试程序上使用。不要在在线游戏、他人软件上运行任何自动化写入脚本。7.4 用 AI 生成外部监控脚本除了 CE 内置的 LuaAI 还可以帮你生成 Python 外部监控脚本。比如说你想用 Python 读取某个 CE 扫描到的地址值并输出成日志。常见库是pymem。但这类外部读写内存的代码确实容易被滥用所以请保证目标进程是你自己编写的程序或者明确允许调试的教学程序。如果你确定目标合规可以让 AI 生成类似框架请用 Python 写一个内存读取脚本使用 pymem 附加到指定进程读取一个 4 字节地址的值每秒打印一次直到用户终止。AI 会生成对应代码。你只需要把 CE 扫描得到的地址替换进去就行。这个方向适合想深入学 Python 和自动化测试的读者。8. 资源占用与性能观察CE 本身是轻量级工具资源占用非常低。正常启动后CE 进程的内存占用只有几十 MB 到一两百 MB对现代电脑几乎无感。它不调用 GPU没有显存占用这一点在本文开头就说过。真正影响性能的是扫描过程。当你对一个大型进程执行First Scan时CE 会读取目标进程的内存页此时 CPU 会有短暂波动扫描耗时取决于目标进程的内存大小和扫描类型。观察性能有几种方法打开任务管理器分别查看 CE 进程和测试进程的 CPU、内存占用。在 CE 左下角观察扫描耗时和匹配结果数量。如果扫描一次耗时太长可以把Value Type收窄到你需要的类型比如只扫4 Bytes。知道地址范围后可以在Memory Scan Options里设置扫描范围减少无效工作。AI 编程工具的占用则取决于客户端类型。VS Code 类编辑器加上 AI 插件内存占用一般比空白编辑器多几百 MB属于正常范围。云端对话网页只占用浏览器内存你的电脑不需要为运行大模型承担压力。这里有一个实用经验第一次扫描前先关闭不必要的程序给系统留出余量。特别是当你用 CE 调试大型程序时内存不足会拖慢整个流程。9. 常见问题与排查方法问题现象可能原因排查方式解决方案CE 附加进程失败权限不足提示错误时查看具体信息右键以管理员身份运行 CE扫描结果为 0数值类型选错确认目标数值是整数还是浮点数切换 Value Type 为4 Bytes、8 Bytes或Float地址每次重启都变动态地址重新扫描并观察地址变化使用指针扫描找绿色基址修改值后目标程序崩溃写入地址错误或类型不符检查地址是否有效、写入类型是否匹配回滚操作改用只读测试先确认地址类型AI 生成的 Lua 脚本运行报错API 名称或版本不匹配复制报错信息给 AI 看让 AI 按 CE 官方 Lua API 修正杀毒软件拦截 CE误报或安装包来源不明确认安装包来自官网使用官网最新版并恢复被隔离的文件指针扫描结果太多扫描深度和指针数量设置过大调低最大偏移量、递归深度使用更精确的偏移范围重新扫描批量脚本卡住脚本死循环或地址无效在循环中加入打印和超时检查地址列表添加 sleep 和异常处理实际遇到问题时的排查顺序建议是先看 CE 附加进程是否成功再看扫描类型是否正确最后检查地址和值类型。大多数入门问题都出在这三步。10. 最佳实践与学习路径这里给出一条可复制的学习路径按顺序走下来会比较顺跑通 CE 官方 Tutorial 前 6 关。重点理解精确扫描、未知初始值扫描、浮点数扫描、代码找字节、指针和指针扫描。让 AI 解释每关原理。每过一关都要能用一句话说清楚“这一关在做什么”说不清楚就问 AI。用自己的测试程序练习。自己写一个简单的程序放一个变量用 CE 扫描它再尝试用 Lua 读取和修改。让 AI 生成脚本并阅读。从“单地址修改”开始逐步增加批量、定时、日志功能。保留最小可用配置。把常用的 CE Lua 脚本存成一个模板文件方便以后复用。分目录管理素材。模型文件、输入素材、输出结果分开存放脚本也按日期或功能建立版本记录。控制实验范围。每一项技术验证都限定在授权环境中进行不要随手拿同事的软件或公网服务做实验。给 AI 写提示词时也可以引入“最小可行产品”思路先让 AI 生成一个能跑的最小脚本跑通后再逐步加功能。不要一上来就要 AI 生成一个几百行的完整工具那样出错难定位AI 自己也容易蒙。11. 总结与下一步这个组合最值得尝试的点在于它把抽象的内存概念变成一个可见、可操作、可验证的过程。你不需要拥有高端显卡不需要准备大型数据集只要一台普通 Windows 电脑装一个 CE配一个 AI 编程助手就能开始动手实验。最先应该验证的功能是用 CE 扫描 Tutorial 第一关的数值并成功修改它。这一步通过后你再学习指针、Lua 脚本和批量任务都会顺利很多。最容易踩的坑有三个第一是 CE 没有以管理员身份运行导致附加失败第二是扫描类型选错导致结果为零第三是拿在线游戏做实验这不仅会封号还可能引发法律风险。前两个问题查报错就能解决第三个问题靠自觉。后续可以继续扩展的方向包括学习 Auto Assembler 脚本、分析汇编指令、把 CE 与 Python 自动化测试框架结合、研究游戏开发中常见的内存分配方式。你会发现这个从“改数值”开始的入门路径最终通向的是操作系统、编译原理和调试器设计等更硬核的知识。