|

提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).
本人菜鸟一枚,最近学着分析做 ,其中查找人物状态的时候遇到了些问题,求大神给点帮助~。。。下面简单写下我的查找顺序~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.利用CE查找人物当前的状态名,最终确定一个地址63FE33FB 于是在OD里进行断点 然后断到了这里。
005EA1BD |. E8 2EE01F00 CALL Game.007E81F0 ; 人物状态入口
005EA1C2 |. 8BF8 MOV EDI,EAX
005EA1C4 |. 85FF TEST EDI,EDI
005EA1C6 |. 0F84 AB000000 JE Game.005EA277
005EA1CC |. 8B57 40 MOV EDX,DWORD PTR DS:[EDI+40]
005EA1XF |. 8BC2 MOV EAX,EDX
005EA1D1 |. 53 PUSH EBX
005EA1D2 |. 8D58 01 LEA EBX,DWORD PTR DS:[EAX+1]
005EA1D5 |> 8A08 /MOV CL,BYTE PTR DS:[EAX]
005EA1D7 |. 40 |INC EAX
005EA1D8 |. 84C9 |TEST CL,CL
005EA1DA |.^ 75 F9 \JNZ SHORT Game.005EA1D5
此时得出当前状态的值为:[edi + 40]
2.进入005EA1BD 内部
007E81F0 $ 8B49 04 MOV ECX,DWORD PTR DS:[ECX+4]
007E81F3 . 8B01 MOV EAX,DWORD PTR DS:[ECX]
007E81F5 . FF20 JMP DWORD PTR DS:[EAX] ; 6D9D5DA0
跳转到了这里
007C6150 . 51 PUSH ECX ; 人物状态入口
007C6151 . 56 PUSH ESI
007C6152 . 8BF1 MOV ESI,ECX
007C6154 . 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
007C6158 . 50 PUSH EAX
007C6159 . 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
007C615D . 51 PUSH ECX
007C615E . 8D4E 38 LEA ECX,DWORD PTR DS:[ESI+38]
007C6161 . E8 0AFXFFFF CALL Game.007C5D70 ; ecx=6D9D5DD8
007C6166 . 8B4E 40 MOV ECX,DWORD PTR DS:[ESI+40]
007C6169 . 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ; 64AFC710,64AFC1F0
007C616D . 3BC1 CMP EAX,ECX
007C616F . 5E POP ESI
007C6170 . 75 06 JNZ SHORT Game.007C6178 ; 1
007C6172 . 33C0 XOR EAX,EAX
007C6174 . 59 POP ECX
007C6175 . C2 0400 RETN 4
007C6178 > 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C] ;这里返回EAX的值
007C617B . 59 POP ECX
007C617C . C2 0400 RETN 4
此时EAX=[esp+4], esp+4 这个数据从哪里找? 我没有搞明白,跟进007C6161发现 其值与 [edx]那里是一样的 也不知道我有没有找错~
下面是007C6161的内部
007C5D70 /$ 51 PUSH ECX ; 人物状态入口
007C5D71 |. 8B4424 0C MOV EAX,DWORD PTR SS:[ESP+C] ;这个是最困扰我的 不知从何入手
007C5D75 |. 8B51 20 MOV EDX,DWORD PTR DS:[ECX+20]
007C5D78 |. 56 PUSH ESI
007C5D79 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
007C5D7B |. 8BC6 MOV EAX,ESI ;mov eax,[eax]
007C5D7D |. 35 EFBEADDE XOR EAX,DEADBEEF
007C5D82 |. 57 PUSH EDI
007C5D83 |. 8B79 24 MOV EDI,DWORD PTR DS:[ECX+24]
007C5D86 |. 23C2 AND EAX,EDX ;EDX也是需要ECX
007C5D88 |. 3BF8 CMP EDI,EAX ;这里要找EDI与EAX比较,即找ECX
007C5D8A |. 77 09 JA SHORT Game.007C5D95 ; 1
007C5D8C |. D1EA SHR EDX,1
007C5D8E |. 83XF FF OR EDI,FFFFFFFF
007C5D91 |. 2BFA SUB EDI,EDX
007C5D93 |. 03C7 ADD EAX,EDI
007C5D95 |> 8B51 14 MOV EDX,DWORD PTR DS:[ECX+14] ; 目前找到这里:[[[[ECX+14]+EAX*4] + 0C] + 40]
007C5D98 |. 8B7C82 04 MOV EDI,DWORD PTR DS:[EDX+EAX*4+4] ; zhuangtai
007C5D9C |. 8D1482 LEA EDX,DWORD PTR DS:[EDX+EAX*4]
007C5D9F |. 8B02 MOV EAX,DWORD PTR DS:[EDX] ;发现[esp+4]与[EDX]的值是一样的
007C5DA1 |. 3BC7 CMP EAX,EDI
007C5DA3 |. 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
007C5DA7 |. 74 16 JE SHORT Game.007C5DBF ; 0
007C5DA9 |. 8BD7 MOV EDX,EDI
007C5DAB |. EB 03 JMP SHORT Game.007C5DB0
007C5DAD | 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
007C5DB0 |> 3970 08 /CMP DWORD PTR DS:[EAX+8],ESI
007C5DB3 |. 7D 19 |JGE SHORT Game.007C5DCE ; 1
007C5DB5 |. 8B00 |MOV EAX,DWORD PTR DS:[EAX]
007C5DB7 |. 3BC2 |CMP EAX,EDX
007C5DB9 |.^ 75 F5 \JNZ SHORT Game.007C5DB0
007C5DBB |. 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
007C5DBF |> 8B51 08 MOV EDX,DWORD PTR DS:[ECX+8]
007C5DC2 |. 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
007C5DC6 |. 5F POP EDI
007C5DC7 |. 8910 MOV DWORD PTR DS:[EAX],EDX
007C5DC9 |. 5E POP ESI
007C5DCA |. 59 POP ECX
007C5DCB |. C2 0800 RETN 8
007C5DCE |> 3B70 08 CMP ESI,DWORD PTR DS:[EAX+8] ; here
007C5DD1 |. 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
007C5DD5 |. 7D 19 JGE SHORT Game.007C5DF0 ; 1
007C5DD7 |. 8B41 08 MOV EAX,DWORD PTR DS:[ECX+8]
007C5DDA |. 894424 08 MOV DWORD PTR SS:[ESP+8],EAX
007C5DDE |. 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8]
007C5DE2 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
007C5DE4 |. 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
007C5DE8 |. 5F POP EDI
007C5DE9 |. 8908 MOV DWORD PTR DS:[EAX],ECX
007C5DEB |. 5E POP ESI
007C5DEC |. 59 POP ECX
007C5DED |. C2 0800 RETN 8
007C5DF0 |> 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14] ; here
007C5DF4 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
007C5DF6 |. 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
007C5DFA |. 5F POP EDI
007C5DFB |. 8908 MOV DWORD PTR DS:[EAX],ECX
007C5DFD |. 5E POP ESI
007C5DFE |. 59 POP ECX
007C5DFF \. C2 0800 RETN 8
找ECX的数据很简单
ECX= [[141E25C] + 4] + 38
但是EAX要从何入手呢?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面是我自己瞎猜的EAX的找法。。。。最后我是没有找出来。。。。
返回上一级调用
007C6150 . 51 PUSH ECX ; 人物状态入口
007C6151 . 56 PUSH ESI
007C6152 . 8BF1 MOV ESI,ECX
007C6154 . 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C] ;
007C6158 . 50 PUSH EAX
007C6159 . 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
007C615D . 51 PUSH ECX
007C615E . 8D4E 38 LEA ECX,DWORD PTR DS:[ESI+38]
007C6161 . E8 0AFXFFFF CALL Game.007C5D70 ; ecx=6D9D5DD8
007C6166 . 8B4E 40 MOV ECX,DWORD PTR DS:[ESI+40]
007C6169 . 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ; 64AFC710,64AFC1F0
007C616D . 3BC1 CMP EAX,ECX
发现上一级有一个[esp+C] 然后继续往上找?
跟入第二个call 这个是很长的片段
发现 eax 与 [esi+c]是一样的 于是找ESI的来源
找到这里感觉很近了 听大神说 [ebp+8]是上一个Call最后一个push的值 于是来到上一个Call 看下最后push的是什么
发现压入的是ESI 于是找ESI的来源
这次跟上面是一样的 ,继续往上找
这次压入的是EDI
继续往上跟
到这发现错了。。。。除了打坐状态会断外 其它都断不下。。。。。。。。 是上面哪一步找错了吗?
联系我时,请说是在 挂海论坛 上看到的,谢谢! |
上一篇: XNF最新链条11.27下一篇: XNF 初恋 星辰 神速 千古 领跑 皇帝 11.27 持续更新中
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。
|