您的位置:首页 > 编程语言 > Java开发

java解密手机QQ聊天记录

2016-01-31 13:20 381 查看
转载链接:http://blogjava.sinaapp.com/?p=38

手机QQ聊天记录需要手机root才可以获取到,这是个鸡肋,但是网上还有许多想解密的,还有收费的。如果查小三,估计可以有这么大的手笔。

经过网上的资料和自己对大量数据的测试,现在知道解密的方式了。

手机单卡常规手机,数据加密方式为待加密数据按位与手机IMEI循环进行异或加密,如果数据为中文,只对中文数据中的第三位按位异或加密。

手机如果为双卡手机,加密数据的密钥(先这么叫这吧)就不是IMEI了,而是手机的设备id,也就是mediaID,这个非中文字符加密还是和上面一样,中文加密和上面稍微有些区别,第三位也是异或加密,只不过第二位也需要异或加密,这两位加密的密钥有些变化。因为mediaID含有非数字字符,也就是英文字母,IMEI是全数字的。非中文说过了,和上面一样;中文如果碰到密钥中的数字部分,解密也和上一样;如果中文碰上英文字母,加密的时候,第二位就需要和0x01异或,第三位需要和字母的16进制数值减去0x40结果进行异或。

以上前提是知道手机的IMEI或者mediaID(手机聊天记录获取不算的),如果不知道(丢失或者其他,你懂得),我们可以怎么样处理呢?首先我们要知道加密数据的明文,这不可能吧,知道还解密什么。不是的,是可以知道一部分的,首先聊天记录的QQ号是知道的,因为它的命名就是QQ.db,QQ指的是QQ号。然后db文件中有seluin字段,就是指的这个QQ号了,这两个异或一下,就可以生成该QQ号长度的IMEI码了(或者mediaID,注意是该QQ号长度),这个残缺的IMEI码有可能就是我们揭开整个秘密的钥匙,通过残缺的IMEI我们就可以暴力解密其中的数据了,QQ分组名称,QQ用户名,QQ昵称,QQ辅助账号(多数为手机号码和邮箱账号,通过辅助账号就可以搜索QQ好友,辅助账号也可以设置成主显账号)。

以上只是得到了残缺的IMEI和残缺的数据,怎么能解密全部数据呢,再就是利用数据库中的辅助账号,这个可以通过搜索QQ号得到(貌似只有好友才能看到辅助账号),通过辅助账号就可以解密出完整IMEI码了。当然这里的辅助账号最好是邮箱,不要是手机号码,因为手机号码只是11位,解密出的IMEI码也是残缺的11位,邮箱的长度基本就够了。

我们实在是得不到辅助账号呢,别忘了我们有残缺的IMEI码,剩下的几位你可以去手工一位一位测试(IMEI为15位,mediaID为14位,不过mediaID里有英文字符,够你玩的了)。再就是靠运气,也就是社会工程学的部分内容了。

案例:
http://bbs.kafan.cn/thread-1828632-1-1.html
卡饭的孙居士把自己的手机聊天记录发到论坛了,想找人解密,完全不知道个人隐私的重要性,我们下载下来,暴力破解一番,已经拿下他残缺的小菊花了,得到了残缺的IMEI码,然后看看解密的残缺数据,看到了他的一个好友的辅助账号,这里是前9位,推测是名字的开头字母缩写+QQ号+@+某某邮箱,这里试了4次(qq.com,vip.qq.com,等等),得到了完整的邮箱,也就是辅助账号了,进而得到IMEI,进而解密整个聊天记录文件,至此他的菊花已被完全攻入,不知道他在不在打着冷战,浑身一激灵。

附图一张,孙海恒居士,就不爆手机号了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: