CELua.txt translate
🌍 全局变量
TrainerOrigin:仅当 CE 作为训练器启动时设置,包含启动 CE 的训练器路径。process:当前打开进程的主模块名称。MainForm:CE 主 GUI 窗口对象。AddressList:主 CE GUI 的地址列表对象。
🧩 全局函数
版本与系统信息
getCEVersion():返回 CE 版本的浮点值(如 7.4)。getCheatEngineFileVersion():返回完整版本数据(原始整数 + 表:major, minor, release, build)。getOperatingSystem():Windows 返回 0,Mac 返回 1。darkMode():Windows 暗模式下返回 true(Mac 无影响)。
安全与保护
activateProtection():防止基础内存扫描器打开 CE 进程(效果有限)。enableDRM(altitude?, secondaryprocessid?):内核级保护,防止普通扫描器读取 CE 或指定进程内存。
内存操作
fullAccess(address, size):将内存块权限设为可写+可执行。copyMemory(srcAddr, size, dstAddr?, method?):- 方法:0=目标→目标,1=目标→CE,2=CE→目标,3=CE→CE。
- 成功返回目标地址,失败返回 nil。
compareMemory(addr1, addr2, size, method?):- 方法同上。相同返回 true,否则返回 false + 首次差异索引。
读写内存(目标进程)
readBytes(addr, count, asTable?):读取字节,asTable=true 时返回表。writeBytes(addr, ...)或writeBytes(addr, table):写入字节。readByte/Short/Integer/Qword/Pointer/Float/Double/String(addr, ...):读取各种类型。writeByte/Short/Integer/Qword/Pointer/Float/Double/String(addr, value, ...):写入各种类型。- 所有写入函数成功返回 true。
读写内存(CE 自身进程)
- 所有上述函数均有
Local后缀版本,如readBytesLocal,writeIntegerLocal等,操作 CE 自身内存。
数据类型转换
signExtend(value, msb):符号扩展。xxxToByteTable(value):将数值/字符串转为字节表(word, dword, qword, float, double, extended, string, wideString)。byteTableToXxx(table, signed?):反向转换(word, dword, qword, float, double, extended, string, wideString)。
位运算
bOr,bXor,bAnd,bShl,bShr,bNot:标准位运算。
内存区域枚举与文件操作
enumMemoryRegions():返回内存布局表(BaseAddress, AllocationProtect, RegionSize 等)。writeRegionToFile(filename, srcAddr, size):写内存块到文件。readRegionFromFile(filename, dstAddr):从文件读取到内存。
Lua 状态与引用
resetLuaState():创建新 Lua 状态(旧状态不销毁 → 内存泄漏)。createRef(...)→getRef(id)→destroyRef(id):创建/获取/销毁 Lua 对象引用(用于存储非整数对象)。
函数序列化
encodeFunction(fn)→decodeFunction(str):函数 ↔ 编码字符串(注意架构兼容性)。encodeFunctionEx(script, dllPath?):支持指定 Lua DLL。
国际化
getTranslationFolder():返回当前翻译路径。loadPOFile(path):加载 .PO 翻译文件。translate(str)/translateID(id, orig?):翻译字符串。
字符编码
ansiToUtf8(str)/utf8ToAnsi(str):编码转换(GUI 多用 UTF-8)。
模块与文件
enumModules(pid?):返回模块信息表(Name, Address, Is64Bit, PathToFile)。md5memory(addr, size)/md5file(path):计算 MD5。getFileVersion(path):返回文件版本(64位值 + 分段表)。getFileList(path, mask?, subdirs?, attr?)/getDirectoryList(path, subdirs?):文件/目录枚举。extractFileName/Ext/FileNameWithoutExt/FilePath(path):路径解析。
符号处理
enableWindowsSymbols():下载并加载 Windows PDB 符号(首次较慢)。getAddress(symbol, local?):解析符号地址(local=true 查询 CE 自身符号)。enableKernelSymbols():启用内核符号(需先调用 enableWindowsSymbols)。getAddressSafe(...):安全版 getAddress,失败返回 nil。getSymbolInfo(symbol):返回符号信息表(modulename, address, size 等)。getModuleSize(modulename):获取模块大小。getRTTIClassName(addr):根据 RTTI 获取类名。reinitializeSymbolhandler(wait?):重新初始化符号处理器。searchPDBWhileLoading(state):是否在加载时查询 PDB(默认 false,较慢)。
错误与等待控制
errorOnLookupFailure(state):查找失败时是否报错(默认 true)。waitforsymbols(state):是否等待符号加载(默认 true)。
汇编与脚本
generateAPIHookScript(addr, jumpTo, newCallAddr?, ext?, targetSelf?):生成 API Hook 脚本。assemble(line, addr?, pref?, skipCheck?):汇编单行代码。autoAssemble(text, targetSelf?, disableInfo?):执行自动汇编脚本。autoAssembleCheck(text, enable, targetSelf?):语法检查。compile(text, addr?, targetSelf?):编译 C 代码 → 返回符号表。compileCS(text, refs, coreAssembly?):编译 C# 代码 → 返回临时 DLL 路径。
EXE 训练器与自定义命令
registerEXETrainerFeature(name, fn):向 EXE 训练器添加功能。registerAutoAssemblerCommand(cmd, fn):注册自定义 AA 命令。registerLuaFunctionHighlight(name):高亮指定函数名。
符号/结构回调
registerSymbolLookupCallback(fn, location):符号解析时回调。registerAddressLookupCallback(fn):地址转名称回调。registerStructureAndElementListCallback(structFn, elemFn):自定义结构剖析。registerStructureDissectOverride(fn):覆盖自动结构猜测。registerStructureNameLookup(fn):自定义结构命名。
汇编器覆盖
registerAssembler(fn):自定义单行汇编器。registerAutoAssemblerPrologue(fn, postAOB?):AA 脚本预处理。
脚本模板与注入
registerAutoAssemblerTemplate(name, fn, shortcut?):注册 AA 模板。generateCodeInjectionScript(script, addr, farjmp?):生成代码注入脚本。generateAOBInjectionScript(script, sym, addr, radius?, farjmp?):生成 AOB 注入脚本。getNextAllocNumber(script):获取下一个可用 alloc 编号。getUniqueAOB(addr):扫描唯一 AOB 并返回字符串 + 偏移。
UI 交互
showMessage(text):显示消息框。inputQuery(caption, prompt, init):输入对话框。showSelectionList(title, caption, list, allowCustom?):选择列表。messageDialog(text, type, buttons...):自定义消息框。sleep(ms):暂停毫秒数。
进程与窗口
getProcesslist():返回进程表(pid - name)。getWindowlist():返回窗口表(pid - {id, caption})。getThreadlist(list):填充线程列表。getHandleList(filter?):返回句柄表(filter: 0=all, 1=target, 2→target, 3→CE)。closeRemoteHandle(handle, pid?):关闭远程句柄。duplicateHandle(handle, mode?/fromPID, toPID?):复制句柄。
进程事件
onOpenProcess(pid):进程打开时调用(可能多次)。MainForm.OnProcessOpened(pid, handle, caption):推荐替代 onOpenProcess(主线程单次调用)。
进程控制
getOpenedProcessID()/getOpenedProcessHandle():获取当前进程。openProcess(pid/name):打开进程。openFileAsProcess(filename, is64?, startAddr?):以进程方式打开文件。saveOpenedFile(filename?):保存文件更改。setPointerSize(size):设置指针大小(字节)。setAssemblerMode(0=32bit, 1=64bit)。pause()/unpause():暂停/恢复进程。
系统信息
getCPUCount():CPU 核心数。cpuid(eax, ecx):返回 CPUID 表(eax, ebx, ecx, edx)。gc_setPassive(state)/gc_setActive(state, interval, minsize):控制垃圾回收。getSystemMetrics(index):获取系统指标(参见 MSDN)。getScreenDPI()/getScreenHeight()/getScreenWidth():屏幕信息。getWorkAreaHeight()/getWorkAreaWidth():工作区尺寸。getScreenCanvas():获取屏幕画布(谨慎使用)。getPixel(x,y):获取屏幕像素 RGB。getMousePos()/setMousePos(x,y):鼠标位置。isKeyPressed(key)/keyDown(key)/keyUp(key)/doKeyPress(key):键盘模拟。mouse_event(flags, x?, y?, data?, extra?):鼠标事件 API。shortCutToText(sc)/textToShortCut(str):快捷键转换(6.4+)。convertKeyComboToString(key1,...):键组合转字符串。outputDebugString(text):输出调试信息(可用 DbgView 查看)。shellExecute(cmd, params?, folder?, showcmd?):执行命令。getTickCount():系统启动毫秒数。processMessages():处理 GUI 消息(防冻结)。inMainThread():是否在主线程(6.4+)。integerToUserData(int)/userDataToInteger(ud):整数 ↔ UserData 转换。synchronize(fn, ...):主线程同步调用。queue(fn, ...)+checkSynchronize(timeout?):异步调用 + 检查。writeToClipboard(text)/readFromClipboard():剪贴板操作。
速度与注入
speedhack_setSpeed(speed)/speedhack_getSpeed():设置/获取速度倍率。injectDLL(filename, skipWait?)/injectLibrary(...):注入 DLL。injectDotNetDLL(dll, class, method, params, timeout?):注入 .NET DLL 并调用静态方法。
代码执行
executeCode(addr, param?, timeout?):在目标进程执行 stdcall 函数。executeCodeLocal(addr, param?):在 CE 进程执行。executeCodeEx(callmethod, timeout, addr, {type,val}...):带参数执行(支持多种类型)。executeMethod(callmethod, timeout, addr, {regnr,class}, params...):执行类方法(指定寄存器)。
插件与字体
loadPlugin(dll):加载插件。loadFontFromStream(stream)→unloadLoadedFont(id):从流加载字体。
自动猜测与窗口控制
onAutoGuess(fn):注册变量类型猜测回调。closeCE():关闭 CE。hideAllCEWindows()/unhideMainCEwindow():隐藏/显示 CE 窗口。
内存扫描
AOBScan(bytes...)/AOBScan("aob", prot?, alignType?, alignParam?):扫描 AOB。AOBScanUnique(...)/AOBScanModuleUnique(module, ...):扫描唯一结果。
内存分配
allocateMemory(size, base?, prot?):分配目标进程内存。deAlloc(addr, size?):释放内存。allocateSharedMemory(name, size?):创建共享内存(跨进程)。createSection(size)→mapViewOfSection(sec, base?)→unMapViewOfSection(addr):内存映射。
窗口操作
getForegroundProcess():获取前台进程 PID。findWindow(class?, caption?):查找窗口句柄。getWindow(hwnd, cmd)/getWindowCaption/ClassName/ProcessID(hwnd):窗口信息。getForegroundWindow():获取前台窗口句柄。sendMessage(hwnd, msg, wparam, lparam):发送窗口消息。hookWndProc(hwnd, fn, async?)→unhookWndProc(hwnd):挂钩窗口过程。
系统架构
cheatEngineIs64Bit()/targetIs64Bit():判断 CE/目标是否为 64 位。getCheatEngineDir():CE 安装目录。getCheatEngineProcessID():CE 自身 PID。getAutorunPath()/getUserDocumentsPath():路径获取。
反汇编
disassemble(addr):反汇编 → “地址 - 字节 - 操作码”。splitDisassembledString(str):拆分为地址、字节、操作码、extra。getInstructionSize(addr):获取指令大小。getPreviousOpcode(addr):获取前一条指令地址(估算)。
音频与语音
beep():播放提示音。playSound(stream/tablefile, wait?):播放 WAV(支持内置 “Activate”/“Deactivate”)。speak(text, wait?)/speak(text, flags):文本转语音(支持 SSML)。speakEnglish(text, wait?):强制英语语音。
实用函数
printf(...)=print(string.format(...))。setProgressState(state)/setProgressValue(cur, max):任务栏进度(Windows)。getUserRegistryEnvironmentVariable(name)/setUserRegistryEnvironmentVariable(name, val):用户环境变量。stringToMD5String(str):字符串 → MD5。getFormCount()/getForm(index):获取 CE 窗体。registerFormAddNotification(fn)→unregister...:窗体创建通知。getSettingsForm()/getMemoryViewForm()/getMainForm():常用窗体。getApplication()/getAddressList()/getFreezeTimer()/getUpdateTimer():核心对象。setGlobalKeyPollInterval(ms):全局按键轮询间隔。setGlobalDelayBetweenHotkeyActivation(ms):热键最小间隔。
Xbox 360 控制器
getXBox360ControllerState(id?):获取控制器状态(按钮、摇杆、扳机)。setXBox360ControllerVibration(id, left, right):设置振动(0-65535)。
网络
connectToCEServer(host, port):连接到 CE 服务器(后续命令由服务器处理)。
属性反射(Pascal 类)
getPropertyList(class):获取类的已发布属性列表。setProperty(class, prop, val)/getProperty(class, prop):设置/获取属性。setMethodProperty(class, prop, fn)/getMethodProperty(class, prop):设置/获取方法属性。
符号注册
registerSymbol(name, addr, donotsave?)/unregisterSymbol(name):用户符号管理。getNameFromAddress(addr, mod?, sym?, sec?):地址 → 符号/模块名。inModule(addr)/inSystemModule(addr):判断地址是否在模块内。getCommonModuleList():获取通用模块列表。
AOB 扫描参数详解
protectionflags:字符串,如 “+W-C”(可写、非写时复制)。alignmenttype:0=无,1=整除,2=结尾匹配。alignmentparam:对齐参数值。
🐞 调试相关
调试寄存器(全局变量)
- 32/64 位:EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP
- 64 位额外:RAX, RBX, …, R15
EFLAGS:标志寄存器
调试函数
debugger_onBreakpoint():断点命中时调用(填充寄存器),返回 0 刷新 UI。createProcess(path, params?, debug?, breakOnEntry?):创建调试进程。debugProcess(interface?):启动调试器(0=默认, 1=Windows, 2=VEH, 3=Kernel)。debug_isDebugging()/debug_getCurrentDebuggerInterface():调试状态。debug_canBreak()/debug_isBroken():能否/是否中断。debug_getBreakpointList():获取断点列表。debug_breakThread(tid):中断指定线程。debug_addThreadToNoBreakList(tid)/debug_remove...:忽略线程断点。debug_setBreakpoint(addr, size?, trigger?, method?, fn?):设置断点。debug_removeBreakpoint(addr):移除断点。debug_continueFromBreakpoint(method):继续执行(co_run, co_stepinto, co_stepover)。debug_getXMMPointer(reg):获取 XMM 寄存器地址(CE 本地内存)。
最后分支记录(仅 Kernel + XP)
debug_setLastBranchRecording(bool):启用记录。debug_getMaxLastBranchRecord():最大记录数。debug_getLastBranchRecord(index):获取记录。
模块加载事件
debugger_onModuleLoad(name, base):模块加载时调用,返回 1 可中断。
上下文操作
debug_getContext(extra?)/debug_setContext(extra?):获取/设置寄存器上下文。debug_updateGUI():刷新调试 UI。
其他
detachIfPossible():分离调试器。getComment(addr)/setComment(addr, text):地址注释。getHeader(addr)/setHeader(addr, text):地址头部。
BinUtils 支持
registerBinUtil(config):注册其他架构汇编器(如 ARM)。- config: {name, desc, arch, ASParam, LDParam, OBJDUMPParam, OnDisassemble, path, prefix, DisassemblerCommentChar}
🧱 类参考
Control 类(继承 Component → Object)
属性:
Caption,Top,Left,Width,Height,ClientWidth,ClientHeightAlign,Enabled,Visible,Color,RGBColor,Parent,PopupMenu,FontOnClick,OnChangeBounds
方法:
setPosition(x,y),getSize(),setAlign(...),setEnabled(bool),setVisible(bool)setColor(rgb),setParent(wincontrol),getFont(),repaint(),update()setOnClick(fn),doClick(),bringToFront(),sendToBack()screenToClient(x,y),clientToScreen(x,y)
Region 类(继承 GraphicsObject → Object)
createRegion():创建空区域。addRectangle(x1,y1,x2,y2):添加矩形。addPolygon({x1,y1,x2,y2,...}):添加多边形。
WinControl 类(继承 Control → Component → Object)
属性:
Handle,DoubleBuffered,ControlCount,Control[],OnEnter,OnExit
方法:
getControlCount(),getControl(index),getControlAtPos(x,y)canFocus(),focused(),setFocus()setShape(Region/Bitmap)setOnEnter(fn),setOnExit(fn)setLayeredAttributes(key, alpha, flags):设置分层属性(LWA_ALPHA, LWA_COLORKEY)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Meng's blog!


