资源简介

修改代码,随意hook窗口,监控窗口事件。

资源截图

代码片段和文件信息

/***************************************************************
Module name: HookInjEx.cpp
Copyright (c) 2003 Robert Kuster

Notice: If this code works it was written by Robert Kuster.
Else I don‘t know who wrote it.

Use it on your own risk. No responsibilities for
possible damages of even functionality can be taken.
***************************************************************/

#include 

#include “resource.h“
#include “..\HookInjEx_DLL\HookInjEx_DLL.h“

//-----------------------------------------------
// global variables & forward declarations
//
HWND hStart; // handle to start button

BOOL CALLBACK MainDlgProc (HWNDUINTWPARAMLPARAM);


//-----------------------------------------------
// WinMain
//
int APIENTRY WinMain(HINSTANCE hInstance
                     HINSTANCE hPrevInstance
                     LPSTR     lpCmdLine
                     int       nCmdShow)
{
hStart = ::FindWindow (“Shell_TrayWnd“NULL); // get HWND of taskbar first
hStart = ::FindWindowEx (hStart NULL“BUTTON“NULL); // get HWND of start button

// display main dialog 
::DialogBoxParam (hInstance MAKEINTRESOURCE (IDD_WININFO) NULL MainDlgProc NULL);

return 0;
}


//-----------------------------------------------
// MainDlgProc
// Notice: dialog procedure
//
BOOL CALLBACK MainDlgProc (HWND hDlg // handle to dialog box
   UINT uMsg      // message
   WPARAM wParam  // first message parameter
   LPARAM lParam ) // second message parameter
{
static int bChecked = false;

switch (uMsg) {

case WM_INITDIALOG:
::SetTimer( hDlg 101 300 NULL );
return true;

// if running more instances of HookInjEx 
// keep their interface consistent
case WM_TIMER:
bChecked = (IsDlgButtonChecked( hDlg IDC_BUTTON ) == BST_CHECKED);
if( g_bSubclassed && !bChecked) {
::CheckDlgButton( hDlg IDC_BUTTON BST_CHECKED );
::SetDlgItemText( hDlg IDC_BUTTON “Unmap Dll“ );
}
else if (!g_bSubclassed && bChecked) {
::CheckDlgButton( hDlg IDC_BUTTON BST_UNCHECKED );
::SetDlgItemText( hDlg IDC_BUTTON “Inject Dll“ );
}
break;

case WM_COMMAND:
if( !g_bSubclassed) {
InjectDll( hStart );
if( g_bSubclassed ) 
::SetDlgItemText( hDlg IDC_BUTTON “Unmap Dll“ );
}
else {
UnmapDll();
if( !g_bSubclassed ) 
::SetDlgItemText( hDlg IDC_BUTTON “Inject Dll“ );
}
break;

case WM_CLOSE:
if( g_bSubclassed ) 
UnmapDll();

::EndDialog (hDlg 0);
break;
}

return false;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6473  2003-07-22 14:58  HookInjEx_DLL\HookInjEx_DLL.cpp
     文件        3977  2003-04-11 00:38  HookInjEx_DLL\HookInjEx_DLL.dsp
     文件         733  2003-04-21 18:22  HookInjEx_DLL\HookInjEx_DLL.h
     目录           0  2003-07-22 14:58  HookInjEx_DLL\
     文件        2590  2003-04-22 07:22  HookInjEx\HookInjEx.cpp
     文件        3951  2003-04-11 00:38  HookInjEx\HookInjEx.dsp
     文件         766  2001-01-06 16:22  HookInjEx\HookInjEx.ico
     文件        3266  2003-04-21 21:57  HookInjEx\HookInjEx.rc
     文件         591  2003-04-21 21:57  HookInjEx\resource.h
     目录           0  2003-07-22 14:58  HookInjEx\
     文件         860  2003-04-11 01:08  HookInjEx.dsw

评论

共有 条评论