]
![]()
菜鸟过路...找个人做魔域答题库,,,,,,,,
8B0D 6C83A600 mov ecx,dword ptr ds:[A6836C] ecx这里取值了
6A 02 push 2 //push 2是默认的参数.......
8BB9 0C2D0000 mov edi,dword ptr ds:[ecx+2D0C] //这个是获取仓库的大小...基址++0x2d0c
FF15 9089A600 call dword ptr ds:[A68990] //返回值是eax等于仓库里面有多少个BB
3BC7 cmp eax,edi //判断存仓库的时候是不是满了
72 3C jb short soul.009A845C
//由于call的内部太多代码自己去看下这个是最新的数据
8BF0 mov esi,eax
8B8D D4F3FFFF mov ecx,dword ptr ss:[ebp-C2C] //ebp-0xc2c ===//A6836C 这个基址
8B89 D01C0000 mov ecx,dword ptr ds:[ecx+1CD0] //[A6836C]+0x1cd0等于仓库的对象指针
E8 2328F7FF call 0112E371
//这个call 也是获取仓库里面BB的个数参数是ecx获取出来就是大小
55 push ebp
8BEC mov ebp,esp
51 push ecx
894D FC mov dword ptr ss:[ebp-4],ecx
00FD5CD7 8B45 FC mov eax,dword ptr ss:[ebp-4]
8B40 2C mov eax,dword ptr ds:[eax+2C]// 上面call进来的内部 E8 2328F7FF call 0112E371
8BE5 mov esp,ebp
5D pop ebp
C3 retn
//这个call是获取BB的指针....
8B0D 6C83A600 mov ecx,dword ptr ds:[A6836C]
25 FFFF0000 and eax,0FFFF //这个and是为了清0高位
6A FF push -1 //默认参数-1
50 push eax //eax等于下标从0开始数
FF15 2886A600 call dword ptr ds:[A68628]
//call 的内部代码有点多自己去看下
//获取BB的ID参数是BB的指针
00FB89D0 55 push ebp
00FB89D1 8BEC mov ebp,esp
00FB89D3 51 push ecx
00FB89D4 894D FC mov dword ptr ss:[ebp-4],ecx
00FB89D7 8B45 FC mov eax,dword ptr ss:[ebp-4]
00FB89DA 8B40 04 mov eax,dword ptr ds:[eax+4]
00FB89DD 8BE5 mov esp,ebp
00FB89DF 5D pop ebp
00FB89E0 C3 retn
从仓库取出来
009C8845 8B0D 6C83A600 mov ecx,dword ptr ds:[A6836C]
009C884B 6A 00 push 0 //参数
009C884D 6A FF push -1 //参数
009C884F 50 push eax //参数3 BB ID
009C8850 FF15 1886A600 call dword ptr ds:[A68618]
//发送明文封包打开NPC的数据是结构
00128f0c┃10 00 EF 07|B2 07 00 00|00 00 00 00|00 00 00 00|
//参数1: 前4个字节的意思是大小后面两字节是指令头
//参数2: 第2个参数是NPC的Id.....
//参数3和4 :后面的参数由于自己初始化为0
//发送明文选择项NPC结构
0012f4b4┃11 00 F0 07|00 00 00 00|00 00 01 65|01 00 00 00┃
0012f4c4┃00 | | | ┃.
//参数1: 前4个字节的意思是大小后面两字节是指令头
//参数2: 默认为0
//参数3: 选项6501是第1选项..从0下标开始
//选项参数
switch(Options)
{
case 0:
OepnNpcAnOption[2]=0x65000000;//1
break;
case 1:
OepnNpcAnOption[2]=0x65010000;//2
break;
case 2:
OepnNpcAnOption[2]=0x65020000;//3
break;
case 3:
OepnNpcAnOption[2]=0x65030000;//4
break;
case 4:
OepnNpcAnOption[2]=0x65040000;//5
break;
}
//后面参数为默认.......................
瞬复活的数据
//指令头和大小 //游戏时间 //基址对象+DC
// 0012f130┃1C 00 F2 03|38 1E 5F 01|6C 74 37 47|00 00 00 00┃
// 0012f140┃00 00 00 00|00 00 00 00|D7 25 00 00| ┃
//参数最后一个参数是原地还是回城类型
//25D7原地...条件下必须有祝福才可以
//0x2550回城
![]()
简单的分析
有谁需要一起研究的可以留下QQ我上线看见会+呢的了