我想使用PostMessageA函数 但是np挂勾了它它吃掉了PostMessageA的5个字节 直接jmp了所以可以在自己的程式把它补齐后再jmp到原本+5的地方这样PostMessageA就可以用了汇编是这样:
mov edi,edi
push ebp
mov ebp,esp
jmp PostMessageA+5dephi跟vc我都写过了 都OK 我是想用vb写. 因为刚学 所以想试试 但听说vb不能用asm 所来来问问
我是想用字节组啦
把那些asm转换成opcode为:8b ff //mov edi,edi
55    //push ebp 
8b ec //mov ebp,esp
e9 PostMessageA+5 //jmp PostMessageA+5 这边的PostMessageA+5可以用GetProcAddress(LoadLibrary("user32.dll"), "PostMessageA") + 5 表示
但是我不怎么懂 opcode的话 e9之后的PostMessageA+5用vb的数组刚怎么表示?
请问有人知道吗?

解决方案 »

  1.   

    发下VC写的source HMODULE HModule=LoadLibrary("user32.dll");
    PMaddress=(DWORD)GetProcAddress(HModule,"PostMessageA");
    PMaddress=PMaddress+5;bool __declspec(naked) WINAPI PostMessageX(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
    {
    __asm
    {
    mov edi,edi
    push ebp
    mov ebp,esp
    jmp PMaddress
    }
    }PostMessageX(::FindWindow(NULL,"计算器"),WM_KEYDOWN,GetKeyCode("A"),MapVirtualKey(GetKeyCode("A"),0)<<16);
      

  2.   

    首先ASM在VB6中是支持滴,再次,你想做啥呢?PostMessageA你准备发啥?发啥都白搭!
      

  3.   

    VB中用CallWindowProc可执行字节数组里的opcode