明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

OICQ登錄號(hào)碼清除器完成原理

[摘要]OICQ已經(jīng)成為現(xiàn)在這個(gè)網(wǎng)絡(luò)世界中最為時(shí)尚的聊天、即時(shí)通訊工具了!對(duì)于它,許多程序員都寫了些相關(guān)小工具,像一些OICQ聊天輔助工具、OICQ密碼獲取器、聊天記錄查看器等等,分別用作于不同的用途。其時(shí)...
    OICQ已經(jīng)成為現(xiàn)在這個(gè)網(wǎng)絡(luò)世界中最為時(shí)尚的聊天、即時(shí)通訊工具了!對(duì)于它,許多程序員都寫了些相關(guān)小工具,像一些OICQ聊天輔助工具、OICQ密碼獲取器、聊天記錄查看器等等,分別用作于不同的用途。
其時(shí),我也對(duì)于QQ這個(gè)好東東比較癡迷,但在使用過程始終發(fā)現(xiàn)有些情況的出現(xiàn)是我所不愿意看到的。比如說:在網(wǎng)吧上網(wǎng),瘋狂QQ后,你的聊天記錄,你的QQ號(hào)碼全部留在了網(wǎng)吧的機(jī)器中。此時(shí),你從網(wǎng)吧離開。又來一位聊QQ者,可能后來的這個(gè)人喜歡搞惡作劇,用一些小工具,把你的QQ號(hào)碼及密碼盜取,為已所用;蛘呖匆恍┠愕牧奶煊涗洠角迥愕碾[私,這顯然不是你所希望的?赡,此時(shí)你會(huì)想 ,這沒有什么,我只要把QQ號(hào)碼那個(gè)文件夾刪除就可以了。是的,這確實(shí)是一個(gè)好辦法,可是這還有一個(gè)問題解決不了,就是你的QQ仍會(huì)留在QQ登錄的對(duì)話框中,那么你該怎么辦?本文就是介紹如何實(shí)現(xiàn)清除登錄號(hào)碼!
我不知道細(xì)心的QQ用戶注意到?jīng)]有,在QQ主目錄下面有一個(gè)DAT文件夾,在此文件夾下有一個(gè)名為OICQ2000.cfg文件。該文件就是存有在本臺(tái)機(jī)器上有多少個(gè)QQ號(hào)碼,每個(gè)號(hào)碼的長(zhǎng)度值,每一個(gè)具體號(hào)碼!下面詳細(xì)介紹一下該文件并講解一下如何用程序?qū)崿F(xiàn)清除!
以下示例是在作者機(jī)器上文件內(nèi)容:(號(hào)碼為作者的QQ號(hào)文件內(nèi)容以16進(jìn)制值表示)
00  00  00  00  00  00  00  01  00  00  00  08  00  00  00  35 33  37 34  38 38 37 36
以上文件內(nèi)容每?jī)蓚(gè)字位為一個(gè)字節(jié)
前9個(gè)字節(jié)是這個(gè)機(jī)器上共有多少個(gè)QQ號(hào),最大值為999999999個(gè)(不少吧)接著三個(gè)字節(jié)為00  00  00 這是分隔符。接著是一個(gè)字節(jié)數(shù)據(jù)08,表示當(dāng)前QQ號(hào)碼的長(zhǎng)度為幾位,為08表示為8位,接著又是分隔符,接著用這長(zhǎng)度值字節(jié)數(shù)來存儲(chǔ)實(shí)際的QQ號(hào)碼的ASCII碼值!如果有多個(gè),就接著在后面存儲(chǔ)分隔符(3字節(jié))、QQ號(hào)碼長(zhǎng)度(1字節(jié))、分隔符(3字節(jié))、實(shí)際號(hào)碼,以此類推………….
示例代碼如下所示:
        struct QQhead
        {
            unsigned char  head[9];//總共有的QQ號(hào)碼數(shù) 9字節(jié)
            unsigned char  spea[3];//分隔符,3字節(jié)
        };  //oicq2000.cfg文件頭結(jié)構(gòu)
        
      QQhead thishead;
                
        //m_filename為要操作的文件名,就是oicq200.cfg,存儲(chǔ)的是QQ的完成路徑
        
        ofile.Open(m_filename,CFile::modeRead,&fe);//打開oicq2000.cfg文件
        
        ofile.Read (thishead.head,9);// 讀出文件頭,QQ號(hào)碼數(shù)
        
                long i,sum=0;
        int number;
        for(i=0;i<8;i++)
        {
            number=thishead.head[i];
            sum=sum+number*10^(7-i);
        }//處理QQ號(hào)碼個(gè)數(shù)
        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<sum;i++)
        {
                    ofile.Read (len,1); //讀出該QQ號(hào)碼長(zhǎng)度;
            ofile.Read (thishead.spea,3); // 讀出分隔符
            number=len[0];
            
            ofile.Read (stritem1,number);
            stritem1[number]='\0';
            CListBox *plist;
            plist=(CListBox *)GetDlgItem(IDC_LIST1);
            str.Format ("%s",stritem1);
            plist->AddString(str); //循環(huán)插入列表,并顯示出來
            
        }
上面這段代碼的是從oicq2000.cfg文件中讀取出所有的QQ號(hào)碼并顯示listbox控件中的功能。相信讀者已經(jīng)看明白了!
當(dāng)然要實(shí)現(xiàn)我所做的軟件的功能,就是在listbox雙擊一條QQ號(hào)就將其從oicq2000.cfg中去除的功能,讀者參考上面的數(shù)據(jù)結(jié)構(gòu)應(yīng)該很快就能完成!
知道了以上原理,那我們就可以寫出如下代碼段來完成從文件中讀取和向文件中存入的程序!(示例代碼為本人所發(fā)布的軟件部分代碼。QQ登錄號(hào)碼清除器是作者本人寫的一個(gè)完全共享的QQ小工具,軟件下載地址為http://free.tsee.net/acehq/Hidenum.exe。也可以CSDN網(wǎng)站注冊(cè)軟件中找到,鏈接地址為http://www.csdn.net/cnshare/soft/10/10135.html!軟件實(shí)現(xiàn)環(huán)境為VC++6.0,WINDOWQS 2000 SERVER操作系統(tǒng),賽揚(yáng)667,30G硬盤,128M內(nèi)存