wangbeng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

大航海时代ol台服找Call记(十七)交易商货物数据分析 - 2 (出售货物Call)

根据万能call断点,获得出售货物call

GVOnline.exe+4AEFD - 66 89 46 10           - mov [esi+10],ax
GVOnline.exe+4AF01 - 89 4D 08              - mov [ebp+08],ecx
GVOnline.exe+4AF04 - 85 DB                 - test ebx,ebx
GVOnline.exe+4AF06 - 0F85 54FFFFFF         - jne GVOnline.exe+4AE60
GVOnline.exe+4AF0C - 8B 5D EC              - mov ebx,[ebp-14]
GVOnline.exe+4AF0F - 8B 73 34              - mov esi,[ebx+34]
GVOnline.exe+4AF12 - 8B 7B 30              - mov edi,[ebx+30]
GVOnline.exe+4AF15 - E8 66151100           - call GVOnline.exe+15C480
GVOnline.exe+4AF1A - 8D 4D D0              - lea ecx,[ebp-30]
GVOnline.exe+4AF1D - 51                    - push ecx
GVOnline.exe+4AF1E - 56                    - push esi
GVOnline.exe+4AF1F - 57                    - push edi
GVOnline.exe+4AF20 - FF 73 24              - push [ebx+24]
GVOnline.exe+4AF23 - 8D 88 A81A0000        - lea ecx,[eax+00001AA8]
GVOnline.exe+4AF29 - E8 225C6E00           - call GVOnline.exe+730B50        //出售物品call
GVOnline.exe+4AF2E - 8B F0                 - mov esi,eax

进入call时的堆栈如下:(共4个参数)
001AFDC8(esp+0)      - 00000017             - (dword)00000017(23)       参数1:窗口id
001AFDCC(esp+4)      - 00000000             - (dword)00000000(0)        参数2:固定0
001AFDD0(esp+8)      - 018006E8             - (pointer)018006E8         参数3:npc ID
001AFDD4(esp+C)      - 001AFDE4             - (pointer)001AFDE4         参数4:出售货物数据地址
001AFDD8(esp+10)     - 06868178             - (pointer)06868178   
001AFDDC(esp+14)     - 00002EE0             - (dword)00002EE0(12000)    按钮ID
001AFDE0(esp+18)     - 199E46E0             - (pointer)199E46E0   
001AFDE4(esp+1C)     - 00F3972C             - (pointer)GVOnline.exe+B3972C

内存数据如下图:
image
image

经过测试,出售货物数据中的物品ID为物品的动态ID,每次重新获得该物品时,均会重置。可以参考下面的持有物品内存数据:
image


出售物品call (CE Autoassemble)

alloc(newmem,2048)
newmem:
pushad

sub esp, $100   //堆栈里分配$100个字节
mov edx,esp

mov eax,edx               // 出售物品数组地址
mov [edx],0x4e93a487      // 动态物品ID (每次新获得物品均会重置)
mov [edx+4],0x00010001    //固定值  
mov [edx+8],0x00000002    //出售数量
mov [edx+c],0x19          //出售单价

add edx,0x10
mov [edx],0x00f3972c     //固定值
mov [edx+4],eax
mov [edx+8],0x00000001  //出售物品种类
push edx                //参数4

push 0x0018006e8       //参数3
push 0                 //参数2
push 0x17             //参数1

mov ecx,0x01217388
call 00B30B50          //
add esp , $100
popad

ret
createthread(newmem)
//----------------------------------
posted on 2026-04-08 11:01  wangbeng  阅读(13)  评论(0)    收藏  举报