第一个参数hwnd是父窗口的句柄,可以为NULL,第二个参数lpOperation表示行为,第三个参数lpFile是程序的路径名,第四个参数lpParameters是给所打开程序的参数,可以为NULL,第五个参数lpDirectory可以为NULL,第六个参数nShowCmd跟ShowWindow函数的第二个参数一样,作用也一样,如果打开的程序有窗口的话,这个参数就指明了窗口...
(3)阻塞处理方法 WINSOCK在调用处于阻塞时进入一个叫“Hook”的例程,它负责处理Windows消息,使得Windows的消息循环能够继续。WINSOCK还提供了两个函数(WSASetBlockingHook()和WSAUnhookBlockingHook())让用户能够设置和取消自己的阻塞处理例程。另外,函数WSAIsBlocking()可以检测调用是否阻塞,函数WSACancelBlockingCall()可以...
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;}/// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)/// 目标: 处理主窗口的消息。/// WM_COMMAND - 处理应用程序菜单// WM_PAINT - 绘制主窗口// WM_DESTROY - 发送退出消息并返回///LRESULT CALLBACK WndProc(HWND hWnd, UINT message,...
39ShowWindow(hWnd, SW_SHOW); 40UpdateWindow(hWnd); 41 42returnTRUE; 43} 过程如下:首先注册窗口类,然后设定gpInitWnd=自己,创建CBTHook,创建窗口,销毁CBTHook,设定gpInitWnd=0,最后显示窗口。 CWindow的WndProc如下: 1LRESULT CALLBACK CWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l...
以下都可以后台(不会显示在任务栏,不会显示在任务管理器的应用程序)一、MFC不要窗口(进程还是会有)二、注册成windows服务(进程还是会有)(windows服务是正统的后台)(以下任务管理器进程也看不到,反正就是找不到)三、DLL远程注入 四、hook 五、shellcode注入到任一程序 ...
AfxHookWindowCreate(this); //返回父窗口的句柄 return pWnd->GetSafeHwnd(); } void CDialog::PostModal() { //取消窗口创建前链接的HOOK AfxUnhookWindowCreate(); // just in case //MFC对话框对象和对应的Windows对话框窗口分离 Detach(); // just in case ...
//HOOK过程_AfxCbtFilterHook用子类化的方法 //取代原来的窗口过程为AfxWndProc。 if (CreateDlgIndirect(lpDialogTemplate, CWnd::FromHandle(hWndParent), hInst)) { if (m_nFlags & WF_CONTINUEMODAL) { // enter modal loop DWORD dwFlags = MLF_SHOWONIDLE; ...
//链接一个HOOK到HOOK链以处理窗口创建, //如同4.4.1节描述的CWnd类窗口创建一样 AfxHookWindowCreate(this); //CreateDlgIndirect间接调用::CreateDlgIndirect, //最终调用了::CreateWindowEX来创建对话框窗口。 //HOOK过程_AfxCbtFilterHook用子类化的方法 //取代原来的窗口过程为AfxWndProc。 if (CreateDlgIndir...
嗯,隐藏程序运行,说白了就是隐藏进程。要隐藏进程的话其实还是有很多种类的,底层的且不说,比较简单的实现方法是 创建远程线程(CreateRemoteThread),还有API Hook等。我这里简略讲讲远程线程的实现原理。首先枚举你想要创建远程线程的那个进程,其实哪个都不会太大关系的。举例如"smss.exe",不过这个是...
intcode,WPARAMwParam,LPARAMlParam) { return1; } longCALLBACKMouseProc(intcode,WPARAMwParam,LPARAMlParam) { return1; } BOOLCALLBACKLockKeyboard(BOOLbDisable) { if(bDisable) { if(keyboardHook==NULL) { keyboardHook=SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)KeyboardProc,hInst,NULL);