吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16060|回复: 125
上一主题 下一主题
收起左侧

[游戏安全] Cheat Engine指针扫描用法(一)

    [复制链接]
跳转到指定楼层
楼主
allrobot 发表于 2021-11-21 15:24 回帖奖励
本帖最后由 allrobot 于 2021-11-21 20:36 编辑

知乎看到的,论坛搜cheat engine帖子,好像没有介绍这样的指针用法?

找不到高级搜索的选项了
分为4个步骤
1、找到目标的有效地址
2、生成当前进程的有效地址的指针结果集1
3、重开游戏再生成指针结果集2,并且通过对比1和2找出有效地址的基址
4、把此指针的基址和偏移添加到CE工作栏,恭喜你了,修改器差不多就这样做完了

每次重开游戏修改数值,不用再重复扫描(记得保存成xxx.CT上传到网盘,这样别人也能用你的修改器了)

  • 步骤一
  • CE-扫描-进程列表-00002524 植物大战僵尸-打开

   
    2. 此时游戏界面的阳光数量为50,CE的数值填50,点击首次扫描,首次扫描后的扫描结果为十万多条



  • 步骤二

  • 游戏进程变动下数值,该数值变为75,CE填入75再次扫描

   2. 把该地址添加到工作栏,CE扫描结果的地址右边“:4”说明数值为4字节,应为int类型
   3. 双击数值改至9999,如果游戏界面数字也随着更改,初步确定这个地址是有效的   


  • 步骤三
  • 跟踪基址,右键阳光的地址的列表选择“生成指针映射集”,并且保存生成的指针映射集,名字随便起

  PS:记得保存此进程的阳光地址,别丢弃

   2. 重启游戏进程找阳光地址以及生成指针映射集,然后右键新地址选择“找出是什么更改了它的地址”
               
   3. 调试窗口附加到当前进程下断点,游戏阳光数值再变动,调试窗口可以看到改写或访问的汇编代码                  

      点击它的详细信息,可以判断[edi+偏移]为阳光的地址,偏移为5578

      左边add为添加操作,指令为新的阳光数添加到阳光总数            
   4. 右键阳光地址”对这个地址进行指针扫描“,格式按下图做

      
   5. 很多指针指向的地址随着进程启动而不同,所以先保存指针扫描结果,重启进程再找阳光的地址,用指针扫描并且和前一个指针映射集对比,其中1.SCANDATA的2848DBB0为之前的阳光地址,29461050为重启进程后找到的阳光地址,指针以5578偏移结束(如果目标没有偏移,就不填)。扫描后输出了很多指针路径,左上角可选各个类型,选择4字节,因为阳光地址为4字节类型


  • 步骤四
    1. 修改阳光数量为225      
  
    2. 选择要查找的数值输入225

    3. 扫描结果为几百个映射路径,重复上述步骤几次直至无法减少指针映射路径,选择路径最短的然后手动添加到CE工作栏

    4. 双击添加到CE工作栏

    5. 试试更改指针指向的数值为6000,是否有效?

     有效就找对了

@Natu 稍微整理下可能遇到的问题

问题1:
别的游戏找不到有效地址怎么办
解决方案:
1、数值类型为所有类型


2、首次扫描时数值为未知值,改动游戏数值再扫描,不停循环直至找到有效地址
3、参考其它CE教程帖子,如DBVM找改动的代码,但这样和指针无关了

问题2:
指针找不到怎么办?
解决方案:
1、值的偏移量错误,“查找是什么改写了这个地址”反调试窗口再试试别的偏移量
比如恐惧之泣体力值,偏移量是错误的

我填偏移21F0啥也没扫出来,填21EC扫出来了
2、这值是不是有效的?

其它待填,如果找不到指针可以找我问问

免费评分

参与人数 22吾爱币 +24 热心值 +21 收起 理由
junjia215 + 1 + 1 谢谢@Thanks!
piza + 1 + 1 谢谢@Thanks!
xichuyu + 1 + 1 谢谢@Thanks!
O俊尐O + 1 热心回复!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
daofaziran + 1 谢谢@Thanks!
悠然地2012 + 1 热心回复!
jdongyong + 1 + 1 学习学习!
chenmou + 1 + 1 我很赞同!
LoveMiku233 + 1 + 1 我很赞同!
wYw729 + 1 + 1 用心讨论,共获提升!
1saltedfish + 1 谢谢@Thanks!
tony198911 + 1 + 1 感谢楼主的热心分享,方法真实有效,注意看二楼的总结
yaozhongcan + 2 + 1 用心讨论,共获提升!
Theergold + 1 + 1 用心讨论,共获提升!
yyb414 + 1 + 1 热心回复!
yys227 + 1 我很赞同!
blindcat + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lcllfj233 + 1 + 1 我很赞同!
kaixianxian + 1 谢谢@Thanks!
ll1xx + 1 + 1 用心讨论,共获提升!
growing88 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
homehome 发表于 2021-11-21 23:07
根据楼主所提供的资料,摸索,总结一下:
1、开启游戏,扫描出阳光1的位置,并生成和保存指针映射集1
2、关闭游戏
3、再开户游戏,扫描出阳光2的位置,生成和保存指针映射集2
4、对阳光2找出什么访问了这个地址,可见到add eax,[edx+00005560]
5、对阳光2进行指针扫描
6、指针扫描器选项里,选择  使用保存“指针映射集”,选择存档“指针映射集2”
7、指针扫描器选项里,选择  与其他保存的“指针映射集”结果相对比,选择存档“指针映射集1”,并在地址选项卡中,选择阳光1的位置。
8、指针扫描器选项里,选择  指针必须以特定的偏移结束,填入5560。
9、保存指针映射集3
10、指针扫描器 获取到指针,并在“指针扫描器”  ”重新扫描内存“
11、选择要查找的数据,即当前的阳光值,就可以列出所需要的指针了
12、偏移选择越少越好,所以选择最少的一个即可,双击,列表里即可看指针所指的阳光数值。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
我的小鱼干 + 1 + 1 热心回复!

查看全部评分

推荐
倾尘 发表于 2021-11-29 10:54
以前想学来着 但是感觉大型游戏就不行了 扫的太慢 而且占用地方太大了
沙发
lcllfj233 发表于 2021-11-21 15:32
你的帖子的排版好乱呀,真的好影响观看体验
3#
 楼主| allrobot 发表于 2021-11-21 15:33 |楼主
lcllfj233 发表于 2021-11-21 15:32
你的帖子的排版好乱呀,真的好影响观看体验

稍等,我编辑下

从doc复制过来的,点击发布后排版就变乱七八糟的
4#
pllpl 发表于 2021-11-21 15:46
指针教程好东西
5#
孤灯独饮 发表于 2021-11-21 16:11
我就只会这个方法找地址,但是你这个有点复杂了,第一次保存后,直接重启游戏,打开之前的记录,找对应的数值就行了,
6#
xiahhhr 发表于 2021-11-21 16:30
指针扫描的原理是啥
7#
 楼主| allrobot 发表于 2021-11-21 17:13 |楼主
xiahhhr 发表于 2021-11-21 16:30
指针扫描的原理是啥

github有cheat engine的源码,可以去看看它的代码怎么解释工作原理的

本质是内存扫描的东东

程序通常被当前内存扫描类工具(CE)获取进程句柄,操作系统分配给程序进程的分页内存,当前存储的分页表表示程序内存和物理内存的一个映射关系,数据位置通常是“基地址+偏移量”。

系统分配给每个程序的分页内存地址一般是重复的,比如每个进程的起始地址为0x00400000,只要添加某个进程的句柄以及分页内存的指定分页内存的映射地址(基址),接着基址+偏移找到虚拟地址,在此重新赋值
8#
awseq 发表于 2021-11-21 17:39
学习一下
从原理上讲这个是不是和风灵月影一样?
9#
 楼主| allrobot 发表于 2021-11-21 17:53 |楼主
awseq 发表于 2021-11-21 17:39
学习一下
从原理上讲这个是不是和风灵月影一样?

可能吧,也可能是改汇编代码

有时指针地址扫不到,要用汇编注入或DBVM相关的
10#
h07799486 发表于 2021-11-21 17:54
感谢分享~学习了~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 20:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表