CULHook::CULHook(LPSTR pszModName, LPSTR pszFuncName, PROC pfnHook)
{
// jmp eax == 0xFF, 0xE0
// 生成新的执行代码
BYTE btNewBytes[8] = { 0xB8, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xE0, 0x00 };
memcpy(m_btNewBytes, btNewBytes, 8);
*(DWORD *)(m_btNewBytes + 1) = (DWORD)pfnHook; m_hModule = ::LoadLibrary(pszModName);
if(m_hModule == NULL)
{
m_pfnOrig = NULL;
return;
}
m_pfnOrig = ::GetProcAddress(m_hModule, pszFuncName); if(m_pfnOrig != NULL)
{
DWORD dwOldProtect;
MEMORY_BASIC_INFORMATION    mbi;
::VirtualQuery( m_pfnOrig, &mbi, sizeof(mbi) );
::VirtualProtect(m_pfnOrig, 8, PAGE_READWRITE, &dwOldProtect); memcpy(m_btOldBytes, m_pfnOrig, 8);
::WriteProcessMemory(::GetCurrentProcess(), (void *)m_pfnOrig, 
m_btNewBytes, sizeof(DWORD)*2, NULL); 

::VirtualProtect(m_pfnOrig, 8, mbi.Protect, 0);
}
}*(DWORD *)(m_btNewBytes + 1) = (DWORD)pfnHook; 这句话什么意思呢?
是把第2 3 4 5这四个字节换掉还是?