用vc++穷举windows应用程序密码

用vc++穷举windows应用程序密码

ID:41010673

大小:42.73 KB

页数:30页

时间:2019-08-13

用vc++穷举windows应用程序密码_第1页
用vc++穷举windows应用程序密码_第2页
用vc++穷举windows应用程序密码_第3页
用vc++穷举windows应用程序密码_第4页
用vc++穷举windows应用程序密码_第5页
资源描述:

《用vc++穷举windows应用程序密码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用vc++穷举windows应用程序密码 摘  要:本文采用visualc++ 编程, 利用多线程技术,对所有windows窗口进行遍历,发现密码窗口,然后向密码窗口发送消息,模拟人工键盘输入,穷举所有可能密码来以便达到查找正确密码的目的。关键词:VisualC++、GetPassword、EnumWindows、Synchronism、EnumChildWindows、EnumPassword、MultiThread 一、引言   随着计算机信息技术的发展,人们越来越重视信息的安全性,信息数据的安全保密已经成为影响计算机发展的一个重要课题。机密文件、商业情报、银行账号、网络

2、密码、科技成果、包括私人信件等等,都成了用户为难以存放发愁的心病。密码可以说是他们的唯一的精神寄托,通过密码,他们可以对这些信息进行加密,或者通过密码对用户存取信息进行授权,非法用户禁止存取有关信息。但是有了密码,用户也不能高枕无忧,因为密码都是人工键入的,都是由键盘的可见字符组成(包括汉字),如果一个非法用户不幸猜中了你的密码,哪怕只有千万分之一的几率,也会给你的数据安全带来潜在威胁,而不光会污染你的数据,丧心病狂的人甚至会在瞬间摧毁你苦心经营多年的成果。更何况现在有了电脑作为工具,它可以在一分钟之间穷举成千上万个密码,利用局域网分布式计算,一个小时内穷举十位以下的所有密码

3、,更不幸的是我们的用户所用的密码都是出奇的易记(击),他们偏好单用数字和字母,这为他们数据安全埋下了危机。本文正是通过引用一个穷举密码的例子来提醒用户,在密码问题上不要大意,密码要求尽可能长,而且不要鄙视非数字和非字母字符,密码要定期更换。动态密码,相对更为安全。 二、实现原理:    我们的用户一般都过输入密码的经历,一般情况下系统都会显示一个对话框,提醒用户输入密码,密码编辑框一般具有ES_PASSWORD 风格,用户输入完成后,要求按《确定》按钮确认,如果密码正确,系统就会开始工作,否则系统会提示你密码错误,要求按《确定》按钮重新输入。无论我们运用鼠标的技能有多高,如果

4、我们想在短时间内穷举所有可能密码,根本不现实。但是高速运行的计算机可以做到。    我们可以通过编程,利用WindowsAPI 函数EnumWindows 和EnumChildWindows对当前运行的所有程序的所有窗口(包括子窗口即控件)进行遍历,通过窗口标题查找密码输入和出错确认重新输入窗口,通过按钮标题查找我们应该单击的按钮,通过ES_PASSWORD 查找我们需要键入的密码窗口。    我们可以通过向密码输入窗口发送WM_SETTEXT消息模拟输入密码,通过向按钮窗口发送WM_COMMAND消息模拟单击。所有这一切我们可以把它放在一个线程内运行,我们用户可以随时暂停、

5、随时中断退出。我们可以在枚举密码的过程中,把密码保存在一个文件中,以便下次接着下一个序列的密码再次穷举。直到找到密码为止。找到密码后,由于不再出现密码输入窗口,程序虽然仍在继续枚举窗口,但由于找不到对应窗口,不会发送任何消息。我们打开记录文件推算前一个序列的密码即可找到对应的密码。   枚举密码的方法有多种,这跟密码的组成有关,如果你忘记了你的wps2000 的文件密码,而且你确切知道密码由数字组成,你就可以采用数字穷举,当然程序还提供了其它穷举方法,包括大写字母、小写字母、大小写混合、字母数字、标点符号字母数字组合等等。每一种穷举方法都有进度记录保存,下次穷举不用从头开始,

6、字符个数从一位到多位自动增长。你可以通过编辑配置文件setup.ini控制穷举进度,尤其是当你知道密码的某一位确切为某一个字符时,或者确切知道密码有几位时,通过修改当前密码(退出程序情况下),可以大大加快穷举速度,以便短时间内找回那根遗忘的神经,唤醒那存储密码的神经元细胞。三、具体细节:◆进程和线程    Windows应用程序有一个或多个进程组成。所谓进程,用最简单的术语说就是装入内存并准备运行的可执行的程序。进程是资源分配的独立单位.进程具有动态、并发、独立等特点。进程具有就绪、执行、堵塞三种基本状态,win32中的每个进程都有自己的私有虚拟地址空间,进程有代码、数据和进

7、程中的线程可用的其他系统资源组成,每个进程都由单线程开始,并可创建新的线程和其他进程。    在一个进程中运行着一个或多个线程,线程是操作系统分配处理器时间片的最小单位,一个线程可以执行进程中的任何一部分代码,包括当前被其他线程执行的部分。线程能独立执行程序代码的任何部分,共享虚拟地址空间并能访问全局变量和进程系统资源。各个线程根据其调度优先级分配CPU,线程具有进程的许多特征,又称为轻量级的进程。由于线程基本上不拥有系统资源,仅占有一点在运行中不可缺少的资源(机器寄存器、内核堆栈、线程环境块和用户堆栈

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。