首 页论 坛破解QQ密码领免费QQ秀QQ等级修改盗取QQ教程QQ密码暴力破解QQ空间完整做法免费开所有QQ业务
设为首页
加入收藏
联系我们
您当前的位置:下载者 -> 编程设计 -> 文章内容
栏目导航
· QQ文章 · 综合文章
· 安全文章 · 新闻动态
· 实用技巧 · 入侵检测
· 木马病毒 · 电脑常识
· 编程设计 · 网络技术
相关文章

木马编程DIY之系统服务
用编程的方法突破NT安全机制..
一个简单的端口扫描编程序题..
编程窃取Outlook Express6 邮..
Visual C++编程窃取QQ密码
编程实现停止瑞星监控delphi..
Visual C++编程窃取QQ密码
编程实现重起网卡等设备
用VB编程监控CPU的资源状况
微软大学生编程竞赛开幕 冠军..
10岁学编程 拥有19项专利的女..

编程制作管理员登陆报警器
发布时间:2008-3-19 12:37:32

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

“自己动手,丰衣足食”的时候又来了。搞个思路吧: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 <vcl.h>前先定义#define _WIN32_WINNT 0x0501,要不是的话编译时会提示找不到WM_WTSSESSION_CHANGE定义(具体原因是在winuser.h 中,_WIN32_WINNT必须是大于 0x0501系统才定义了WM_WTSSESSION_CHANGE)。最后,在程序退出前,要告诉系统不要再发消息过来了:WTSUnRegisterSessionNotification。

程序做出来后,我给它起名:Hacker RUN! 中文名:黑客快跑。
[] [打 印] [收 藏]
下一篇文章:404挂马 + 杂谈 + AD
关于本站 网站帮助 广告合作 下载声明 友情连接 网站地图 联系站长
如果您对本站有任何建议或意见,请联系站长,感谢您对本站一如既往的支持!
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030