名称:
密码:
 
 

在线[IP]地址查询

熊猫卫士病毒检测

电脑系统木马检测

电脑系统端口扫描

更多...

军团作品|下载中心|安全竞赛|教学站点|黑客论坛|邮箱登陆|军团电台|分站申请|设置首页|加入收藏
   
 
你的位置:首页 > OICQ攻略 > OICQ技巧 > 正文 >

QQ本地加密方法

文章作者:摘自:     文章来源:军团论坛     发布时间:2005-08-17 08:55:07

下面说明QQ本地的加密文件结构和加密算法的问题。QQ本地密码文件保存在文件ewh.db中,加密方式是MD5和简单位变换的结合。

1)、密码文件结构。

 

密码文件结构可以表示如下:

struct file_ewh.db

{

FileHeader *header; //文件头

FileBlock *blocks; //文件块数组

        }

文件的图形结构如下:
 

文件头

文件块一

文件块二

……

下面我们就分别分析文件头和文件块的结构。

<!--[if !supportFields]-->1<!--[endif]-->、文件头。

文件头共6字节,第一字节固定为51(‘Q’),第二字节固定为44(‘D’),第三、四字节都为01。第5个字节开始的16位数据表示文件块的个数。

<!--[if !supportFields]-->2<!--[endif]-->、文件块。

文件块的结构如下:

struct FileBlock

{

int8 type; //块的类型(QQ里面只使用了47两种)

int16 nameLen; //块名字的长度

int8 name[nameLen];//块的名字

int32 dataLen; //块数据长度

int8 data[dataLen];//块数据

}

为了方便,这里的int8代表一个字节,余者类推。

实际例子:

某个QQ的密码文件的数据如下:

00000000: 51 44 01 01 03 00 04 03 00 bd af a8 04 00 00 00

00000010: c9 6a 09 00 07 03 00 b9 ab b4 10 00 00 00 0f c5

00000020: e9 d4 31 15 2f 12 c4 1c 0a 46 95 90 db 98 04 03

00000030: 00 a9 b5 b2 04 00 00 00 69 f4 aa 02

总共60个字节。

 

看的出来,文件中有3块,类型分别为474。后面要说的,7代表密码块。

 

2)QQ的加密算法

 

ewh.db里面保存了密码加密后的结果。其中,第一个数据块的数据是密码进行MD5加密的轮次,第二个数据块是加密后的结果。

 

其加密过程简单的描述如下:

 

<!--[if !supportFields]-->1<!--[endif]-->、设密码为m[],加密轮次为n

<!--[if !supportFields]-->2<!--[endif]-->for(i=0; i<n; i++)

//上面文件中的n=0x96ac9;

{

m = MD5(m);

}

<!--[if !supportFields]-->3<!--[endif]-->for (i=0; i<16; i++)

{

//al在这里指的是密码块数据的长度

//上面的文件中al=10h;

m=(!m)^al;

}

 

3)、一点补充

 

上面例子中的ewh.db密码文件的第3个文件块(最后的4个字节)的数据内容是密码文件对应的QQ号码。

 

实践:如何离线看本地电脑的聊天纪录?

其实很简单,把你的QQ的密码文件的最后4字节修改成别人的QQ号码,然后,拷贝这个文件到别人的号码的目录下覆盖它的密码文件就可以了。当然了,登陆的密码就是你自己的QQ密码了。

 
  
】【打印】【关闭
中国第八军团 防范黑客攻击技术交流平台
最新热点
最新推荐
|
|
|
|
|
copyright©1999-2005 第八军团 All rights reserved