- 注册时间
- 2010-7-26
- 最后登录
- 2010-7-27
- 在线时间
- 1 小时
编程入门
- 魔鬼币
- 0
|
本教程同样适用于 找怪物数组 找地面物品==原理几乎一样的
看到有朋友不会遍历 最后我会做个示范
感冒很厉害,所以就不录语音了 仔细看操作
CTRL+G 转到指定内存地址
准备工作
工具: CE OD 遍历工具 完美世界版(完美ELEMENT引擎的游戏都行)
玩家名字:迅雷软件 转unicode C5 8F F7 96 6F 8F F6 4E
这些我已经准备好了 开始
CE搜索 字节数组 C5 8F F7 96 6F 8F F6 4E
得到个偏移 全加到地址栏
第二步 剔除不相关结果 看操作 看清楚 这里是关键 需要思考的为什么这么
做 我就不详细说 慢慢体会吧
看到没有组队设置里 名字变了
找到我们要的偏移了 就是C580674
第三步 开始OD加载分析
CTRL+G 转到指定内存地址
0C580674
刚刚我回到游戏里按了T键 刷新了下周围玩家列表 OD断下了 这里非常重要
77C17E9F 66:8B02 mov ax, word ptr [edx]
edx=0C7D5274
004A3E19 > \8B80 BC050000 mov eax, dword ptr [eax+5BC]
0C7D4CB8=0560FEA4 05A54BC0 0C69F9F8
得到个偏移 我试过第二个可用 另外个这里就PASS了
05A54BC0 这个不对
00580F80 |> \8B42 04 mov eax, dword ptr [edx+4]
0560FEA0=0A183844
00580F40 /$ 56 push esi
00580F41 |. 8B7424 08 mov esi, dword ptr [esp+8]
00580F45 |. 8BC6 mov eax, esi
00580F47 |. 33D2 xor edx, edx
00580F49 |. F771 24 div dword ptr [ecx+24]
00580F4C |. 8B41 18 mov eax, dword ptr [ecx+18]
00580F4F |. 8B1490 mov edx, dword ptr [eax+edx*4]
[edx*4]=000117*4
[ecx]=03383EE0
到这里我换全程OD了 因为用CE有困难 而且还麻烦 大家可以试试用CE全程
edx=[eax+edx*4]
edx=[[ecx+18]+edx*4]
往上看到这里都没ECX 说明ECX是上层调用 传进来的
回到OD是最近的调用
选第一个 A . 8BCB mov ecx, ebx
00425513 . 8B5E 20 mov ebx, dword ptr [esi+20]
[ebx]=[esi+20]
004254EC . 8B70 08 mov esi, dword ptr [eax+8]
esi=[eax+8]
在往上找EAX的直
004254E8 . 8B40 1C mov eax, dword ptr [eax+1C]
eax=[eax+1C]
再找这个EAX
往上
004254E0 > /A1 1C7E9800 mov eax, dword ptr [987E1C]
这里是完整CALL的头部 最后出现了EAX的直 比较简单
eax=[987E1C] [987E1C]就是游戏的级基址
下面来总结下 |
|