Windows网络用户登录密码的猜解

  Windows网络用户密码猜解算法的主要思想是:利用Windows提供的窗口枚举函数EnumWindows ()找到网络登录窗口。利用子窗口枚举函数EnumChildWindows ()或GetNext-DlgTabItem()和GetWindowLong()定位网络登录窗口上的各个控件。利用SendDlgItemMessage()或SetDlgItemText()来输入用户名及密码。利用SendMessage()发送“确定”消息。这样一来,就利用程序完成了整个网络登录过程。在重复这个过程中采用枚举的用户名和密码,进而完成网络用户名及密码的枚举猜解。

  一、猜解过程流程:

  为说明问题,下面只写出主要的过程。对于关键过程给出用VC++实现的源码。下面的流程中Mutex.Lock和Mutex.UnLock之间的代码只允许单线程访问。“密码枚举完”是指用户指定的字符集合已被枚举完,程序将再枚举一个新的用户名,然后重新枚举这个字符集合。关于源码中各函数的具体用法,请参阅MSDN。关于多线程的用法,可参阅《VisualC++技术内幕》。

  下面给出关键流程的源代码(程序流程见图1-1):

  

  1. 全局变量:

struct _Thread
{
CWinThread *pThread;
};
_Thread WindowThread[iProc],PassTread[1],UserTread[1]; )//iProc:窗口枚举线程数
CEvent gEventNextPass;//取下一个密码,为实现同步引进
CEvent gEventPassOk;//已取得密码,为实现同步引进
CEvent gEventNextUser;//取下一个用户名,为实现同步引进
CEvent gEventUserOk;// 已取得用户名,为实现同步引进
CMutex gMutex;//互斥量,只允许单线程访问
char cCurrentPass[MAX_PASSWORD_LENGTH]; file://当前使用的密码。
char cCurrentUser[MAX_USER_LENGTH];//当前使用的用户名

  2. 线程启动:

时间: 2024-10-30 08:49:15

Windows网络用户登录密码的猜解的相关文章

linux-Fedora 用户登录密码正确但无法登陆

问题描述 Fedora 用户登录密码正确但无法登陆 我使用的virtualbox虚拟机安装的Fedora20,但是用户登录时明明密码输入正确,但是提示无法奏效是怎么回事,Linux小白一个,刚准备用,请指教![CSDN移动问答][1]

使用SSH1整合是如何修改用户登录密码的?

问题描述 使用SSH1整合是如何修改用户登录密码的? 解决方案 解决方案二:框架打好之后,在dao层和biz层处理相关业务.修改密码:传入当前用户的id值,拿到用户详细信息,再执行修改就可以了.解决方案三:该回复于2011-05-03 17:01:26被版主删除解决方案四:引用1楼xingfuzhijianxia的回复: 框架打好之后,在dao层和biz层处理相关业务.修改密码:传入当前用户的id值,拿到用户详细信息,再执行修改就可以了. 顶下,这个东西要看你是哪里不懂了,mvc全不懂,那你还是

关于Linux用户登录密码的生成

一.从自动化需求说起 如何生成一个Linux用户登录密码?可能有人会说用passwd生成.的确,passwd命令能够帮助我们重置用户登录密码,但是这并没有解答如何生成一个Linux用户登录密码的疑问. 对于这个问题,秉承着实用主义的精神,我原本也不会去深究.毕竟,安装的时候会设置密码,安装完毕后能通过passwd命令重置密码,学会这两点后已满足一般的需求已经绰绰有余了. 但是,对于自动化而言,知道以上的两点是不够的.Linux的自动化安装过程中,设置用户登录密码这事,肯定不能有人为干预,否则谈什

巧妙清除Windows 2000/XP登录密码

对系统管理员来说,不慎忘记Windows 2000/XP的登录密码是一件非常痛苦的事情,以前还可以利用一下输入法漏洞,但Windows 2000 SP2早已将这一漏洞补好,当然你可以用ERD Commander或O&0 BlueCon 2000来清除密码,可惜这两款软件都是价值不菲的商业软件:或者利用Windows 2000/XP引导软盘,但恐怕大多数朋友是不会制作这张软盘的.再说了,如今的时代,还有多少人会用软盘呀? 这里,笔者向朋友们推荐DreamPackPL,个头儿绝小(才74KB),虽然

忘记Windows XP系统登录密码

  一.利用NET命令 WinXP中提供了"net user"命令,该命令可以添加.修改用户账户信息,其语法格式为: net user [UserName [Password | *] [options]] [/domain] net user [UserName {Password | *} /add [options] [/domain] net user [UserName [/delete] [/domain]] 现在以恢复本地用户"zhangbq"口令为例

oracle修改用户登录密码

1.使用oracle用户登录,连接数据库 [oracle@wuzj ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 26 12:06:29 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected. //查看用户 SQL> select username,password fr

Mac系统怎么更改用户登录密码

  1.点击菜单栏上方的苹果小图标,进入"系统偏好设置" 2.在打开的窗口中,找到"用户与群组" 3.在左侧选中你想要更改密码的账户,在左侧点击"更改密码" 4.输入旧密码和新密码,点击确认就可以修改登录密码了.

linux中ftp用户登录密码忘记了怎么修改

先来熟悉一下 vsftp 命令: 启动vsftp用命令:  1.service vsftpd start  重启vsftp用: 1.service vsftpd restart 添加用户用: useradd -m 111cn, 默认是在/home 目录下建立一个用户111cn, 如果用户存在会有提示. 指定目录用这个命令(useradd -d)如:useradd -d /home/baidu -s /bin/sh 111cn, 然后用语句:passwd 111cn 就可以为新建的用户设置密码.

linux中忘记root用户登录密码解决方法

1.在Grub的引导装载程序菜单上,选择你要进入的条目,键入 "e" 来进入编辑模式: 2.在第二行(类似于kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),键入"e"进入编辑模式: 3.在句末加上"init=/bin/bash",回车: 4.按"b"启动系统. 这样我们即可获得一个bash的shell,进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密