安全黑客
当前位置:安全黑客文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]

赞助商链接



  本文“<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

一.概述

一些重要的程序,必须让它一向跑着;并且还要不时关心它的状况——不能让它呈现死锁现象.当然,假如一个主程序会呈现死锁,必定是计划大概编程上的失误.我们主要做的事是,把这个Bug揪出来.但假如时间紧急,这个Bug又“飘忽不定”,那么,我们还是先写一个软件“看门狗”,暂时应一下急吧.

“看门狗”的需求描写:“看门狗”的运行不呈现界面窗口,具有一定的躲藏性;按时判断目标进程能否运行在当前系统中,假如没有则启动目标进程;判断目标进程能否“没有呼应”,假如是则终止目标进程;假如目标进程“没有呼应”的次数超越一定的数目,则将计算机系统重启.

二.预备知识

首先要介绍两个主要的函数,可以判断目标进程能否“没有呼应”.在User32.dll中(没有文档公开),Win2k/NT下的IsHungAppWindow和Win9X下的IsHungThread;前者是以一个窗口句柄作为参数,后者是以线程ID作为参数.我们可以通过VC开辟工具的Depends查到这两个函数.

要利用这两个函数,我们必须先动态导入,以下:

if (m_hUser32 == NULL)
{
   m_hUser32 = GetModuleHandle("USER32.DLL");
}
if (m_hUser32)
{
   m_IsHungNT = (HUNG_FUNNT) GetProcAddress(m_hUser32, "IsHungAppWindow");
   m_IsHung9X = (HUNG_FUN9X) GetProcAddress(m_hUser32, "IsHungThread");
}

别的,还有以下知识点:

1.  若何让窗口躲藏(当然通过Windows任务管理器还是可以看到的)

在框架窗口类的PreCreateWindow中改正窗口吻概,以下:


  以上是“<b>软件看门狗:别让你的程序没有呼应</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • HP智能管理中心FaultDownloadServlet信息泄露漏洞
  • Palo Alto Networks的防火墙到一个新的水平
  • LTE带来了新的安全问题,电信运营商
  • iPhone的Multi-Touch技术的MacBook在10月?
  • McAfee的SmartFilter管理服务器SFAdminSrv.exe JBoss的RMI远程执行代码Vulnerabilty
  • Oracle表格识别CroScPlt.dll ActiveX控件远程代码执行Vulnerabilty
  • Oracle的WebCenter表格识别Sssplt30.ocx ActiveX控件远程代码执行Vulnerabilty的
  • RealNetworks公司的RealPlayer IVR MLTI块长度解析远程代码执行漏洞
  • HP Data Protector的笔记本电脑扩展策略服务器LogBackupLocationStatus远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本扩展策略服务器LogClientInstallation远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本扩展GetPolicies远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本电脑扩展策略服务器RequestCopy远程SQL注入Vulnerabilty
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .