Async's blog - 微信
type: channel
link: https://blog.async.website/index.php/tag/%E5%BE%AE%E4%BF%A1/
items: 微信6.6.6 EnMicroMsg.db提取

微信6.6.6 EnMicroMsg.db提取
type: item
date: 2018-05-09T23:54:00+00:00
description: 0x00.ADB 提取MicroMsg文件夹挂载系统分区并定位至/data/data/com.tencent.mm/MicroMsg 使用ADB指令将MicroMsg以沙盒方式提取至本地： adb pull /data/data/com.tencent.mm/MicroMsg X:\0x01.获取EnMicroMsg.db密码在MicroMsg文件夹下找到EnMicroMsg.db数据库文件，该文件是加密文件，无法直接打开。 经过逆向分析得出，该数据库密码是一字符串的md5值，具体算法如下： 密码=md5（IMEI+uin），其中uin与登陆的微信账号对应。 在MicroMsg文件夹下找到system_config_prefs.xml，其中name=default_uin的整数值便是uin值。 在手机拨号盘中输入*#06#获取手机对应IMEI码，由此可得： IMEI=354XXX77972179 Uin= -154XXX3212 密码计算公式为该字符串的32位md5码的前7位。 md5(354XXX77972179-154XXX3212,32)= 4ffcbXXXXX71a722XXXXXeb0a3fa 计算完毕后使用由SQLCipher 2.1版本编译运行查看器（经尝试，只有2.1版本的源码编译后可以实现嵌套加密功能，低于2.1版本无此功能，高于2.1版本不向下兼容）尝试解密数据库。0x02.EnMicroMsg下常用表解释0x001.Rcontact 列名 username Alias Conremark Nickname 解释 对应的联系人微信账户实际ID 对应联系人的微信账户显示ID 用户对联系人的备注 对应联系人的昵称 0x002.Chatroom 列名 chatroomname Memberlist Displayname Roomowner Selfdisplayname 解释 对应聊天群ID 聊天群成员微信实际ID 聊天群成员显示昵称 聊天群房主实际ID 该用户在所在聊天群中的自我备注 0x003.message 列名 issend Creattime Talker Content 解释 布尔值为0表示收到消息，布尔值为1标识发出信息 表示对话创建时间 对话发生的对象 消息内容