宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

宝峰科技 门户 调试工具 Cheat Engine 查看内容
宝塔服务器面板

Cheat Engine查找多级指针

2010-11-17 11:51| 发布者: admin| 查看: 9402| 评论: 0

摘要: 以cheat engine自带的Tutorial.exe程序为例:1.搜索生命值2.将找到的地址加入列表3.在地址上点右键“找出什么读写这个地址”,然后“changeValue”4.得出:mov,esi::eax=009ca668搜索009ca668得出009ca5ec解释:在00 ...

以cheat engine自带的Tutorial.exe程序为例:
1.搜索生命值
2.将找到的地址加入列表
3.在地址上点右键“找出什么读写这个地址”,然后“change Value”
4.得出:mov [eax+18],esi   ::eax=009ca668 
搜索009ca668 得出  009ca5ec 
解释:在009ca5ec中存放了009ca668这个地址  程序运行时 再mov eax, 009ca5ec
因为eax是寄存器 所以要得到eax的值必须得到传值给它的地址。等下我们就必须找出又是谁把值给的009ca5ec
现在先来记录一下我们刚刚找出的一级基址009ca5ec和一级指针P->009ca680。一级偏移为18.
5. Add address manually ==> Point => Pointer: 009ca5ec, Offset:18 => OK =>P->009ca680
解释:创建[eax+18]指针P  即P指向地址009ca680  P指向的地址的值(即009ca680的值)就是血的值
现在开始通过009ca5ec找出存放它的二级指针
6. 在列表项 P->009ca680 上点右键 => Find out what accresses this pointer => Change Value
解释:找出正在读该指针的进程。(我们给一个指针赋值的例子:int ***p=5,在赋值的过程中P的值是不会变的 但是需要读取P的值才能知道整型存放的地址在什么地方 所以我们使用Find out what accresses this pointer 找出谁在读这个地址)

7. mov eax, [eax] eax: 009ca668 ==> 搜索009ca668 ==> 009ca5ec ==> 009ca5c4
解释:通过改变血 我们得到以上指令  同4的解释  我们知道eax: 009ca668
(注意令第一个eax为eax1: 009ca668:, eax2: 009ca5ec  mov eax2,009ca5c4)
通过搜索009ca5ec得到009ca5c4。我们得知009ca5c4存放了009ca5ec
从而得到了二级基址,那为什么我们不用一级基址009ca5c4直接搜索二级基址009ca5ec
等下我们看了第10步就会明白了,提示我们还要考虑偏移量的问题。
所以我们得出了二级基址009ca5c4和二级指针P->009ca680。二级偏移地址为0
8. 编辑列表项 P->009ca680,添加指针项,Pointer: 009ca5c4, Offset:0 => OK
现在开始通过009ca5c4找出存放它的三级指针
9. 在列表项 P->009ca680 上点右键 => Find out what accresses this pointer => Change Value
10. mov eax, [eax+14] => eax: 009ca5ec => 009ca5c4 => 计算:009ca5c4-14=009ca5b0 => 搜索009ca5b0 => 009ca544
解释:(注意令第一个eax为eax1: 009 ca5ec:, eax2: 009ca5b0  mov eax2, 009ca544)
要想知道7中留下的问题吗?其实就是在[eax2+14]中,009ca5c4中的值是[eax2+14],所以要得到eax2的值必须减去14。
我们就得出了三级基址009ca544和三级指针P->009ca680。三级偏移是14
11. 编辑列表项 P->009ca680,添加指针项,Pointer: 009ca544, Offset:14 => OK
12. 在列表项 P->009ca680 上点右键 => Find out what accresses this pointer => Change Value
13. mov eax, [eax+0c] =>eax: 009ca5b0 => 009ca544 => 计算:009ca5b0-c=009ca538 => 搜索009ca538 => 0045cc18(绿色显示)
解释:这步骤的解释就和10中完全一样了  要解释的就是0045cc18(绿色显示)  绿色显示就是说这个地址是静态的(就是不会改变的地址) 英文意思就是congratulations
14. 编辑列表项 P->009ca680,添加指针项,Pointer: 0045cc18, Offset:c => OK
最后,将数值改为5000,本步教学终于算是完成了。
15.最后 血=[[[[[[[四级基址(就是绿色的)+四级偏移]]+三级偏移]]+二级偏移]]+一级偏移]


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

相关分类

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 07:17 , File On Powered by Discuz! X3.49

返回顶部