安卓微信数据库解密_C/C++代码_BlackFeather'S Blog

安卓微信数据库解密

C/C++代码 blackfeather

 

微信聊天记录备份恢复助手正式发布!

微信聊天记录恢复助手 软件下载地址http://www.fenloger.com/  同时支持安卓和苹果设备哦!~

 

刚刚开通了群,欢迎各位加入参与互动讨论与问题反馈!!群号:330726869

 ///////////////////////////////////////// /////////////////////////////////////////

 

 正文开始:

 

1.uin怎么获取?

这个uin不是登录的帐号,而是属于内部的、程序界面上不可见的一个编号。

至于查看,最简单的方法就是登录web微信后,按F12打开网页调试工具,然后ctrl+F搜索"uin",可以找到一串长长的URL,里面的uin就是当前登录的微信的uin。

 

2.串号和uin怎么都正确的怎么还是没办法解密

先说说串号这个玩意,几个热心的朋友反馈了这个问题,经过博主测试发现不同的手机使用的不一定是IMEI,也可能是IMSI等等,而且串号也不一定是标准的15位,可能是各种奇葩,比如输入*#06#出来的是一个,但是在微信程序里用的却是另一个非常奇葩的东西,这种情况多在双卡双待和山寨机中出现,经过严格的测试,现在已经能做到精确识别,那几位热心的朋友也赠与了不同的代码表示鼓励。

 

3.计算出来了正确的key为什么无法打开数据库文件

微信这个变态用的不是标准的sqlite数据库,那个帖子也提到了不是数据库加密,是文件的内容加密,其实是sqlcipher。官方上竟然还卖到149$,不过倒是开放了源码,水平够高的可以自己尝试编译。google还能搜索到sqlcipher for windows这个很好编译,不过博主不知是长相问题还是人品问题,编译出来的无法打开微信的数据库,后来改了这份代码才完成。这里为了方便各位测试查看,我提供一个小工具:

点击下载:SQLCipher数据库查看器

4.数据库文件内容是加密的,怎么还原

这个是某些特殊情况下用到的,比如聊天记录删除了数据库中就没了,但是某个网友测试说数据库无法查询出来了,但是在文件中还是有残留的。这个情况我没测试过,不过想想感觉有这个可能,就跟硬盘上删除了文件其实就是删除了文件的硬盘索引,内容还是残留在硬盘上可以还原一样,sqlite数据库删除的条目只是抹去了索引,内容还存在这个文件中。

网上的都是直接打开读取,并没有解密还原这个文件成普通的sqlite数据库,使用sqlcipher的导出方法也只是将可查询的内容导出。后来博主花了时间通读了内容加密的方式,做了一个小程序将加密的文件内容直接解密,不操作修改任何数据,非数据库转换,直接数据流解密,完全还原出来了原始的未加密数据库文件,大小不变,无内容损失,可以直接用sqlite admin等工具直接打开。

 

 

 

 

 

5.已经删除的聊天内容可以恢复么

通过上述第4的方式还原出原数据后,经测试可以恢复。sqlite的删除并不会从文件中彻底删掉,而是抹掉索引,所以可以通过扫描原始文件恢复。前提是没有重装过微信。。。

 

 

各位还有什么问题可以留言继续补充,帮助各位解决问题。

联系博主请点击页面最上方的红色按钮。

 

评论列表:

steelarmor
博主您好,请问“把加密内容直接解密的小程序”能共享一下吗,谢谢。
blackfeather
搜索fenlog软件,有一个微信助手,带有完全解密的功能。
blackfeather2015/12/15 14:54:14 回复
steelarmor2015/12/12 9:42:26 回复
charlesh
我就是单纯的来感谢楼主的
charlesh2014/10/20 15:47:05 回复
administration
最近在研究这个,请给一份QQ/微信的代码,不胜感激,fujiahua@qq.com
fenlog
请点击页面顶部链接联系博主
fenlog2014/4/27 0:29:00 回复
administration2014/4/25 21:32:54 回复
wa
能共享一下将加密数据库导出成明文数据库的工具么
wa2014/3/18 16:21:15 回复
午夜飘雪
楼主, 那个UIN 在CompatibleInfo.cfg 还是systemInfo.cfg中? 哪个地方?怎么得到啊?
午夜飘雪2014/2/2 20:17:56 回复
roger
博主 key是用什么算法计算的 能否略微指点下
blackfeather
仔细看本文第一行的内容和链接。
blackfeather2014/1/15 13:16:27 回复
roger2014/1/14 11:19:15 回复
E朦胧
SQLCipher数据库查看器 的下载链接失效了,能重新上传一下吗?谢谢。
blackfeather
已经修复了。因为备份还原的时候360压缩出了问题导致这个文件没有正确的解压出来,垃圾软件。。。
blackfeather2013/12/26 10:01:45 回复
E朦胧2013/12/25 18:44:52 回复
无法打开
我用了博主的方式和网上流传的dos命令获取的key是一样的,但是用博主共享的sqlcipher软件还是无法打开数据库,我不知道自己究竟哪里出了错,苦恼,不知道是不是微信5.03改变了key的算法
blackfeather
算法没变
blackfeather2013/11/7 17:35:03 回复
无法打开2013/11/7 15:13:55 回复
无法打开数据库文件
4.计算出来了正确的key为什么无法打开数据库文件 ?

博主你好,
请问一下怎么解决官方下载的源代码编译,不能打开微信的数据库,能方便给一个思路吗?

现在调试微信的数据库时,发现微信数据库文件的前16字节的salt是2*8的重复,不知是什么原因。
大师指点下
请问博主如下打印的cfg里哪个是uin,我试了都不对唉,从web网页飞信取到的uin和imei结合起来md5也都不对唉,请指点下

CompatibleInfo.cfg {
258=354960050015079,
259=samsungGT-I8268: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls: ARMv7 Processor rev 0 (v7l): 7: PXA988: 0000000000000000,
256=A35496005001507}

systemInfo.cfg {
17=0,
34=270000,
16=1381447873,
1=-1846960212,
32=,
2=6,117.135.171.159,2048|9,140.206.160.179,4024|9,140.206.160.179,4024|17,101.226.76.175,2048|17,101.226.76.175,2048|,
18=6a34903464d6f3e273fc404f552b1b2a,
3=6,117.135.171.194,2048|9,140.206.160.215,2048|9,140.207.54.36,2048|17,101.227.131.105,2048|17,101.226.76.145,2048|,
33=600000,
6=8080:443:80,
7=5:5,
25=long.weixin.qq.com,
24=short.weixin.qq.com}
w
525738C1
是这个么,另外想问下你是怎么转出这种格式来的,。。
w2013/10/14 18:02:09 回复
496715493
能知道一下怎么转换出来吗?qq496715493
4967154932014/12/25 16:28:15 回复
大师指点下2013/10/12 10:32:27 回复
chonour
求楼主获取一个设备下所有UIN的方法,或者给一点点思路,膜拜!
chonour2013/10/10 0:53:08 回复
hkey
博主,我又发现了一种可以获知uin的渠道,就是微信公众平台。登录微信公众平台后,就可以从网页代码中获知每个粉丝的uin值,代码中把它叫fakeid,我对比了下和我先前找到的uin值一模一样
hkey
我说错了,代码中叫id,在粉丝列表页面查看
hkey2013/10/11 22:13:29 回复
hkey2013/10/6 1:22:25 回复
数据库小拿
测试了一下,UIN和IMEI都拿到(通过.cfg拿到)不过用博主说的方法MD5出来取前七位不能打开数据库。还有micromsg里面的用户目录(就是一大串数字那个)用MM+UIN的方式md5出来也不对啊?

另外不知道博主有没有研究过5.0的方法变动过了吗?一直担心变化过不敢升级。
blackfeather
那是你操作过程中有错误。。。微信5.0跟4.x版本加密一模一样
blackfeather2013/9/19 16:38:59 回复
大神请指教

cfg里怎么拿到uin的,imei很明显,uin我试了几个都不对?
大神请指教2013/10/12 12:20:02 回复
博主看看
跟楼主一样,试了借个貌似的uin md5后都不对,到底哪个是uin?
博主看看2013/10/12 12:22:09 回复
nmweizi
如何从cfg中拿到的uin,可以指导一下吗?
nmweizi2013/10/16 23:48:24 回复
继续烦恼
cfg其实是个java的hashmap流,简单地写个java程序读回就行了。如果你懂点java就很容易搞定的。如果不懂的话,解释起来也比较困难。
继续烦恼2013/12/12 11:42:36 回复
lxwhw
uin的获取方法: data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml中uin=后面的数值就是
lxwhw2014/6/17 15:20:43 回复
数据库小拿2013/9/19 7:56:53 回复
妮梅德赫赫
哇 膜拜楼主
妮梅德赫赫2013/9/10 22:31:25 回复
v
楼主这个“WEB在线版本的安卓聊天记录查看” 出了么
blackfeather
已经出了,我在写操作说明,明天就贴出来,注册送金币~
blackfeather2013/8/29 0:22:35 回复
v
期待,在线等。。。
v2013/8/29 20:21:16 回复
v2013/8/28 23:30:48 回复

发表评论: