可能重复:
如何以字节为单位获取函数的长度?
我正在制作一个Hooking程序,用于将方法插入到指定的内存部分.
我需要获取本地C++函数的长度,我使用了一个转换来获取函数的位置,但是我如何获得长度?
将
int GetFuncLen()
{
int i = 0;
while((DWORD*)Function+i<max)
{
if((DWORD*)Function+i==0xC3)
{
return i;
}
i++;
}
}
Run Code Online (Sandbox Code Playgroud)
工作?
我将如何制作一系列电影剪辑?
如果你可以包含一个带有数组一部分设置的例子,那就太棒了:)
我有这个功能,主要由内联asm组成.
long *toarrayl(int members, ...){
__asm{
push esp
mov eax, members
imul eax, 4
push eax
call malloc
mov edx, eax
mov edi, eax
xor ecx, ecx
xor esi, esi
loopx:
cmp ecx, members
je done
mov esi, 4
imul esi, ecx
add esi, ebp
mov eax, [esi+0xC]
mov [edi], eax
inc ecx
add edi, 4
jmp loopx
done:
mov eax, edx
pop esp
ret
}
}
Run Code Online (Sandbox Code Playgroud)
运行时,我在返回指令上遇到访问冲突.
我正在使用VC++ 6,它有时可能意味着指向上面的行,所以可能在'pop esp'上.如果你能帮助我,那就太好了.谢谢,iDomo.