这里主要是看写的注释,来理解脚本。(如果什么都不想看,可以直接复制粘贴 CE 自动汇编(AA)脚本)
我学习的链接:
你能学会的 Cheat Engine 零基础入门教程
Cheat Engine 基础教程 CE Tutorial | Ganlv's Blog
CE 教学实例应用-由浅入深学习游戏修改 [全十课]
参考链接:
Cheat Engine 官方 WIKI
x86 汇编指令列表
技术理解
我对一些用到的技术的简单理解:
代码注入:在程序运行时,将自己写的代码,替换掉原有的代码
AOB:(Array Of Byte)在内存中搜索特定的一串数据,以决定注入代码的位置
人造指针:单独找个地方,记录变量所在的地址
数据存储结构
数据在内存中的存储结构:
Cheat Engine 相关汇编知识
此脚本用到的 CE 汇编指令:
x86 汇编指令列表
命令例子
功能
mov ebx,0000FFFF
Move,寄存器直接赋值
mov ebx,eax
Move,将右边直接给左边
mov ebx,[eax]
Move,将右边所指的值给左边。[ ]代表括号内的是指针,操作时,操作其指向的内存值
cmp ebx,eax
Compare,比较两寄存器值,若相等则 ZF 位 置 1(左减右)
je <label>
Jump if Equal, ZF = 1 时跳转,可跳转至标记段代码
jne <label>
Jump if Not Equal, ZF = 0 时跳转,可跳转至标记段代码
jmp <label>
Jump
此脚本用到的 CE 自动汇编函数:(Auto Assembler)
Cheat Engine 官方 WIKI
函数
参数
作用
alloc
alloc(SymbolName, Size, AllocateNearThisAddress OPTIONAL)
Allocates a memory block of Size bytes and defines the SymbolName in the script, pointing to the beginning of the allocated memory block.
dealloc
dealloc(SymbolName)
Deallocates a block of memory allocated with alloc.
label
label(LabelName)
Enables the word 'LabelName' to be used as a symbol.
aobScanModule
aobScanModule(SymbolName, ModuleName, AOBString)
Scans the memory used by the module ModuleName for a specific byte pattern defined by AOBString and sets the resulting address to the symbol SymbolName.
registerSymbol
registerSymbol(SymbolName)
Adds a symbol to the user-defined symbol list so cheat tables and the memory browser can use that name instead of an address.
unregisterSymbol
unregisterSymbol(SymbolName)
Removes a symbol from the user-defined symbol list. No error will occur if the symbol doesn't exist.
这里主要是看写的注释,来理解脚本。(如果什么都不想看,可以直接复制粘贴 CE 自动汇编(AA)脚本)
我学习的链接:
你能学会的 Cheat Engine 零基础入门教程
Cheat Engine 基础教程 CE Tutorial | Ganlv's Blog
CE 教学实例应用-由浅入深学习游戏修改 [全十课]
参考链接:
Cheat Engine 官方 WIKI
x86 汇编指令列表
技术理解
我对一些用到的技术的简单理解:
代码注入:在程序运行时,将自己写的代码,替换掉原有的代码
AOB:(Array Of Byte)在内存中搜索特定的一串数据,以决定注入代码的位置
人造指针:单独找个地方,记录变量所在的地址
数据存储结构
数据在内存中的存储结构:
Cheat Engine 相关汇编知识
此脚本用到的 CE 汇编指令:
x86 汇编指令列表
命令例子
功能
mov ebx,0000FFFF
Move,寄存器直接赋值
mov ebx,eax
Move,将右边直接给左边
mov ebx,[eax]
Move,将右边所指的值给左边。[ ]代表括号内的是指针,操作时,操作其指向的内存值
cmp ebx,eax
Compare,比较两寄存器值,若相等则 ZF 位 置 1(左减右)
je <label>
Jump if Equal, ZF = 1 时跳转,可跳转至标记段代码
jne <label>
Jump if Not Equal, ZF = 0 时跳转,可跳转至标记段代码
jmp <label>
Jump
此脚本用到的 CE 自动汇编函数:(Auto Assembler)
Cheat Engine 官方 WIKI
函数
参数
作用
alloc
alloc(SymbolName, Size, AllocateNearThisAddress OPTIONAL)
Allocates a memory block of Size bytes and defines the SymbolName in the script, pointing to the beginning of the allocated memory block.
dealloc
dealloc(SymbolName)
Deallocates a block of memory allocated with alloc.
label
label(LabelName)
Enables the word 'LabelName' to be used as a symbol.
aobScanModule
aobScanModule(SymbolName, ModuleName, AOBString)
Scans the memory used by the module ModuleName for a specific byte pattern defined by AOBString and sets the resulting address to the symbol SymbolName.
registerSymbol
registerSymbol(SymbolName)
Adds a symbol to the user-defined symbol list so cheat tables and the memory browser can use that name instead of an address.
unregisterSymbol
unregisterSymbol(SymbolName)
Removes a symbol from the user-defined symbol list. No error will occur if the symbol doesn't exist.