利用debug钩子拦截全局钩子,经典反黑客技术

网友投稿 327 2022-10-23


利用debug钩子拦截全局钩子,经典反黑客技术

利用debug钩子拦截全局钩子,经典反黑客技术

// 键盘钩子消息处理过程LRESULT CALLBACK DebugProc ( int nCode, WPARAM wParam, LPARAM lParam ){ if ( nCode == HC_ACTION ) {  PDEBUGHOOKINFO pDebugHookInfo = (PDEBUGHOOKINFO)lParam ;  switch ( wParam )  {  case WH_KEYBOARD:  case WH_MOUSE:   {    // 如果钩子不是由当前DEBUG钩子所在线程安装    // 就直接返回非0值,取消钩子函数过程调用    if ( pDebugHookInfo->idThread != pDebugHookInfo->idThreadInstaller )     return 1 ;   }   break ;  } } // 继续传递消息 return CallNextHookEx ( hDebug, nCode, wParam, lParam ) ;}

BOOL WINAPI SetHook ( BOOL isInstall ) { // 需要安装,且钩子不存在 if ( isInstall && !hDebug ) {  // 设置全局钩子  hDebug = SetWindowsHookEx ( WH_DEBUG, (HOOKPROC)DebugProc, 0, GetCurrentThreadId() ) ;  if ( hDebug == NULL )   return FALSE ; }

// 需要卸载,且钩子存在 if ( !isInstall && hDebug ) {  // 卸载钩子  BOOL ret = UnhookWindowsHookEx ( hDebug ) ;  hDebug = NULL ;  return ret ; }

return TRUE ;}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈Java数据结构之稀疏数组知识总结
下一篇:如何理解国标GB28181视频平台EasyGBS调用直播接口的serial参数?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~