读书人

RING 3 inlinehook 一个小疑点

发布时间: 2012-05-14 15:24:34 作者: rapoo

RING 3 inlinehook 一个小问题
inlinehook类

C/C++ code
#ifndef INLINEHOOK_SB#define INLINEHOOK_SB#include <windows.h>class inlinehook{private:       BYTE NewB[8];       BYTE OldB[8];    FARPROC OldFuncAddr;public:    inlinehook(void);    virtual ~inlinehook(void);public:     int StartHook(void);     int StopHook(void);    void Initialize(DWORD Old,DWORD New);};inlinehook::inlinehook(void){    NewB[0]=0xB8;    NewB[1]=0x00;    NewB[2]=0x00;    NewB[3]=0x40;    NewB[4]=0x00;    NewB[5]=0xFF;    NewB[6]=0xE0;    NewB[7]=0x00;}inlinehook::~inlinehook(void){    WriteProcessMemory(INVALID_HANDLE_VALUE,(void*)OldFuncAddr,OldB,8,NULL);}void inlinehook::Initialize(DWORD Old,DWORD New){    OldFuncAddr = (FARPROC)Old;    ReadProcessMemory(INVALID_HANDLE_VALUE,(void*)OldFuncAddr,OldB,8,NULL);    *(DWORD*)(NewB+1) = New;}int inlinehook::StartHook(){    if(!WriteProcessMemory(INVALID_HANDLE_VALUE,(void*)OldFuncAddr,NewB,8,NULL)) return -1;    else return 0;}int inlinehook::StopHook(){    if(!WriteProcessMemory(INVALID_HANDLE_VALUE,OldFuncAddr,OldB,8,NULL)) return -1;    else return 0;}#endif


为什么对SetWindowPos函数没有作用???
求解...
感激不尽


[解决办法]
int WINAPI MySetWindowPos
[解决办法]
int WINAPI MySetWindowPos(HWND hWnd,HWND hWndInsertAfter,int x,int y,int cx,int cy,UINT uFlags)
{
SWP.StopHook();
BOOL t=SetWindowPos(hWnd,HWND_TOPMOST,x,y,cx,cy,uFlags);
if(!t) MessageBox(0,"a",0,MB_OK);
SWP.StartHook();
return t;
}

[解决办法]
探讨

int WINAPI MySetWindowPos

读书人网 >VC/MFC

热点推荐