OICQ登入號碼清除器實現原理 (轉)

gugu99發表於2008-08-05
OICQ登入號碼清除器實現原理 (轉)[@more@]OICQ登入號碼清除器實現原理
   
        OICQ已經成為現在這個世界中最為時尚的、即時通訊工具了!對於它,許多員都寫了些相關,像一些OICQ聊天輔助工具、OICQ密碼獲取器、聊天記錄檢視器等等,分別用作於不同的用途。
其時,我也對於qq這個好東東比較痴迷,但在使用過程始終發現有些情況的出現是我所不願意看到的。比如說:在上網,瘋狂QQ後,你的聊天記錄,你的QQ號碼全部留在了網咖的機器中。此時,你從網咖離開。又來一位聊QQ者,可能後來的這個人喜歡搞惡作劇,用一些小工具,把你的QQ號碼及密碼盜取,為已所用。或者看一些你的聊天記錄,探清你的,這顯然不是你所希望的。可能,此時你會想 ,這沒有什麼,我只要把QQ號碼那個夾刪除就可以了。是的,這確實是一個好辦法,可是這還有一個問題解決不了,就是你的QQ仍會留在QQ登入的對話方塊中,那麼你該怎麼辦?本文就是介紹如何實現清除登入號碼!
我不知道細心的QQ注意到沒有,在QQ主目錄下面有一個DAT資料夾,在此資料夾下有一個名為OICQ2000.cfg檔案。該檔案就是存有在本臺機器上有多少個QQ號碼,每個號碼的長度值,每一個具體號碼!下面詳細介紹一下該檔案並講解一下如何用程式實現清除!
以下示例是在作者機器上檔案內容:(號碼為作者的QQ號檔案內容以16進位制值表示)
00  00  00  00  00  00  00  01  00  00  00  08  00  00  00  35 33  37 34  38 38 37 36
以上檔案內容每兩個字位為一個位元組
前9個位元組是這個機器上共有多少個QQ號,最大值為999999999個(不少吧)接著三個位元組為00  00  00 這是分隔符。接著是一個位元組資料08,表示當前QQ號碼的長度為幾位,為08表示為8位,接著又是分隔符,接著用這長度值位元組數來實際的QQ號碼的ASCII碼值!如果有多個,就接著在後面儲存分隔符(3位元組)、QQ號碼長度(1位元組)、分隔符(3位元組)、實際號碼,以此類推………….
示例程式碼如下所示:
 struct QQhead
 {
 unsigned char  head[9];//總共有的QQ號碼數 9位元組
 unsigned char  spea[3];//分隔符,3位元組
 };  //oicq2000.cfg檔案頭結構
 
      QQhead thishead;
 
 //m_filename為要操作的檔名,就是oicq200.cfg,儲存的是QQ的完成路徑
       
 ofile.Open(m_filename,CFile::modeRead,&fe);//開啟oicq2000.cfg檔案
 
 ofile.Read (thishead.head,9);// 讀出檔案頭,QQ號碼數
 
                long i,sum=0;
 int number;
     for(i=0;i<8;i++)
 {
 number=thishead.head[i];
 sum=sum+number*10^(7-i);
 }//處理QQ號碼個數
 number=thishead.head[8];
 sum=sum+number;
 CString str,stritem,leng;
 unsigned char len[1];
 
 char stritem1[99];
            number=0;
 ofile.Read (thishead.spea,3); // 讀出分隔符
        for(i=0;i {
         ofile.Read (len,1); //讀出該QQ號碼長度;
 ofile.Read (thishead.spea,3); // 讀出分隔符
 number=len[0];
 
 ofile.Read (stritem1,number);
 stritem1[number]=';
 CListBox *plist;
 plist=(CListBox *)GetDlgItem(IDC_LIST1);
 str.Format ("%s",stritem1);
 plist->AddString(str); //迴圈插入列表,並顯示出來
   
 }
上面這段程式碼的是從oicq2000.cfg檔案中讀取出所有的QQ號碼並顯示listbox中的功能。相信讀者已經看明白了!
當然要實現我所做的的功能,就是在listbox雙擊一條QQ號就將其從oicq2000.cfg中去除的功能,讀者參考上面的資料結構應該很快就能完成!
知道了以上原理,那我們就可以寫出如下程式碼段來完成從檔案中讀取和向檔案中存入的程式!(示例程式碼為本人所釋出的軟體部分程式碼。QQ登入號碼清除器是作者本人寫的一個完全共享的QQ小工具,軟體地址為。也可以CSDN網站註冊軟體中找到,連結地址為!軟體實現環境為VC++6.0,WINDOWQS 2000 SERVER操作,賽揚667,30G,128M

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1008541/,如需轉載,請註明出處,否則將追究法律責任。

相關文章