DLL注入

DLL注入有多种技术,程序中使用WINDOWS消息钩子技术,涉及到一下windows API:

LoadLibrary:载入DLL;

GetProcAddress:根据名称获取DLL中的函数;

SetWindowsHookEx:安装钩子。

注入DLL到进程中,我们定义一个SetHook函数。

void _stdcall SetHook()
{
  HWND hWndGame;//获取句柄
  hwndGame=::FindWindow(NULL,GAME_WIN_NAME);
  //获取进程ID和窗口线程ID
DWORD dwProcessId, dwThreadId;
  dwThreadId=::GetWindowThreadProcessId(hWndGame,&dwProcessId);
//安装钩子
 g_hHook=::SetWindowsHookEx(WH_KEYBOARD,   //键盘钩子
                            KeyBoardProc,  //钩子过程
                            GetModuleHandle(_T("pvz.dll")),//钩子函数所在的模块
                            dwThreadId);//窗口线程ID
}

 

你可能感兴趣的:(DLL注入)