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!软件实现环境为VC++6.0,WINDOWQS 2000 SERVER操作系统,赛扬667,30G硬盘,128M内存

OICQ登录号码清除器实现原理相关推荐

  1. java面试 拦截器问题_面试必问:给我说一下Spring MVC拦截器的原理?

    拦截器是每个Web框架必备的功能,也是个老生常谈的主题了.本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原理. 重要接口及类介绍1. HandlerExecutionCh ...

  2. 面试:给我说一下Spring MVC拦截器的原理?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/namaQ ...

  3. 面试官:给我说一下 Spring MVC 拦截器的原理?

    前言 SpringMVC是目前主流的Web MVC框架之一. 拦截器是每个Web框架必备的功能,也是个老生常谈的主题了. 本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原 ...

  4. SpringMVC→拦截器、SpringMVC拦截器实现、多个拦截器工作原理、拦截器使用场景、拦截器Interceptor与过滤器Filter区别

    拦截器 拦截器实现 多个拦截器工作原理 拦截器使用场景 请求编码设置及请求登录Session校验 使用时间段设置 拦截器Interceptor与过滤器Filter区别

  5. 谷歌验证器的原理及JS实现

    阅读本篇文章你可以了解到谷歌验证器的实现原理,并且可以自己使用node.js实现支持谷歌验证器的两步验证. 这两年发现身边的很多应用和网站纷纷支持两步验证,并且呼吁用户使用两步验证. 并且发现,除了A ...

  6. javascript原理_JavaScript程序包管理器工作原理简介

    javascript原理 by Shubheksha 通过Shubheksha JavaScript程序包管理器工作原理简介 (An introduction to how JavaScript pa ...

  7. python装饰器原理-python 中的装饰器及其原理

    装饰器模式 此前的文章中我们介绍过装饰器模式: 装饰器模式中具体的 Decorator 实现类通过将对组建的请求转发给被装饰的对象,并在转发前后执行一些额外的动作来修改原有的部分行为,实现增强 Com ...

  8. python装饰器原理-python装饰器的原理和使用

    一.最简单的装饰器 装饰器是python中很基础也很实用的一个特性.通过装饰器我们可以很方便地为一些函数添加相同的功能.我们以测量函数运行时间为例来讲一讲python装饰器的运行原理. 1.使用装饰器 ...

  9. Flask实战2问答平台-登录限制(装饰器)

    我们来解决上一文章说到的,为登录不能点击发布问答功能 (一)先写一个装饰器 装饰器教程参考廖雪峰教程 http://t.cn/RK0SaGl from functools import wraps # ...

  10. 深度学习入门之感知器(原理+代码)

    感知器的原理:感知器的原理相当简单,当线性可分的时候就是中学的时候学过的y=kx+b,只不过中学的时候k和b都是给出的,给我们x让我们去求y,看看y是在这条直线的上方还是下方.而现在没有给我们k和b, ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 西安邮电大学 - AI小布丁
  2. 灰度图像阈值化分割常见方法总结及VC实现
  3. php随机产生4位的验证码
  4. 硬件:实用的电脑维护小常识
  5. C语言进阶——全局变量
  6. C++编程基础一 27-二维数组
  7. 推荐制作精良的笔记软件Wire Note 应用键盘钩子技术获取即时数据 资料查阅的好工具 建立代码片段数据库...
  8. spring 的延迟加载
  9. Spring bean的作用域有哪些?
  10. 常用思维模式大全(上)
  11. ipv6有必要打开吗_IPV4 VS IPV6 谈谈省级ipv6的必要性
  12. PHP后端连接数据库插入数据
  13. 计算语言学(CL)与自然语言处理(NLP)
  14. zip压缩到指定目录
  15. 数码相机和单反相机有什么区别?(已解决)
  16. Django 创建第一个项目
  17. Exploit编写教程2:跳转的多种姿势
  18. 两所澳门顶尖高校基金与芯耀辉合作,共同促进产业和技术发展
  19. hyper-v上安装群晖DSM5提示格式化磁盘失败解决方法
  20. java毕业设计慢性病管理(附源码、数据库)

热门文章

  1. vs 2017官网下载、QT下载
  2. 捕鱼达人 FishMaster 记录(Done)
  3. Android基于腾讯云的小直播开发步骤
  4. 如何下载java JDK文档
  5. JAVA后端开发常用的Linux命令总结
  6. 【原创】CSS3动画总结对比 / 带思维导图 / 启发小案例
  7. python 电力系统时域仿真_电力系统暂态计算_时域仿真方法
  8. 中科院分区 计算机科学与技术专业就业前景,2020年中科院分区(升级版)最新数据分析...
  9. php使用ffmpeg转录网络直播流,使用FFmpeg转录网络直播流
  10. 模糊PID控制算法的C++实现