欢迎来到天天文库
浏览记录
ID:55772961
大小:4.41 MB
页数:35页
时间:2020-06-07
《找基址五种方法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ce查找:搜索当前血量218OD查找:OD附加,先点运行让它跑起来。CTRL+G,.来到血的地址是ESI+25C,搜索左面[]中ESI的值,不要搜索右面EDX。向上查找ESI。ESI是从ECX来的,在这里按F2下断。看看对不对,要是对血值发生变化会被自动断下。成功断下后在命令:后面添加ddecx+25c(因为血是ESI+25C,ESI是从ECX来的所以ESI+25C=ECX+25C)。回车。来到当前血量。DA十六进制换成十进制是218.证明ECX是对的,继续找ECX的值。向上查找。两段代码之间会出现NOP。在高级语言中这两段代码叫做函数。NOP将2个函数分开,一般在OD中函数以PUSH开始R
2、ETN结束。因为在本段代码没有找到ECX,在向上找就是其他函数代码了,那样找起来会很麻烦,所以来到本段代码头部,看看还没有CALL.点击A0(代码头部)发现有个CALL,右键前往这个CALL。如果这里没有CALL,在CALL这个位置下端,运行OD,让血值发生变化自己断下,看看返回值,然后记录下来在排除查找!前往这个CALL,来到!向上查找。来到EAX发现是个跳转,所以要往回跳。右键点击跳回!跳到00454B71。一直向上来到头部没找到ECX,发现EAX这里有个调用,不过没有CALL,所以在这里下断,运行,到游戏里动一下让它自动断下。取消断点,要不在这个断点又被断下了,看到了返回到……这个调用
3、。在第一个返回到,点右键,点在反汇编窗口中跟随。然后运行OD。让游戏动一下。没被断下,继续向上查找ECX,发现ECX是的值是从EAX来的。向上找EAX,没找到,发现函数代码中部有个CALL。进入这个CALL看看。命令:DD[EAX+24]+25C在[EAX+24]这行代码下端。在命令行按回车。发现当前血是对的,取消断点在让OD运行起来。向上dd[[ecx+8]+24]+25c在这行下断,在命令行回车。发现血值还是对的。取消断点,运行OD。会到刚才地址在小键盘上按-号。直到退出这个CALL。一直向上找,没有ECX,来到头部下端。到游戏里动下一,取消断点。返回到。让游戏跑起来。查找ECX。一直向
4、上找,直到找到基址,每找到上一级,dd命令,检查对错,遇CALL,返回,没CALL下断,返回,进CALL找基地。最后CE设置检查对错。ce+odODCTRL+GESI+25CESI=ECX前往CALL步骤同1,一直找到数组那里。下断MOVECX,EAX,没有ECX的值所以找EAX。按F8单步走一下,看看ECX和EAX的值是否一样。一样CE查找这个值1找一个下HR断点能断下来的地址。到OD里检查一下。断下来了,HD清除断点。找EAX的值。公式找ECX。返回。找到ECX的值,CE查找。看看断在什么位置,取消断点,还有看看那个寄存器存放的这个值。发现是EDI这个寄存器存放的这个值。向上到EDI,继
5、续完成公式。直到找到常量。HR断点方法。内存访问CE
此文档下载收益归作者所有