首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
QQ2004 sp1加密文件结构和加密算法分析
来源:www.caiyihao.com 作者:lotusroots 发布时间:2004-12-23  

QQ2004 sp1加密文件结构和加密算法分析

我的本意是写个暴力破解QQ本地密码的程序,不过,现在才发现QQ好恶心,循环加密了n(n>60000)次。东西还是能写出来的,不过,可能需要很长时间才能算出一个短密码了。唉!回去再看看自己写的MD5算法,看看什么地方可以大幅度改进的。再不行的话,就看看能不能写成万台机器联机的形式,这个可能需要从解密算法上入手了。

好了,不讲什么废话了,下面说明QQ本地文件加密的问题。QQ本地密码文件保存在文件ewh.db中,加密方式是MD5和简单位变换的结合。

一:密码文件结构。

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

struct file_ewh.db
{
FileHeader *header; //文件头
FileBlock *blocks; //文件块数组
}

文件的图形结构如下:

___________________________________
| | | | |
|文件头|文件块一|文件块二|....... |
| | | | |
-----------------------------------

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

1.文件头。

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

2.文件块。

文件块的结构如下:
struct FileBlock
{
int8 type; //块的类型(QQ里面只使用了4和7两种)
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块,类型分别为4,7,4。后面要说的,7代表密码块。
大家可以随便分析一下,看看文件结构是否符合。

二:QQ的加密算法

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

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

1)设密码为m[],加密轮次为n;
2)for(i=0;i<n;i++) //第2个数据块中的数据(int32)就是加密轮次
//上面文件中的n=0x96ac9;
{
m=MD5(m);
}
3)for(i=0;i<16;i++)
{
m[i]=(!m[i])^al;//al在这里指的是密码块数据的长度
//上面的文件中al=10h;
}

后记,QQ的加密算法和加密文件其实就这么简单。由于本人第一次实际分析程序(以前只有理论水平),所以,花了3到4天才分析清楚,分析的汇编函数可能有30-40多个吧,反正写的笔记都有20多页了(A4的纸张),还打印了16张代码。

另外,数据块的名字也是加密过的(算法类上),上面的例子中的3个块的名字分别为:"AST"、"EWH"和"UIN"。其实我还分析出了一些QQ的内存里面类的结构,只是没有什么大用处,但我还是明白了加深类的层次将给解密者带来极大的痛苦(QQ文件在内存中表示的有4层指针)。

一点补充:

写的时候太匆忙,忘记说完了。

ewh.db密码文件的第3个文件块的数据内容是密码文件对应的QQ号码。就是最后的4个字节的内容。

常常有兄弟问怎么离线看本地电脑的聊天纪录。其实很简单,把你的QQ的密码文件的最后4字节修改成别人的QQ号码,然后,拷贝这个文件到别人的号码的目录下覆盖它的密码文件就可以了。当然了,登陆的密码就是你自己的QQ密码了。

(这种方式想必没有杀毒软件检查的出来吧?哈哈,想起上次一个兄弟修改了QQ来看本地聊天纪录,结果被杀毒软件认为是QQ病毒!郁闷死他了!)


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·在windows server 2003系统中得
·DISCUZ2上传漏洞分析,上传漏洞变
·IPB2注入漏洞的深入利用
·记一次渗透空间服务器的艰难之旅
·NBSI注入分析跟踪报告(MSSQL篇)
·用Winsock实现对网站数据库的数
·利用对方服务器漏洞远程注册DLL
·PHP+MySQL注入导出文件的新发现
·黑客攻击Solaris系统DNS服务
·phparticle 2.0注入漏洞测试分析
·我是这样走进韩国机器的
·入侵闪客帝国Flashempire
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved