dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>C/C++技术资料>文章内容
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<sum;i++)
    {
          ofile.Read (len,1); //读出该QQ号码长度;
      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); //循环插入列表,并显示出来
      
    }
上面这段代码的是从oicq2000.cfg文件中读取出所有的QQ号码并显示listbox控件中的功能。相信读者已经看明白了!
当然要实现我所做的软件的功能,就是在listbox双击一条QQ号就将其从oicq2000.cfg中去除的功能,读者参考上面的应该很快就能完成!
知道了以上原理,那我们就可以写出如下代码段来完成从文件中读取和向文件中存入的程序!(示例代码为本人所发布的软件部分代码。QQ登录号码清除器是作者本人写的一个完全共享的QQ小工具,软件下载地址为http://free.tsee.net/acehq/Hidenum.exe。也可以CSDN网站注册软件中找到,链接地址为http://www.csdn.net/cnshare/soft/10/10135.html!软件实现环境为V6.0,WINDOWQS 2000 SERVER,赛扬667,30G硬盘,128M内存

 

 

上一篇:如何模拟《WORD》的窗口形式   下一篇:用VC 6.0实现串行通信的三种方法
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言数组排序小结
·Python 与 C++ 程序的简单实例对
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
·C++初学者应该关心的优秀图书一
·利用C语言小程序来解决大问题
·用C语言写PHP扩展的步骤
·用C语言扩展PHP功能
  相关文章
·如何模拟《WORD》的窗口形式
·用VC 6.0实现串行通信的三种方法
·获取有关显示器、鼠标及系统的配
·FMD开发文集 -- CArchive原理
·VC下打印机的使用
·Windows下实时行式打印系统设计
·利用WebBrowser控件创建自己的浏
·VC编程实现文本语音转换
·用VC存取数据库中的大对象
·用Sockets接收和转换数字和字符
·利用模板技术简化VC中的代码
·如何自动截获输出到打印机的文本
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763