void hook_everything() { // hook everything we might need realExitProcess = nCodeHook.createHookByName("kernel32.dll", "ExitProcess", newExitProcess); realOpenFile = nCodeHook.createHookByName("kernel32.dll", "OpenFile", newOpenFile); realCreateFileA = nCodeHook.createHookByName("kernel32.dll", "CreateFileA", newCreateFileA); realCreateFileW = nCodeHook.createHookByName("kernel32.dll", "CreateFileW", newCreateFileW); realReadFile = nCodeHook.createHookByName("kernel32.dll", "ReadFile", newReadFile); }
BOOL CPageTestExeApp::InitInstance() { // hook winsock WinsockInstallHooks(); // hook wininet WinInetInstallHooks(); GDIInstallHooks(); // InitCommonControlsEx() is required on Windows XP if an application // manifest specifies use of ComCtl32.dll version 6 or later to enable // visual styles. Otherwise, any window creation will fail. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // Set this to include all the common control classes you want to use // in your application. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // hook the browser wndProc (to supress crashes) #ifndef DEBUG if( !_DispatchMessageW ) _DispatchMessageW = dispHook.createHookByName("user32.dll", "DispatchMessageW", DispatchMessageW_hook); #endif if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } // Initialize OLE libraries if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); SetRegistryKey(_T("AOL")); //LoadStdProfileSettings(4); // Load standard INI file options (including MRU) // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CPageTestExeDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CPageTestExeView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Dispatch commands specified on the command line. Will return FALSE if // app was launched with /RegServer, /Register, /Unregserver or /Unregister. if (!ProcessShellCommand(cmdInfo)) return FALSE; // The one and only window has been initialized, so show and update it m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; }