| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 系统安全首页 | 漏洞分析 | 入侵检测 | 升级补丁 | 安全配置 |
编程制作管理员登陆报警器
编程制作管理员登陆报警器
作者:Tuuzed(土… 文章来源:Tuuzed(土仔) 点击数: 更新时间:2008-3-25 10:06:06

  某日,你“偶然”登陆到了一台服务器上,在确认管理员不在后,开始在服务器上做起一些见不得人的事来。但,这时的你一定不是“心定定”,你或许是在想:万一这时有用户登陆进来怎么办?如果有什么程序能在有用户登陆进来时提醒一下,那该多好。

  “自己动手,丰衣足食”的时候又来了。搞个思路吧:WIN32系统离不开消息,有人登陆应该会给个消息;得到消息了,判断是什么人登陆;根据登陆用户的权限做出反应。

  用户登陆系统给什么消息?查MSDN,系统会在用户登陆或断开时发出WM_WTSSESSION_CHANGE的消息,通过它附带的参数,可以判断出是登陆或是断开。其中WTS_CONSOLE_CONNECT、WTS_REMOTE_CONNECT、WTS_SESSION_LOGON十分有用。

  如何通过消息判断登陆用户是谁?还是在WM_WTSSESSION_CHANGE消息中,带有另一个参数:登陆者的session ID。将session ID传入API函数WTSQuerySessionInformation中可以查询到User Name。

  如何判断用户权限?获取的User Name传入API函数NetUserGetInfo中,利用带出的USER_INFO_1结构中的usri1_priv得到权限标识。

  下面是利用C++Builder做demo的核心代码:

  首先在Form建立时加入语句:WTSRegisterSessionNotification(frmMain->Handle, NOTIFY_FOR_ALL_SESSIONS),告诉系统有Session消息时通知Form。记住要传入的是主Form的Handle,而不是 Application的Handle(BCB用户应该知道区别)。

  然后在.H中重载void __fastcall WndProc(Messages::TMessage &Message);在.CPP中实现它:

  void __fastcall TfrmMain::WndProc(Messages::TMessage &Message)

  {

  if (Message.Msg==WM_WTSSESSION_CHANGE)

  {

  switch (Message.WParam)

  {

  case WTS_CONSOLE_CONNECT:

  //控制台登陆,报警。

  break;

  case WTS_CONSOLE_DISCONNECT:

  break;

  case WTS_REMOTE_CONNECT:

  //有远程连接,报警。

  break;

  case WTS_REMOTE_DISCONNECT:

  break;

  case WTS_SESSION_LOGON:

  //用户登陆了,报警。

  break;

  case WTS_SESSION_LOGOFF:

  break;

  case WTS_SESSION_LOCK:

  break;

  case WTS_SESSION_UNLOCK:

  break;

  default:

  //unknown

  }

  }

  }

  在C++ Builder编制程序的时候,一定要在#include 前先定义#define _WIN32_WINNT 0x0501,要不是的话编译时会提示找不到WM_WTSSESSION_CHANGE定义(具体原因是在winuser.h 中,_WIN32_WINNT必须是大于 0x0501系统才定义了WM_WTSSESSION_CHANGE)。最后,在程序退出前,要告诉系统不要再发消息过来了:WTSUnRegisterSessionNotification。

  程序做出来后,我给它起名:Hacker RUN! 中文名:黑客快跑。(呵呵,好名字)

文章录入:小张    责任编辑:小张 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    揭密Windows Server 200
    WindowsServer2003ID分析
    修改hosts文件 封杀不良
    新手Windows入侵教程
    解决Windows更新失败
    XP windows目录精简指南
    一招病毒木马拒之门外
    关于Linux下时间编程的问
    在网络安全中起重大作用
    Windows核实激活木马 Sy
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有