美文网首页汇编
CE 步骤一至步骤九新手通关教程

CE 步骤一至步骤九新手通关教程

作者: tantanxiqi | 来源:发表于2023-01-13 10:56 被阅读0次

以下Torrial测试程序为32位

01.步骤1

打开CE 选项Torrial进程

02.步骤2:精确值扫描

image image

1:在CE程序的数值中输入100,点击首次扫描

2:再次点击测试程序中的打我按钮,观察健康值的变化

image

此时的健康值为96,在CE数值栏中输入96,点击再次扫描

image

地址栏中出现的便是血量内存地址,选中右击,将选中的地址添加到选中列表

image

点击数值 修该为1000

image

在测试程序中点击下一步

image

03.步骤三:未知的初始值

1: 在扫描类中选择位置的初始值,点击首次扫描

image

下图为扫描结果 虽然地址栏没有数据,但是扫描结果已经出来了

image

2 在测试程序中点击打我,在CE 扫描类型中选择减少的数值,然后点击再次扫描

image

3 在测试程序中点击打我,在CE 扫描类型中选择减少的数值,然后点击再次扫描. (重复第二步)

知道定位到血量内存地址(重复3-5次基本就可以出哪个是血量内存地址)

image

4 将血量修改为5000,点击下一步

04.步骤4:浮点数

1先查找健康值。在CE数值栏中写100,数值类型选择单浮点,点击新的扫描

image

2.在测试程序中点击打我按钮,可以在CE中观察到变化的数值

image

如果结果数再多,可以在扫描类型中选择减少的数值,点击再次扫描

image

3 将选中的地址添加到地址列表,并修改健康值5000.

image

4 弹药值-寻找弹药值同以上方法一样(数值类型 选择 双浮点)

05.步骤五:代码查找

1,找出血量内存地址值,并加入下方地址列表中

2,选中右击,选择找出是什么改写了这个地址。弹出一个空白的窗口

3,在测试程序中点击改变数值按钮,空白的窗口会出现一行代码

image

4,选中代码,点击旁边栏替换按钮,弹出对话框点击确定。。

5,关掉窗口,在测试程序中点击 改变数值,点击下一步按钮

06.步骤六:一级指针

1 寻找到数值的内存地址并加入地址列表中

2 选中内存地址,右击,点击找出是什么改写了这个地址,会弹出一个空白框

image

3 在测试程序点击改变数值按钮。此时原先空白窗口会显示一行代码

4 选中该行代码 ,点击详细信息按钮,会弹出一个对话框

image

5 记录这个值

6 在主界面中数值栏写入内存地址,(Hex 必须要勾选),点击 新的扫描(一般需要点击两次)

如果出现很多不用管,只需要绿色(xxx.exe+数值)一行

image

7 加入到地址栏中,剪切地址,将十六进制勾选去掉,勾选指针

image

如下图所示

image

8 修改地址栏中的数值为5000,并激活

image

9 在测试程序中 点击改变指针按钮,倒计时结束点击下一步按钮

07.步骤七:代码注入

1: 找到血量的内存地址 并加入 地址栏中

2: 选中地址, 右击,点击找出是什么改写了这个地址,会弹出一个空白框

3,在测试程序中再次点击打我按钮,空白框会出现一行代码

4,选中代码,点击右边栏中显示反汇编程序按钮

image

5 在状态栏中选中 工具->自动汇编,会出现下图

image

6 在状态栏中选择 模板->AOB注入 如下图所示

image

7 在状态栏中选择 文件->分配到当前CT表 , 看在地址栏中看见自动汇编脚本

image

8 关闭所有对话框,点击脚本,注入代码,将sub 改成 add, 01改成02,点击确定

image

9 激活脚本,回到测试程序,点击打我按钮,点击下一步按钮

08.步骤八: 多级指针

1 找到数值的内存地址,并加入地址栏中

2 选择内存地址,右击,选择对这个地址进行指针扫描,会出现下图

image

2 点击确定按钮,选择保存的文件名称与路径,会出现指针扫描器,如下图

image

3 关闭测试程序(只关闭测试程序,CE 不要关闭,CE的对话框也不要关闭)

4 重新打开测试程序,并跳到步骤八,并记录改变的数值

5 CE 重新加载测试程序进程

6 在指针扫描器对话框中 选择 指针扫描器->重新扫描内存-移除没有指向正确地址的指针。

出现“重新扫描指针列表”选项对话框,选择要查找的数值,并将记录的数值写入,点击确定按钮

image

7 重复3-6 方法 直到可以明显观察出正确 基值和偏移地址的并添加到CT表中

image

8 在CT表中修改数值为5000并激活,点击改变指针按钮,倒计时结束,点击下一步按钮

09.步骤九:注入c++

1 先找到任意其中一位玩家血量内存地址,并加入地址(CT)表中

2 选中,右击,选择找出是什么改写了这个地址,此时会弹出对话框

3 回到测试程序再次点击攻击按钮(之前选择的那位玩家),会出现下图

image

4 选中该行代码,右击,选择找出代码访问的地址,如下图

image

5 回到测试程序,依次攻击四个玩家,此时对话框如下图所示

image

6 将其全部选中,右击,选择打开地址的分析数据,会出现一个新的对话框,选中新建窗口,点击确定按钮

image

7 出现结构定义对话框,点击OK按钮

image

8 又出现新的对话框点击YES按钮

image

9 又出现新的对话框,点击OK按钮

image

10 在结构分析的对话框中,对比数据,红色表示不同数据,

观察数据可知 [ebx+4]是血量 [ebx+10]是阵营 [ebx+15] 是玩家名称

只要对比[ebx+10]是否等于1,就可以区分不同阵营

image

11 回到汇编指令窗口,选中代码 点击显示反汇编程序按钮

image

12 在Memory Viewer 对话框 点击 工具 ->自动汇编

13 在自动汇编窗口 点击 模板 -> AOB注入

14 在自动汇编窗口 点击 文件 -> 分配到当前的CT表中,

15 关闭所有的对话框,回到主界面,在CT表 点击脚本,编写脚本,点击确定按钮,并激活脚本

aobscanmodule(INJECT,Tutorial-i386.exe,89 43 04 D9 EE) // should be unique
alloc(newmem,$1000)

label(code)
label(hp)  // 自定义标签
label(return)

newmem:
  cmp [ebx+10],1  // 判断是否我放阵营
  je hp  // 条件成立 跳转hp标签
  jne code  // 条件不成立 跳转code
code:
 // mov [ebx+04],eax
  mov [ebx+04],0  // 将敌方血量赋0,实现秒杀
  fldz 
  jmp return

hp:            // 什么都不做
  fldz
  jmp return

INJECT:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 89 43 04 D9 EE

unregistersymbol(INJECT)
dealloc(newmem)

16 回到测试程序点击重新启动并自动执行按钮,点击下一步按钮。

end

相关文章

网友评论

    本文标题:CE 步骤一至步骤九新手通关教程

    本文链接:https://www.haomeiwen.com/subject/lgjgcdtx.html