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 否则执行这个
  • ? 把血量保存到缓存里,持续可修改指定

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 自带的计算器

posted @ 2025-06-29 01:00  墨药  阅读(9)  评论(0)    收藏  举报