进程间通信之困惑

   简单的暴力枚举破解密码。程序是一个文本框,一个按钮,一个标签,标签显示当前状态,OK表示密码正确,wrong表示密码错误。程序标题logoin,文本框类Edit,按钮标题登录。

   破解程序主要代码如下:

 HWND window=::FindWindow(NULL,"logoin");
    HWND edit=::FindWindowEx(window,NULL,"Edit",NULL);
  HWND button=::FindWindowEx(window,NULL,NULL,"登录");
  int flag=1;
   Sleep(100);
  CString pw;
       CString  pw2;
  int i,j,k;
  i='a';
  j='b';
  k='c';
  for(i='a';i<='z'&&flag;i++)
  for(j='a';j<='z'&&flag;j++)
  for(k='a';k<='z'&&flag;k++)
  {
   pw.Format("%c%c%c",i,j,k);
    ::SendMessage(edit,WM_SETTEXT,0,(LPARAM)(pw.GetBuffer(0)));
  Sleep(800);
 ::PostMessage(
   button,      // handle of destination window
  WM_LBUTTONDOWN,      // message to send
  0X00000001,  // first message parameter
  0X00160020   // second message parameter
  );
 Sleep(400);
 ::PostMessage(
   button,      // handle of destination window
  WM_LBUTTONDOWN,      // message to send
  0X00000001,  // first message parameter
  0X00160020   // second message parameter
  );
::PostMessage(
   button,      // handle of destination window
  WM_LBUTTONUP,      // message to send
  0X00000001,  // first message parameter
  0X00160020   // second message parameter
  );
  HWND wd=::FindWindowEx(window,NULL,NULL,"OK"); 
  Sleep(1000);
     if(wd)
  {
   pw2=pw;
   flag=0;
   goto l;

  }
 //  else
     // wd=::FindWindowEx(window,NULL,NULL,"WRONG"); 
  }
l:;
     AfxMessageBox("密码破译成功:"+pw);

 

你可能感兴趣的:(c,null,button,破解)