LoadLibrary("msvcrt.dll")在汇编中的表示
#include <WINDOWS.H>
#include <WINBASE.H>
void main()
{
__asm
{
push ebp;
mov ebp,esp;
sub esp,0x0c;
mov eax,0x6376736d;
mov [ebp-0x0c],eax;
mov eax,0x642e7472;
mov [ebp-0x08],eax;
mov eax,0x6c6c;
mov [ebp-0x04],eax;
xor edx,edx;
mov [ebp-0x02],dl;
lea eax,byte ptr [ebp-0x0c];
push eax;
mov ecx,0x77BE0000;
call ecx;
push ebp;
mov ebp,esp;
sub esp,0x0c;
mov eax,0x6d6d6f63
mov dword ptr [ebp-0x0c],eax
mov eax,0x2e646e61
mov dword ptr [ebp-0x08],eax
mov eax,0x6d6f63
mov dword ptr [ebp-0x04],eax
xor edx,edx
mov byte ptr [ebp-0x1],dl
lea eax,byte ptr [ebp-0x0c]
push eax
mov eax,0x77BF93C7;
call eax;
}
exit(0);
}
代码如上所示,xp sp2+vc6.0
call ecx时就报错......0xC0000005: Access Violation,,用的代码libHandle=LoadLibrary("msvcrt.dll")获得它的地址为0x77BE0000,是不是这里地址就已经错了?调试的时候发现这个地址的机器码都是??????.如果错了,那应该修改成什么.求高手,求大牛,求真相.