VC dll 注入之钩子注入

这篇博客介绍了如何使用C++和MFC创建一个DLL,通过键盘钩子(HookProc)来注入并监听特定键盘事件。当按下HOME键时,DLL会在目标进程中显示一个窗体,而按END键则隐藏它。文章详细讲解了SetWindowsHookEx函数的使用,以及如何找到目标窗口(这里是计算器)并获取其线程ID。在DLL退出时,需要正确释放资源以避免目标进程崩溃。
摘要由CSDN通过智能技术生成

  C++只是个菜鸟,最近学习了下DLL注入,是通过hook方式来注入的。暂且不扯,新建个MFC dll,let's go。

首先得需要几个函数:

           HHOOK SetWindowsHookEx( 
                                        int idHook,         //要安装的钩子类型 (参考下面的IdHook取值)
                                        HOOKPROC lpfn,   //钩子过程的指针 ,也即拦截到指定系统消息后的预处理过程,须定义在DLL中,
                                        HINSTANCE hMod,    //应用程序实例的句柄 如果是全局钩子, hInstance是DLL句柄(DllMain中给的模块地址。就是包含HookProc的动态库加载地址。否则给0就可以了,即勾自己。 
                                        DWORD dwThreadId;   //要安装钩子的线程ID ,指定被监视的线程,如果明确指定了某个线程的ID就只监视该线程,此时的钩子即为线程钩子;如果该参数被设置为0,则表示此钩子为监视系统所有线程的全局钩子。);

 

          LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)//钩子回调函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值