⊕ 网站首页 ⊕注册会员 ⊕ 本站免费电影 ⊕ 留言板 ⊕ 繁體中文
iPhone 3GS 8GB套餐选购多少速度才够用 SD存储卡不再有疑惑 AMD VISION技GPU很有用 Musemage图像再见,QQ!保护隐私,从挑战QQ开始QQ和360并存同时使用的方Windows 7的“上帝模式”风靡office的QQ应用大盘巧妙去除QQ游戏大厅广告
我的本意是写个暴力破解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代表密码块。 ewh.db密码文件的第3个文件块的数据内容是密码文件对应的QQ号码。就是最后的4个字节的内容。 大家可以随便分析一下,看看文件结构是否符合。
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 |
Copyright © 2007 - 2009 chenpeng123.com All Rights Reserved 本站所有文章,软件等均来自网络收集,不代表本站观点,仅供学习和研究使用。如有侵犯您的版权,请联系我们,本站将立即删除。 鲁ICP备07014697号 你是本站第 位访客