请教一个OD中断的问题
时间:2011-05-04
来源:互联网
101B04A7 C740 08 0000000>MOV DWORD PTR DS:[EAX+8],0
101B04AE 8850 04 MOV BYTE PTR DS:[EAX+4],DL
101B04B1 8A56 05 MOV DL,BYTE PTR DS:[ESI+5]
101B04B4 83C4 04 ADD ESP,4
101B04B7 8850 05 MOV BYTE PTR DS:[EAX+5],DL
101B04BA 5E POP ESI
101B04BB C3 RETN
101B04BC 8B46 08 MOV EAX,DWORD PTR DS:[ESI+8] ;A点。为什么不断在这里?
101B04BF F740 0C 0080000>TEST DWORD PTR DS:[EAX+C],8000
101B04C6 ^ 75 D1 JNZ SHORT CXCentau.101B0499 '这个跳,是往上的,应该没有影响
101B04C8 8300 01 ADD DWORD PTR DS:[EAX],1
101B04CB 8B4E 08 MOV ECX,DWORD PTR DS:[ESI+8] ;断在这里。
101B04CE 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
101B04D2 8948 08 MOV DWORD PTR DS:[EAX+8],ECX
101B04D5 8850 04 MOV BYTE PTR DS:[EAX+4],DL
101B04D8 8A56 05 MOV DL,BYTE PTR DS:[ESI+5]
101B04DB 8850 05 MOV BYTE PTR DS:[EAX+5],DL
101B04DE 5E POP ESI
101B04DF C3 RETN
近来迷上一个游戏的跟踪,想追一下人物属性的基地址。于是在游戏中改变人物的蓝条,得到蓝条的保存地址,然后在OD中下内存访问断点,访问蓝条的时候,程序就断在上面那个地方。
[ESI+8]就是那个保存蓝条的地址,那么ESI就是偏移。问题是:它为什么不断在上面那个A点位置?这里面的值是一样的呀。
而且我不能F9再F8去从上面的过程追这个ESI的值,因为这个CALL一直在被其它使用,就算断下来了ESI也是其它数据。仅仅只在内存访问“血量保存地址”的时候,ESI才显示偏移。。。。郁闷啊,查不到ESI的赋值,就追不下去。
问题一:OD为什么不断在A点位置?我上下都看了一遍,没有别的分支...而且,我用F2在A点位置下断之后,一路F8,到断点的时候,[ESI+8]都是一模一样的,那为什么OD内存访问断点的时候,它就不能直接在A点断下?
问题二:还有什么别的方法可以下断,比如鼠标移动,要点在哪里。
请大虾指点一下,谢谢了!!!
101B04AE 8850 04 MOV BYTE PTR DS:[EAX+4],DL
101B04B1 8A56 05 MOV DL,BYTE PTR DS:[ESI+5]
101B04B4 83C4 04 ADD ESP,4
101B04B7 8850 05 MOV BYTE PTR DS:[EAX+5],DL
101B04BA 5E POP ESI
101B04BB C3 RETN
101B04BC 8B46 08 MOV EAX,DWORD PTR DS:[ESI+8] ;A点。为什么不断在这里?
101B04BF F740 0C 0080000>TEST DWORD PTR DS:[EAX+C],8000
101B04C6 ^ 75 D1 JNZ SHORT CXCentau.101B0499 '这个跳,是往上的,应该没有影响
101B04C8 8300 01 ADD DWORD PTR DS:[EAX],1
101B04CB 8B4E 08 MOV ECX,DWORD PTR DS:[ESI+8] ;断在这里。
101B04CE 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
101B04D2 8948 08 MOV DWORD PTR DS:[EAX+8],ECX
101B04D5 8850 04 MOV BYTE PTR DS:[EAX+4],DL
101B04D8 8A56 05 MOV DL,BYTE PTR DS:[ESI+5]
101B04DB 8850 05 MOV BYTE PTR DS:[EAX+5],DL
101B04DE 5E POP ESI
101B04DF C3 RETN
近来迷上一个游戏的跟踪,想追一下人物属性的基地址。于是在游戏中改变人物的蓝条,得到蓝条的保存地址,然后在OD中下内存访问断点,访问蓝条的时候,程序就断在上面那个地方。
[ESI+8]就是那个保存蓝条的地址,那么ESI就是偏移。问题是:它为什么不断在上面那个A点位置?这里面的值是一样的呀。
而且我不能F9再F8去从上面的过程追这个ESI的值,因为这个CALL一直在被其它使用,就算断下来了ESI也是其它数据。仅仅只在内存访问“血量保存地址”的时候,ESI才显示偏移。。。。郁闷啊,查不到ESI的赋值,就追不下去。
问题一:OD为什么不断在A点位置?我上下都看了一遍,没有别的分支...而且,我用F2在A点位置下断之后,一路F8,到断点的时候,[ESI+8]都是一模一样的,那为什么OD内存访问断点的时候,它就不能直接在A点断下?
问题二:还有什么别的方法可以下断,比如鼠标移动,要点在哪里。
请大虾指点一下,谢谢了!!!
作者: lvlvlvlylyly 发布时间: 2011-05-04
我跟这个游戏有一段时间了,发现这个游戏里面重要的数据都很奇怪,不是在ESI就是在ESP这些不好跟的东西里面。。。。。。。。。55555555555555
作者: lvlvlvlylyly 发布时间: 2011-05-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28