找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 281|回复: 1

征途数据分析

[复制链接]

1793

主题

457

回帖

0

积分

管理员

积分
0
发表于 2013-8-29 18:27:35 | 显示全部楼层 |阅读模式


1,打坐
下bp send 返回4次的CALL
CALL 004AE4B0

特征码
ADD ESP,4
POP EDI
POP ESI
MOV BYTE PTR SS:[ESP+8],1
MOV AL,BYTE PTR SS:[ESP+8]
POP EBP
POP EBX
ADD ESP,1C4


找到后下面第二个CALL就是

2、找血值,查找访问

004D3FB4    8>MOV ECX,DWORD PTR SS:[EBP+40]
004D3FB7    8>MOV EDX,DWORD PTR DS:[ESI+608]
004D3FBD    5>USH ECX
004D3FBE    5>USH EDX
004D3FBF    8>MOV ECX,ESI

向上看
004D3F2B    A>MOV EAX,DWORD PTR DS:[A91384]
004D3F30    8>MOV EBP,DWORD PTR DS:[EAX+528]
004D3F36    8>TEST EBP,EBP
004D3F38    8>MOV DWORD PTR SS:[ESP+38],EBP

Dd [[00a91384]+528]+40  //当前血量
Dd [[00a91384]+528]+44  //最大血量


3.找蓝
用CE查找访问

发现00000fae比较像
Dd [[00a91384]+528]+0fae  //当前蓝
Dd [[00a91384]+528]+0fb2  //最大蓝


一级基址特征码
MOV ECX,DWORD PTR DS:[ESI+5E4]
MOV EDX,DWORD PTR DS:[ECX]
PUSH 1
CALL DWORD PTR DS:[EDX+54]

[其它]

Dd [[00a91384]+528]+2c  //X坐标
Dd [[00a91384]+528]+30  //Y坐标
Dd [[00a91384]+528]+0F9C  //等级
Db [[00a91384]+528]+4  //人名
Db [[00a91384]+528]+900  //国家
Db [00a91384]+408  //地图名
dd  [00a91384]+52c  //目标对象
db [[00a91384]+52c]+4  //对象名字
db [[00a91384]+52c]+564  //镖车所属人

[走路]
通过特征码搜索出来
004E4E8C    8>MOV ECX,DWORD PTR DS:[EAX+528]
004E4E92    6>USH 0
004E4E94    6>USH 0
004E4E96    5>USH EBP
004E4E97    5>USH EBX
004E4E98    E>CALL zhengtu.00465B10
004E4E9D    5>OP EBP
004E4E9E    5>OP EBX
004E4E9F    5>OP EDI
004E4EA0    B>MOV AL,1
004E4EA2    5>OP ESI
004E4EA3    5>POP ECX
004E4EA4    C>RETN 10


特征码
MOV ECX,DWORD PTR DS:[EAX+528]
PUSH 0
PUSH 0
PUSH EBP
PUSH EBX
CALL XXXXXXX
POP EBP
POP EBX
POP EDI
MOV AL,1
POP ESI
POP ECX
RETN 10


对话NPC

BP SEND返回4次
00459DCB  |> \5>PUSH EDI
00459DCC  |.  8>MOV ECX,ESI
00459DCE  |.  E>CALL zhengtu.00459360


EDI就是NPC,向上找EDI
00459A08  |.  8>MOV EDI,DWORD PTR SS:[ESP+2C]
00459A0C  |.  0>JE zhengtu.00459BBD


向上找到头部,然后找到上级CALL
0045EC52  |.  5>PUSH EDX                                 ; /dd EDX
0045EC53  |.  6>PUSH 201                                 ; |Arg1 = 00000201
0045EC58  |.  8>MOV ECX,ESI                              ; |
0045EC5A  |.  E>CALL zhengtu.00459910                    ; \zhengtu.00459910

但是没找到


搜索旁边NPC的名字
找到后将其改名,看哪个是当前的,下写入检测,然后跑开,再跑回来



004302DD  |.  8>MOV DWORD PTR DS:[EAX],ESI
004302DF  |.  F>DEC DWORD PTR DS:[ECX+4]
004302E2  |.  8>MOV ECX,DWORD PTR DS:[EAX+4]
004302E5  |.  8>MOV EDX,DWORD PTR DS:[ECX+4]             ;  NPC名

向上找
0043027B  |.  A>MOV EAX,DWORD PTR DS:[A913D4]                  ;  dd [[0a913d4]+4]+4
00430280  |.  8>TEST EAX,EAX
00430282  |.  C>MOV DWORD PTR SS:[ESP+10],0
0043028A  |.  7>JNZ SHORT zhengtu.004302D7                     ;  跳了

dd [[0a913d4]+4]+4


008B0910  /$  8>MOV EAX,ECX
008B0912  |.  3>XOR CL,CL
008B0914  |.  C>MOV DWORD PTR DS:[EAX],zhengtu.009AE864
008B091A  |.  8>MOV BYTE PTR DS:[EAX+25],CL              ;  NPC写入断点
008B091D  |.  C>MOV DWORD PTR DS:[EAX+28],-1
008B0924  |.  8>MOV BYTE PTR DS:[EAX+4],CL
008B0927  \.  C>RETN

再到[0A913D4]+4这里下断,因为这里总在变化写NPC的名字
0041887E   .  E>CALL zhengtu.00418300                          ;  写入NPC
00418883   .  8>MOV ECX,DWORD PTR DS:[ESI+6]
00418886   .  8>LEA EDX,DWORD PTR DS:[ESI+ECX+A]
跟踪
00418B58   .  E>CALL zhengtu.004398E0                          ; \改NPC
跟踪
00439955  |> \E>CALL zhengtu.00430250                          ;  改NPC
找到来源dd [[0A913D4]+4]

结果发现这样的东西
db [[[[[[[[0a913d4]+4]]]]]]]+8
是NPC,但名字却不全???



上面找的都失败了

重新在OD里dd [[0A913D4]+4]关键入下硬件写入中断
004303F5  |.  8>MOV ECX,DWORD PTR DS:[EAX+4]                   ;  清除NPC断点

向上找
0043039F  |.  8>MOV EAX,DWORD PTR DS:[ESI+66C]                 ;  dd [esi+66c]+4

找到上级CALL
0043A1C0  |.  5>|PUSH EDI                                      ;  dd edi
0043A1C1  |.  E>|CALL zhengtu.00430370

找上级CALL
0043BFF1   .  8>MOV ECX,EBP                                    ;  dd [[[ebp+48c]]+66c]+4
0043BFF3   .  E>CALL zhengtu.0043A180


经过CE搜索,找到如下值
dd [[[[00a91384]+48c]]+66c]+4

然后通过遍历得知
db [[[00a91384]+48c]+0]+4
db [[[00a91384]+48c]+4]+4
db [[[00a91384]+48c]+8]+4

遍历用法  [[[00a83DE4]+48c]0..4 600]+4



这样的话就可以找镖车了哇哈哈
db [[[00a91384]+48c]+0..N]+4





对话NPC(直接通过怀旧找特征码)

特征码
MOV EAX,DWORD PTR DS:[ESI+1468]
LEA EDX,DWORD PTR SS:[ESP+38]
PUSH EDX
PUSH EAX
PUSH EDI
上面的CALL就是



[对话菜单]



代码注入器测试成功
push 0
mov ecx,[95B0A4]
call 005f9610


这个PUSH 0就是第一个菜单,1就是第二个菜单

打开菜单特征码如下:
POP EDI
POP ESI     
POP EBP
MOV AL,1
POP EBX
RETN 0C
CMP DWORD PTR SS:[ESP+18],-1            
找到后上面的CALL就是

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2013-9-29 22:16:43 | 显示全部楼层
非常感谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 05:52 , Processed in 0.148483 second(s), 21 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表