通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 技术文章 >> 网络知识 >> 文章正文
QQ2004 sp1加密文件结构和加密算法分析
责任编辑:stef   更新日期:2005-7-6
 
作者:冲出宇宙(lotusroots)


我的本意是写个暴力破解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数据块中的数据(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层指针)。
  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月10日发布 每日计算机病毒及木马播报
    普通文章 mobi域名卖出61万美元天价 专家提醒切忌跟风
    普通文章 腾讯推出数字证书服务 网购支付添新"保镖
    普通文章 波音787控制系统发现安全问题
    普通文章 微软08年1月安全公告仅两个内容
    普通文章 杀毒厂商转攻移动安全市场
    普通文章 CP Secure使灰名单将垃圾邮件挥之而去
    普通文章 破坏应用程序 U盘成病毒藏身地
    普通文章 保护您的数据 六招实战EFS加密文件系统
    热门文章
    普通文章提醒:“求职信”病毒1月6日发作
    普通文章两条“蠕虫”蠢蠢欲动
    普通文章5“网银大盗”狂盗储户14万 武汉男子被判10年
    普通文章“木马事件”终告结束 英语学习网重获新生
    普通文章搜索引擎不再喜欢新米,并非只是CN米
    普通文章蠕虫"威金"新变种 "小熊猫"屠宰多个计算机系统
    普通文章元旦上网谨防“Real蛀虫” 通过视频文件传播
    普通文章入侵工具Knark的分析及防范
    普通文章认清本质 计算机病毒防治常遇问题
    普通文章饶过现代Anti-Rookit工具的内核模块扫描(ZT)
    精彩专题