014cheatEngine教程笔记(二)
🎰指令修改---指针在堆或者栈里面
1. X 86 指令集
- x 86 汇编语言格式=让指令代码更容易看 =操作+目标+来源
- 寄存器= cpu 少部分寄存数据的地方(因为内存访问速度慢)
![]()
- x 86 =16 个寄存器
- 中括号:访问内存(这个数据就表示地址)
![]()
- 规定最多只有一个
- 两个都是位置,就用寄存器中转
- 指令编码,操作一样,第一个字节都一样
2. 找到修改位置 --访问改写地址---反编译---代码注入--修改代码----aob:注入不一样,没成功过
3. 第 7 关 013370
- 写出改地址---反编译 --添加脚本--模板-完全注入--修改代码(在位置内)
- 添加到表单
![]()
添加成功,激活才会用上
![]()
- 步骤 7 把指令绝对位置记了下来,重启游戏不会变,改版会变(难怪星露谷游戏更新,插件也要更新)
- 用 AOB 技术(字节数组),追踪固定内容-指令
- 原理
- 83 86 E 0 07 00 00 02 这串只改前面的字符,因为后面数据可能会变,只记操作就行
- 要不然没找到, 要不然什么都没有
![]()
- 原理
🎰📱指令修改--脚本
1. 脚本修改
- 脚本标签
- eable 加入 CT 之后激活,会执行
- newmem -alloc 调用-CE 分配的
- inject --aobscanmodule--特殊标签--先指定地址,写在它后面的这些汇编指令拖到了那个地址去
- code return --label---根据写在它后面的地址得到的
- 实际在内存中的位置相差很远
- 没有特殊情况,只在 newmen 写
- disable 否则执行这个
- eable 加入 CT 之后激活,会执行
- ? 把血量保存到缓存里,持续可修改指定
2. 实战中的修改思路
- 通过数据找指针
- 间接寻找
- 相关指针:找到敌人血量
- 连续内存->右键查看指针内存地址
![]()
- 右键 float 类型
- 相关指针:找到敌人血量
3. 第9 关
-
? 31337157 看不懂代码部分
- 标记一组分析异同
- 如果你在寻找地址时遇到困难,请记得尝试不同的值类型,并且不要忘记开始新的扫描。
- 标记一组分析异同
-
改不了 unity 制作的
- unity 是用 c#, c # 又是类似脚本语言一样动态执行 , c # 会生成 ast 字节码 , 然后模拟 cpu 执行这些 ast 字节码, ce 是查找机器码的, 所以行不通, 你查找就不对, 应该查找和修改的是 ast 字节码, 相当于俄罗斯套娃, 你拆的是最外层, ast 字节码在最里层
-
? 如果出现 【eax*2+edx+00000310】 这种复杂的运算,
- 这时就要看 More 下面的寄存器了,如果 eax=4 c、edx=00801234,那么,应该搜索较大的一个数值,然后将较小的一个数值运算得到一级偏移的结果(另外,有乘法的一定是作为偏移存在的,基址的值一定不存在乘法),即搜索 00801234 找到基址,然后一级偏移为 4 c * 2 + 310 = 3 a 8,这个为 16 进制运算,请使用 Windows 自带的计算器







添加成功,激活才会用上












浙公网安备 33010602011771号