HOOKPROC是什么东西,理解不了?(cwindowshook)

HOOKPROC是什么东西,理解不了?

SetWindowsHookEx 是设置一个钩子的函数,它把你定义的一个钩子,安装到视窗钩子链里去。 例如键盘输入钩子,例如鼠标输入钩子。 HOOKPROC 是一种变量类型,后面填具体的函数名,该函数返回HOOKPROC。 HINSTANCE 是视窗规定的一种变量类型(属一种句柄),指向一个应用程序实例(handle to application instance) 提示你要另写一个具体的函数: LRESULT CALLBACK my_mouse(int nCode, WPARAM wParam,, LPARAM lParam){ 这里含你钩到的处理。 CallNextHookE... // 回钩子链处理 }

成都创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为石台企业提供专业的成都网站制作、网站建设、外贸网站建设石台网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

进程内API “Hook”应怎么写?

dll包含代码和资源,代码可以执行,资源可以被代码所使用;

dll可以通过window hook或者注册为输入法,被系统自动加载进目标进程;

dll可以用代码主动注入到目标进程(CreateRemoteThread),相当于给它打一针;

dll进入目标进程的时候,dll的DllMain函数(类似于main函数)会被调用,这个时候可以做一些坏事,比如把系统API的入口替换成自己写的,比如替换D3D的一些函数就可以做很多事情;

系统运行过程中,这些API会被不断的调用,这个时候你的代码就可以不断地做坏事了。

怎么在DLL里写全局钩子?

要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,这个函数的原型是HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId);,其中,第一个参数是钩子的类型;第二个参数是钩子函数的地址;第三个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程。如果指定确定的线程,即为线程专用钩子;如果指定为空,即为全局钩子。

其中,全局钩子函数必须包含在DLL(动态链接库)中,而线程专用钩子还可以包含在可执行文件中。

得到控制权的钩子函数在完成对消息的处理后,如果想要该消息继续传递,那么它必须调用另外一个SDK中的API函数CallNextHookEx来传递它。

钩子函数也可以通过直接返回TRUE来丢弃该消息,并阻止该消息的传递。

通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。加载快,运行效率高,具有通用性,这是DLL的重要特点。

到此,以上就是小编对于的问题就介绍到这了,希望这3点解答对大家有用。

分享标题:HOOKPROC是什么东西,理解不了?(cwindowshook)
文章链接:http://www.hantingmc.com/qtweb/news35/400585.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联