|
且行且远
“数量”奖 “质量”奖 国内共享软件的风气不好,也不用多说了,常接触新软的人都知道,早就风气是从什么时候开始变坏的了,或许根本就没有好过吧。不想把这个原因上升到什么国民的劣根性上去谈,尽管有人以前从这个角度谈过。问题出在哪里?或许没有人能够真正说的清,媒体、破解组织,等等,或许都是原因,或许也都不是原因。但问题是现状已经形成,而似乎也没有人能够相信这种这种风气能够正过来吧…… 工行虽然对hotspot的漏洞做了屏蔽,但是漏洞没有吗? 昨天深夜在宿舍看了《父子》,郭天王的演技确实是没得说,把一个不愿工作、不愿负责,却什么事情都觉得是别人亏欠自己的这么一个父亲形象演绎的栩栩如生,看影片的时候,我始终想被什么东西感动,始终期待有什么东西能够感动我,却总是感动不了,只觉得胸中很堵,许多东西想要发泄却无从发泄,就算是阿宝咬掉了周长胜的耳朵的时候,胸中却仍然是抑郁着浓浓的情感,堵得自己无话可说…… QQ聊天记录文件存储方式解密 最近花了几天时间跟踪了一下“QQ聊天记录查看器 5.3 华军版”,总算把聊天记录的存储方法弄清了。大家不要笑我,只是好奇而已,呵呵。 1.聊天记录存储方式 MsgEx.db采用Storage结构化存储。关于Storage复合文档的知识请查阅Microsoft相关文档,我们不做赘述。 大家可以用VC自带的DocFile View工具查看该文件的内容,可以看到文件结构大致如下:
|—-MsgEx.db
| |—-C2CMsg | |—-QQ号码 | |—-Data.msj | |—-Index.msj | |—-IMInfo | |—-info.dat | |—-Matrix | |—-Matrix.db | |—-SysMsg | |—-10000 | |—-Data.msj | |—-Index.msj | |—-DiscMsg | |—-GroupMsg | |—-MobileMsg |———TempSessionMsg 消息内容都存储在每个号码下面的Data.msj中,通过Index.msj索引。消息内容是经过加密处理的,必须经过解密才能看到。 2.解密方法 消息内容采用BlowFish分组加密。每8个字节为一个分组。密钥Key通过QQ号码生成,具体算法稍后讨论。 解密方法: a.取前8个字节,通过BlowFish解密, 得到decryptKey; b.decryptKey与后面8个字节XOR,对结果再进行一次BlowFish解密; c.将decryptKey与前8个字节XOR,得到第一组结果。 d.decryptKey与后面8个字节XOR,重复b,c两步。 e.最终全部数据解密完毕。 最后会剩下一组8字节无法解密,这个实际上是冗余数据,似乎是用来作为校验。 3.以上解密时,BlowFish的密钥是一个全局公用密钥Key。Key要通过QQ号码生成,具体步骤是: a.将QQ号码进行MD5变换,得到Md5Key b.取Matrix.db的数据,对其进行解码。简单说一下Matrix.db文件的结构: 将得到的CRK字段作为pData。 c.用Md5Key对pData进行BlowFish解密,得到全局密钥Key 4.以上讨论的都是本地聊天记录没有加密的情况。如果选择了加密,没有密码是肯定解不出来滴,大伙就不用费心了。 后记: 在分析过程中参考了牛人nbw和blowfish的帖子,小弟获益匪浅,在此一并致谢。 http://bbs.pediy.com/showthread.php?threadid=29098 http://bbs.pediy.com//showthread.php?threadid=862&goto=nextoldest |
|
||