首先在输入某段函数代码前 需要知道函数代码所在的位置;可以通过函数名获取真实函数地址:、
DWORD dwAddr=*(PDWORD)((DWORD)mFunc+1)+(DWORD)mFunc+5;
其中mfunc
为我们定义的函数
mfunc
函数可以分为有参函数与无参函数:
定义无传参数注入远程call
void __declspec(naked) NormalAtt()
{
//////////////////////////////////////////////////////////////////////////
_asm{
pushad
push -1
push 0
push 0
push 0
mov eax,0x0C7D888
mov eax,[eax]
mov eax,[eax+0X1C]
mov eax,[eax+0X28]
mov ecx,eax
mov eax,dwAddr
call eax
popad
retn
}
定义有参注入远程call
void __declspec(naked) Selmon(DWORD selectmonid)
{
//////////////////////////////////////////////////////////////////////////
_asm{
push ebp
mov ebp,esp
pushad
mov eax,selectmonid
mov eax,[eax]
push eax
mov eax,0x0C7D888
mov eax,[eax]
mov eax,[eax+0X20]
mov ecx,eax
add ecx,0x248
mov eax,dwAddr
call eax
popad
pop ebp
retn
}
}