+ -
当前位置:首页 → 问答吧 → 请教一个OD中断的问题

请教一个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点断下?
问题二:还有什么别的方法可以下断,比如鼠标移动,要点在哪里。

请大虾指点一下,谢谢了!!!

作者: lvlvlvlylyly   发布时间: 2011-05-04

我跟这个游戏有一段时间了,发现这个游戏里面重要的数据都很奇怪,不是在ESI就是在ESP这些不好跟的东西里面。。。。。。。。。55555555555555

作者: lvlvlvlylyly   发布时间: 2011-05-04