|
50精币
004B06FE . 8BF0 mov esi,eax ; eax=00000003 购买数量
004B0700 . 85F6 test esi,esi
004B0702 . 75 0A jnz short SO3D.004B070E
004B0704 . E9 D3030000 jmp SO3D.004B0ADC
004B0709 > BE 01000000 mov esi,0x1
004B070E > 8BC6 mov eax,esi ; esi=00000003 购买数量
004B0710 . 0FAFC5 imul eax,ebp ; ebp=0000000A 计算总价
004B0713 . 3D A0860100 cmp eax,0x186A0 ; eax=0000001E
004B0718 . 7C 4A jl short SO3D.004B0764 ; 跳转已实现
004B071A . 50 push eax
004B071B . 8D8424 BC0000>lea eax,dword ptr ss:[esp+0xBC]
004B0722 . 50 push eax
004B0723 . 68 E8040000 push 0x4E8
004B0728 . E8 93CD1100 call SO3D.005CD4C0
004B072D . D905 84BB7300 fld dword ptr ds:[0x73BB84]
004B0733 . 83C4 08 add esp,0x8
004B0736 . D91C24 fstp dword ptr ss:[esp]
004B0739 . 6A 00 push 0x0
004B073B . 6A 02 push 0x2
004B073D . 8D8C24 C40000>lea ecx,dword ptr ss:[esp+0xC4]
004B0744 . 51 push ecx
004B0745 . B9 E0941A01 mov ecx,SO3D.011A94E0
004B074A . E8 B13C0800 call SO3D.00534400
004B074F . 84C0 test al,al
004B0751 . 75 11 jnz short SO3D.004B0764
004B0753 . 33C0 xor eax,eax
004B0755 . A3 30621D01 mov dword ptr ds:[0x11D6230],eax
004B075A . A3 5CC11D01 mov dword ptr ds:[0x11DC15C],eax
004B075F . E9 78030000 jmp SO3D.004B0ADC ; 已跳过
004B0764 > 8B5424 20 mov edx,dword ptr ss:[esp+0x20] ; 堆栈 ss:[0018F2D8]=0018F4E0
004B0768 . 56 push esi ; esi=00000003 数量
004B0769 . 52 push edx ; edx=0018F4E0
004B076A . E8 716A1200 call SO3D.005D71E0
004B076F . 53 push ebx ; ebx=00000009
004B0770 . 50 push eax ; eax=0018F4E4
004B0771 . E8 6A6A1200 call SO3D.005D71E0
004B0776 .- E9 ABD45001 jmp SO3D.019BDC26
004B077B 90 nop
004B077C 90 nop
004B077D . 52 push edx ; 已跳过
004B077E . 50 push eax ; 已跳过
004B077F . E8 5C6A1200 call SO3D.005D71E0
004B0784 . 8B0D A0601D01 mov ecx,dword ptr ds:[0x11D60A0] ; ds:[011D60A0]=3771D9F0
004B078A . 83C4 18 add esp,0x18 ; esp=0018F2A0
004B078D . 6A 14 push 0x14
004B078F . 8D8424 240200>lea eax,dword ptr ss:[esp+0x224] ; 堆栈地址=0018F4D8
004B0796 . 50 push eax ; eax=0018F4D8
004B0797 . 68 8C450600 push 0x6458C
004B079C . C605 131C7C00>mov byte ptr ds:[0x7C1C13],0x0 ; ds:[007C1C13]=01
004B07A3 . E8 38AC1200 call SO3D.005DB3E0 ; 买物4
下面的是 上面那个jmp跳转过来的 (004B0776 E9 ABD45001 jmp SO3D.019BDC26)
019BDC26 8B4C24 24 mov ecx,dword ptr ss:[esp+0x24] ; 堆栈 ss:[0018F2CC]=038DAF28
019BDC2A 8B51 20 mov edx,dword ptr ds:[ecx+0x20] ; ds:[038DAF48]=000084D5
019BDC2D 83FA 00 cmp edx,0x0
019BDC30 7F 05 jg short SO3D.019BDC37 ; 跳转已实现
019BDC32 BA FEFFFFFF mov edx,-0x2
019BDC37 52 push edx ; edx=000084D5
019BDC38 50 push eax ; eax=0018F4E8
019BDC39 - E9 412BAFFE jmp SO3D.004B077F
这是我自己写的 游戏直接崩溃
mov eax,3
mov esi,eax
mov eax,dword ptr ds:[0x11D6230]
mov edx,dword ptr ds:[eax+0x8]
imul edx,edx,0x178
mov ecx,dword ptr ds:[0x7DA400]
mov eax,dword ptr ds:[ecx+0x1B54]
imul eax,ebp
mov ebp,esp
mov esp,0018F2B8
mov edx,dword ptr ss:[esp+0x20]
push esi
push edx
call 005D71E0
push ebx
push eax
call 005D71E0
mov edx,0x000084D5
mov eax,0x0018F4E8
call 005D71E0
mov ecx,dword ptr ds:[0x11D60A0]
add esp,0x18
push 0x14
lea eax,dword ptr ss:[esp+0x224]
push eax
push 0x6458C
mov byte ptr ds:[0x7C1C13],0x0
call 005DB3E0
mov esp,ebp
pop ebp
ret
大神指点下这个call该如何写 (esp该如何处理)
这是一个购买物品的call (确认数量call) (1 先选择物品类型 2 确认购买数量)
|
最佳答案
查看完整内容
这个是堆栈不平衡导致的,加我392076936
|