EBX寄存器用于传递__fastcall函数参数

问题描述

我正在尝试挂钩一个使用EBX的fastcall函数,并试图重新生成相同的asm行以使挂钩正常工作

mov ebx,dword ptr ss:[ebp+8]
mov ecx,eax
call 004F00F0

有什么想法可以使__fastcall调用约定使用EBX?
注意:编写的asm由Visual Studio c ++ 2005编译器生成,我正在vs2019上编写自己的代码。

更新#1:

函数汇编如下,

sub esp,8
test ecx,ecx
push ebp
push esi
push edi
je 004F0208
mov ax,word ptr ds:[ecx+80]
test al,2
je 004F0208
and al,1C
cmp al,4
jne 004F0208
fldz 
lea ebp,dword ptr ds:[ebx+21A0]
fst dword ptr ss:[ebp+8],st(0)
mov dword ptr ss:[ebp],0
fst dword ptr ss:[ebp+C],st(0)
mov byte ptr ss:[ebp+4],0
mov byte ptr ss:[ebp+5],0
xor eax,eax
mov dword ptr ss:[ebp+10],eax
mov dword ptr ss:[ebp+14],eax
mov dword ptr ss:[ebp+18],eax
mov dword ptr ss:[ebp+1C],eax
mov dword ptr ss:[ebp+20],eax
mov dword ptr ss:[ebp+24],eax
mov dword ptr ss:[ebp+28],eax
mov dword ptr ss:[ebp+2C],eax
mov dword ptr ss:[ebp+30],eax
mov dword ptr ss:[ebp],ecx
mov byte ptr ds:[ebx+21A4],1
movzx eax,word ptr ds:[ecx+E4]
mov dword ptr ss:[esp+10],eax
lea esi,dword ptr ds:[ebx+1EC]
mov edi,17
fild st(0),dword ptr ss:[esp+10]
fstp dword ptr ds:[ebx+21A8],st(0)
movzx ecx,word ptr ds:[ecx+E6]
mov dword ptr ss:[esp+10],ecx
push ecx
fild st(0),dword ptr ss:[esp+14]
fstp dword ptr ds:[ebx+21AC],st(0)
fstp dword ptr ss:[esp],st(0)
push 0
push 3
call 004B3510
fldz 
push ecx
fstp dword ptr ss:[esp],st(0)
push 0
push 3
mov edi,18
call 004B3510
mov edx,dword ptr ds:[ebx]
mov eax,dword ptr ds:[edx+4E8]
mov ecx,ebx
call eax
push 3207
call 00430A00
add esp,4
mov esi,eax
lea ecx,dword ptr ds:[ebx+8]
push ecx
lea eax,dword ptr ds:[edi-14]
mov ecx,esi
call 00404090
mov edi,00CD3A80
call 0042C8F0
cmp dword ptr ss:[ebp],0
je 004F01F3
mov eax,edi
mov ecx,ebp
call 004DD6B0
mov edi,esi
mov eax,edi
mov esi,00CD3A80
call 0042C820
mov esi,ebx
call 00484D90
pop edi
pop esi
pop ebp
add esp,8
ret 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...