WEB开发网
开发学院软件开发VC 用vc++穷举windows应用程序密码(上) 阅读

用vc++穷举windows应用程序密码(上)

 2009-04-09 20:04:20 来源:WEB开发网   
核心提示: pParam 为传递给工作者线程函数的入口参数, nPriority 创建优先级别可以使用SetThreadPriority设置,用vc++穷举windows应用程序密码(上)(4),默认值为THREAD_PRIORITY_NORMAL dwCreateFlags 创建标志0为创建后立即

pParam 为传递给工作者线程函数的入口参数。

nPriority 创建优先级别可以使用SetThreadPriority设置,默认值为THREAD_PRIORITY_NORMAL

dwCreateFlags 创建标志0为创建后立即运行,若为CREDTE_SUSPEND,创建后处于挂起状态。

在工作者线程函数中,执行return 语句或者执行AfxEndThread函数将导致线程运行终止。

我们可以通过设置CWinThread 对象的成员变量和成员函数来对线程进行控制。

m_bAutoDelete为true ,表示线程终止后自动销毁。

m_hThread    表示当前线程句柄。

ResumeThread 使挂起线程恢复运行

SuspendThread挂起运行线程

SetThreadPriority设置线程的运行优先级

其他成员请参考MFC 类库和MSDN帮助文档。

◆同步对象

由于系统为了提高穷举效率,采用了多线程编程,以便加快模拟输入响应速度,在尽可能短的时间内得到真正的密码。

由于线程之间共享进程资源,这样就会带来同步的问题。譬如,由于多个线程并发地存在于系统之中同时运行(时间片轮转),可能会存在这样的情况,两个线程都在修改窗口密码编辑框文本,前一个线程修改后还未来得及按《确定》按钮,另一个线程又修改了窗口的文本,造成前一个密码文本丢失,导致穷举密码不全,可能穷举失败。一个线程正在向密码编辑框填写文本,而另一个线程又在改写该文本,这样会导致前一个线程无法辨识究竟用的是哪一个版本的密码文本。会导致重复穷举或者残缺穷举,甚至系统死锁。

为了保证进程或线程能够按照一定的顺序推进向前执行,windows 提供了一组等待函数和同步对象用于控制同步。包括信号灯、互斥量、事件、临界区。同步的思想很简单,如果一个线程遇到一个信号变量无信号时,它能使自己处于睡眠状态一旦有了信号系统会唤醒线程,使线程接着执行。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:vc 穷举 windows

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接