首页 | QQ空间 | QQ个性 | QQ技术 | QQ宠物 | QQ游戏 | QQ贺卡 | QQ下载 | QQ皮肤 | QQ场景 | QQ头像 | QQ表情 | QQ桌面 | QQ乐园 | QQ搞笑 | QQ工具
QQ技术首页QQ新闻 - QQ技巧 - QQ知识 - QQ安全指南 - QQ病毒与木马 - QQ攻击与防范 - QQ密码与号码
→您现在的位置: 中国QQ天空 >> QQ技术 >> QQ安全 >> QQ密码与号码 >> 文章内容

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

更新时间:2006-4-12 20:17:16 

我的本意是写个暴力破解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代表一个字节,余者类推。

相关推荐
  • 此栏目下没有推荐文章
  • 精彩推荐
    :::::: 收藏本站关于我们版权申明联系我们广告服务友情链接网站地图 ::::::
    © CopyRight 2006 - 2008, QQskycn.com, Inc. All Rights Reserved
    鄂ICP备06009991号