使用武器CALL

事先在游戏里,把武器放在包裹的第1格子上,
bp send,回到游戏里点,右键使用这个物品,OD断下来,复制 返回到 elementc.
 
0012EB9C   005869B2  返回到 elementc.005869B2 来自 elementc.0058E8A0
0012EBB0   00588B1F  返回到 elementc.00588B1F 来自 elementc.00586980
0012EBEC   005A8345  返回到 elementc.005A8345 来自 elementc.00588A70
0012EBFC   0058DF6A  返回到 elementc.0058DF6A 来自 elementc.005A8310
0012EC14   0045559B  返回到 elementc.0045559B 来自 elementc.0058DF40////
0012EC38   00458BE8  返回到 elementc.00458BE8 来自 elementc.00493F60
0012EC50   004D8A2C  返回到 elementc.004D8A2C 来自 elementc.004553B0
0012EC70   006D484A  返回到 elementc.006D484A
0012EC98   006D47CA  返回到 elementc.006D47CA 来自 elementc.006D47F0
0012ECBC   006C85CD  返回到 elementc.006C85CD 来自 elementc.006D47A0
0012ECD0   006D11E5  返回到 elementc.006D11E5
0012ED2C   006C8993  返回到 elementc.006C8993 来自 elementc.006D0C60
0012EDA0   0054E64F  返回到 elementc.0054E64F 来自 elementc.006C85D0
 
 
 
 
前2个地址一定不是,从头开始看特征,ctrl+F9,从第3个返回的地址开始试,
通常第4个第5个就是
 
0045558C    8B4C24 38       MOV ECX,DWORD PTR SS:[ESP+38]            ; 堆栈 SS:[0012EC58]=00000000,ecx=015
00455590    56              PUSH ESI                                 ; ESI=00000000
00455591    51              PUSH ECX                                 ; ECX=00000000,武器所在的包裹位置
00455592    8B4C24 1C       MOV ECX,DWORD PTR SS:[ESP+1C]            ; 堆栈 SS:[0012EC34]=04724BF0=dd [924e0c]+20,ECX=0
00455596    E8 A5891300     CALL elementc.0058DF40
 
 
给带参数处下个断点,看参数是什么
[注意,这个[esp+38],怎么追踪]
[ 注意,这个[esp+1c],怎么追踪]
[这个是怎么追来的dd [924e0c]+20]
 
测试找到的CALL是否正确
mov eax,[924e0c]
mov eax,[eax+20]
push 0
push 0
CALL 0058DF40
 





posted @ 2012-05-30 10:52  XE2011  阅读(262)  评论(0编辑  收藏  举报