电脑教程网  
| 电脑入门教程 | 操作系统教程 | 电脑优化教程 | 多媒体教程 | 网站制作教程 | 数据库教程 | 办公软件教程 | 电脑硬件教程 | 电脑作图教程 | 软件开发教程 | 组网技术教程 | 网络安全教程 | 网络编程教程 | 网络运营教程 | 病毒防治教程 | 应用软件下载 |
  当前位置:主页>电脑知识技术>文章内容
监视程序运行得钩子程序
来源: 作者: 发布时间:2007-11-23  
您正在看的电脑技术荟萃是:监视程序运行得钩子程序。

老是觉得钩子很深奥,最近研究了一下,这是我得代码,可以监视哪些程序被运行以及被销毁。

这是钩子得头文件

#ifndef EXEHOOKAPI
#define EXEHOOKAPI __declspec(dllimport)
#endif
#define USER_MSG  WM_USER+1
#define UC_APPSTART  0x80000001
#define UC_APPDESTROY 0x80000002

EXEHOOKAPI BOOL WINAPI SetHook(HWND hExe);

这是cpp文件

#include <windows.h>
#define EXEHOOKAPI __declspec(dllexport)
#include "ExeHook.h"

#pragma data_seg("shared")
HHOOK g_hProc =NULL;
HWND g_hForm = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:shared,rws")
// DLL¾ä±ú
HINSTANCE g_hInstDLL = NULL;
//LRESULT CALLBACK HookedShellProc(int nCode, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK HookedShellProc(int nCode, WPARAM wParam, LPARAM lParam)

 switch(nCode)
 {
 case HSHELL_WINDOWCREATED:  
  PostMessage(g_hForm,USER_MSG,UC_APPSTART,LPARAM(wParam));
  break;
 case HSHELL_WINDOWDESTROYED:  
  PostMessage(g_hForm,USER_MSG,UC_APPDESTROY,LPARAM(wParam));
  break;
 }
 return CallNextHookEx(g_hProc, nCode, wParam, lParam);
}

BOOL WINAPI SetHook(HWND hwndExe)
{
 BOOL bRet;
 if(hwndExe)
 { 
  g_hForm=hwndExe;
  g_hProc=SetWindowsHookEx(WH_SHELL, (HOOKPROC) HookedShellProc, g_hInstDLL, 0);

  bRet = (g_hProc!=NULL);
 }
 else
 {
  bRet=UnhookWindowsHookEx(g_hProc);
  g_hProc=NULL;
  g_hForm=NULL;
 }
 return bRet;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
  if (fdwReason == DLL_PROCESS_ATTACH)
    g_hInstDLL = hinstDLL;
  return TRUE;
}

 

 



(阅读次数:
上一篇:传神自动登陆研究   下一篇:没有了
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Bjarne Stroustrup谈系统设计的
·一个程序员如何月进万金的?
·站长必读:Web创业的10条戒律
·一个好的软件开发人员不仅仅是精
·狂热+坚持=成功 博客园CEO DUDU
·周末闲侃:论J2EE程序员的武功修
·让程序员立于不败之地的七种武器
·程序员需要研究厚黑学吗?
·C++爱好者必读
·谈程序开发中的人格因素
·什么程序员最易找工作? 十大热门
·你是否想知道 如何进入程序设计
  相关文章
·传神自动登陆研究
·关于查找QQ发送窗口的问题
·BCB的未来发展发方向
·成功要素之我见
·《操作系统概念(第六版)》 第
·Python线程编程的两种方式
·PLC、DCS、FCS三大控制系统的特
·由面试想到的(转载)
·linux下php使用gettext开发多语
·删除到回收站
·PHP中,使用template,如何把自
·在RICHEDIT中插入图片
123   最新推荐
计算机教程网