汇编调用CALL,声明局部变量并将地址传入。

0087D804 | 68 88000000 | push 88 |
0087D809 | 8D8D E8D7FFFF | lea ecx,dword ptr ss:[ebp-2818] |
0087D80F | 51 | push ecx | [ecx]+1A=存入物品数量
0087D810 | 8B0D 00BB1E01 | mov ecx,dword ptr ds:[11EBB00] |
0087D816 | E8 950BC9FF | call client.50E3B0 | 多个存仓库1

//原代码
_asm{
 push 88   
 lea ecx,dword ptr ss:[ebp-2818] 
 push ecx 
 mov ecx,dword ptr ds:[11EBB00] 
 call 0x0050E3B0
 }

正确示例

_asm{
sub esp,0x90
mov eax, esp
mov dword ptr ss:[esp+0x0],0X940000
mov dword ptr ss:[esp+0x4],0X1008C
mov dword ptr ss:[esp+0x8],0X30000
mov dword ptr ss:[esp+0xC],0x0

mov dword ptr ss:[esp+0x10],0XCA650000
mov dword ptr ss:[esp+0x14],0X3B9A
mov dword ptr ss:[esp+0x18],0X40000
mov dword ptr ss:[esp+0x1C],0x0

mov dword ptr ss:[esp+0x20],0X68410000
mov dword ptr ss:[esp+0x24],0X6C33
mov dword ptr ss:[esp+0x28],0X46210000
mov dword ptr ss:[esp+0x2C],0xE79C66E5

mov dword ptr ss:[esp+0x30],0XCA6514C8
mov dword ptr ss:[esp+0x34],0X3B9A
mov dword ptr ss:[esp+0x38],0X1B00000
mov dword ptr ss:[esp+0x3C],0x0

mov dword ptr ss:[esp+0x40],0X10000
mov dword ptr ss:[esp+0x44],0X10000
mov dword ptr ss:[esp+0x48],0x0
mov dword ptr ss:[esp+0x4C],0x0

PUSH 0X88
lea eax,dword ptr ss:[esp+0x4]
push eax
mov ecx, dword ptr ds:[0x011EBB00]
call 0x0050E3B0
add esp,0x90
}

参数顺序正确,参数正确。

第一次调用(错误示例):

_asm{
PUSH 0X88
sub esp,0x50
mov dword ptr ss:[esp+0x0],0X940000
mov dword ptr ss:[esp+0x4],0X1008C
mov dword ptr ss:[esp+0x8],0X30000
mov dword ptr ss:[esp+0xC],0x0

mov dword ptr ss:[esp+0x10],0XCA650000
mov dword ptr ss:[esp+0x14],0X3B9A
mov dword ptr ss:[esp+0x18],0X40000
mov dword ptr ss:[esp+0x1C],0x0

mov dword ptr ss:[esp+0x20],0X68410000
mov dword ptr ss:[esp+0x24],0X6C33
mov dword ptr ss:[esp+0x28],0X46210000
mov dword ptr ss:[esp+0x2C],0xE79C66E5

mov dword ptr ss:[esp+0x30],0XCA6514C8
mov dword ptr ss:[esp+0x34],0X3B9A
mov dword ptr ss:[esp+0x38],0X1550000
mov dword ptr ss:[esp+0x3C],0x0

mov dword ptr ss:[esp+0x40],0X10000
mov dword ptr ss:[esp+0x44],0X10000
mov dword ptr ss:[esp+0x48],0x0
mov dword ptr ss:[esp+0x4C],0x0

PUSH ESP
mov ecx, dword ptr ds:[0x011EBB00]
call 0x0050E3B0
add esp,0x50
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值