一种安卓系统微信聊天记录解密方法技术方案

技术编号:17008372 阅读:366 留言:0更新日期:2018-01-11 04:25
本发明专利技术公开了一种安卓系统微信聊天记录解密方法,其步骤为:S1:找到手机内“com.tencent.mm”目录;S2:遍历微信帐号目录数目;S3:找路径为“\cdn\cdninfo.txt”的文件,或者找“cdndnsinfo”目录中的文件;S4:根据S4的文件找到UIN;S5:获取微信使用手机的IMEI;S6:通过获取到的UIN字符和IMEI字符计算得到7位字符的解密密码。本发明专利技术的有益效果如下:快速准确的找到微信数据库解密密钥,对安卓微信聊天记录进行解密,可完整恢复加密数据,帮助警方破案,减少受害人损失。

【技术实现步骤摘要】
一种安卓系统微信聊天记录解密方法
本专利技术涉及信息安全
,特别涉及一种安卓系统微信聊天记录解密方法。
技术介绍
信息数据化时代通讯APP是常用的社交工具,这些社交工具在长期的使用中存储着大量的用户信息,是数据取证的重点提取的数据;但由于其隐私安全的考虑,通常社交工具的数据都进行了加密存储,这给数据丢失取证造成了不小的麻烦。其中在大量的社交工具中,微信用户量超群,且安卓微信聊天记录数据库为加密存放。而目前还没有一种技术可以对微信加密数据进行解密。
技术实现思路
本专利技术针对现有技术的缺陷,提供了一种安卓系统微信聊天记录解密方法,能有效的解决上述现有技术存在的问题。一种安卓系统微信聊天记录解密方法,包括以下步骤:S1:判断安卓手机用户数据分区的“data”目录中是否存在“com.tencent.mm”目录,若存在表示则该安卓手机中可能存在微信聊天记录数据,执行S2;否则该安卓手机中不存在微信聊天记录数据,结束;S2:递归扫描“com.tencent.mm”目录中的“MicroMsg”目录,找到目录名为MD5值、长度为32位字符串的目录,通过统计上述目录的个数可以得到在安卓手机中历史登录过的微信帐号数目,还需找到“EnMicroMsg.db”文件;S3:找路径为“\cdn\cdninfo.txt”的文件,或者找“cdndnsinfo”目录中的文件;S4:找“cdninfo.txt”文件或“cdndnsinfo”目录中文件的UIN,UIN记录在关键字“0x010102010102”后,该关键字节后面一个字节为UIN所占字节长度,将长度字节后的指定长度字节转换成有符号10进制数据字符串后便是用于解密的UIN;S5:获取微信使用手机的IMEI,详细步骤如下:S51:判断“MicroMsg”目录中是否有一个名为“CompatibleInfo.cfg”的文件,若该文件存在继续解析该文件,执行S52;若该文件不存在则结束;S52:“CompatibleInfo.cfg”文件是一个Java序列化文件,通过反Java序列化的方式找到IMEI所在的字段数据,也可通过查找关键字节的方式找到“0x000001027400”,该关键字节后面一个字节为IMEI所占字节长度,长度字节后的指定长度字节,就是IMEI的数据体。S6:通过获取到的UIN字符和IMEI字符计算得到7位字符的解密密码,其详细步骤如下:S61:通过获取到的IMEI字符串,加上获取的到UIN字符串,将这组字符串通过MD5算法计算得到小写md5值,取前7个字符作为解密密码;S62:获得的7位解密密码作为初始密钥,EnMicroMsg.db数据库文件前16个字节作为初始向量,调用OpenSSL官方libeay32库函数(PKCS5_PBKDF2_HMAC_SHA1(),密钥迭代次数为4000次,可以派生的到解密密钥;将计算出的密钥传入OpenSSL官方libeay32库函数AES_set_decrypt_key()得到AES256解密密钥;“EnMicroMsg.db”文件加密数据库的页大小为1024字节,每页的最后16个字节为解密向量,解密单位第一次为1024-32字节,以后为每次1024-16字节,循环调用OpenSSL官方libeay32库函数AES_cbc_encrypt()即可完成解密;S63:解密后将微信数据库文件头的原始16个字节“0x53514C69746520666F726D6174203300”还原覆盖,即可正常查看微信数据库文件。与现有技术相比本专利技术的优点在于:快速准确的找到微信数据库解密密钥,对安卓微信聊天记录进行解密,可完整恢复加密数据,帮助警方破案,减少受害人损失。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下举实施例,对本专利技术做进一步详细说明。一种安卓系统微信聊天记录解密方法,包括以下步骤:S1:安卓微信APP聊天记录数据库存放在安卓手机用户数据分区中的“\data\com.tencent.mm\”路径中。若安卓手机用户数据分区的“data”目录中存在“com.tencent.mm”目录,则说明该安卓手机中可能存在微信聊天记录数据,否则该安卓手机中不存在微信聊天记录数据。S2:递归扫描“com.tencent.mm”目录中的“MicroMsg”目录,找到目录名为MD5值、长度为32位字符串的目录,每个目录中保存了不同的微信帐号数据,其中“EnMicroMsg.db”文件为微信聊天记录SQLite数据库文件,通过统计上述目录的个数可以得到在安卓手机中历史登录过的微信帐号数目。S3:找路径为“\cdn\cdninfo.txt”的文件,cdninfo.txt文件中记录有微信帐号的UIN,或者判断“cdndnsinfo”目录中是否存在有文件,在“cdndnsinfo”目录中的文件可能记录有微信帐号的UIN。存储下找到的有效文件路径。S4:“cdninfo.txt”文件中的UIN记录在关键字“0x010102010102”后,该关键字节后面一个字节为UIN所占字节长度,通常长度字节为0x04或0x03等,将长度字节后的指定长度字节,即4或者3个字节转换成有符号10进制数据字符串后便是用于解密的UIN(例如:0x3E6B2EA0转换后为1047211680)。“cdndnsinfo”目录中文件的UIN,关键字节和记录方式与“cdninfo.txt”文件相同。每个微信帐号目录中只需要从以上对应的一个文件中取得UIN即可(每个微信帐号的UIN不同)。S5:获取微信使用手机的IMEI(1)“MicroMsg”目录中有一个名为“CompatibleInfo.cfg”的文件,若该文件存在继续解析该文件,若该文件不存在则返回结束。(2)“CompatibleInfo.cfg”文件是一个Java序列化文件,可以通过反Java序列化的方式找到IMEI所在的字段数据,也可通过查找关键字节的方式找到“0x000001027400”,该关键字节后面一个字节为IMEI所占字节长度,通常长度字节为0x0F或0x0E等,长度字节后的指定长度字节,即15或者14个字节的数据就是IMEI的数据体。S6:通过获取到的UIN字符和IMEI字符计算得到7位字符的解密密码;(1)通过获取到的IMEI字符串,加上获取的到UIN字符串,将这组字符串通过MD5算法计算得到小写md5值,取前7个字符(字母为小写)作为解密密码。(2)由前面获得的7位密码作为初始密钥,EnMicroMsg.db数据库文件前16个字节作为初始向量,调用OpenSSL官方libeay32库函数(PKCS5_PBKDF2_HMAC_SHA1(),密钥迭代次数为4000次,可以派生的到解密密钥。将计算出的密钥传入OpenSSL官方libeay32库函数AES_set_decrypt_key()得到AES256解密密钥。“EnMicroMsg.db”文件加密数据库的页大小为1024字节,每页的最后16个字节为解密向量,解密单位第一次为1024-32字节,以后为每次1024-16字节,循环调用调用OpenSSL官方libeay32库函数AES_cbc_encrypt()即可完成解密。(3)因为加密的微信本文档来自技高网...

【技术保护点】
一种安卓系统微信聊天记录解密方法,其特征在于包括以下步骤:S1:判断安卓手机用户数据分区的“data”目录中是否存在“com.tencent.mm”目录,若存在表示则该安卓手机中可能存在微信聊天记录数据,执行S2;否则该安卓手机中不存在微信聊天记录数据,结束;S2:递归扫描“com.tencent.mm”目录中的“MicroMsg”目录,找到目录名为MD5值、长度为32位字符串的目录,通过统计上述目录的个数可以得到在安卓手机中历史登录过的微信帐号数目,还需找到“EnMicroMsg.db”文件;S3:找路径为“\cdn\cdninfo.txt”的文件,或者找“cdndnsinfo”目录中的文件;S4:找“cdninfo.txt”文件或“cdndnsinfo”目录中文件的UIN,UIN记录在关键字“0x010102010102”后,该关键字节后面一个字节为UIN所占字节长度,将长度字节后的指定长度字节转换成有符号10进制数据字符串后便是用于解密的UIN;S5:获取微信使用手机的IMEI,详细步骤如下:S51:判断“MicroMsg”目录中是否有一个名为“CompatibleInfo.cfg”的文件,若该文件存在继续解析该文件,执行S52;若该文件不存在则结束;S52:“CompatibleInfo.cfg”文件是一个Java序列化文件,通过反Java序列化的方式找到IMEI所在的字段数据,也可通过查找关键字节的方式找到“0x000001027400”,该关键字节后面一个字节为IMEI所占字节长度,长度字节后的指定长度字节,就是IMEI的数据体;S6:通过获取到的UIN字符和IMEI字符计算得到7位字符的解密密码,其详细步骤如下:S61:通过获取到的IMEI字符串,加上获取的到UIN字符串,将这组字符串通过MD5算法计算得到小写md5值,取前7个字符作为解密密码;S62:获得的7位解密密码作为初始密钥,EnMicroMsg.db数据库文件前16个字节作为初始向量,调用OpenSSL官方libeay32库函数(PKCS5_PBKDF2_HMAC_SHA1(),密钥迭代次数为4000次,可以派生的到解密密钥;将计算出的密钥传入OpenSSL官方libeay32库函数AES_set_decrypt_key()得到AES256解密密钥;“EnMicroMsg.db”文件加密数据库的页大小为1024字节,每页的最后16个字节为解密向量,解密单位第一次为1024‑32字节,以后为每次1024‑16字节,循环调用OpenSSL官方libeay32库函数AES_cbc_encrypt()即可完成解密;S63:解密后将微信数据库文件头的原始16个字节“0x53514C69746520666F726D6174203300”还原覆盖,即可正常查看微信数据库文件。...

【技术特征摘要】
1.一种安卓系统微信聊天记录解密方法,其特征在于包括以下步骤:S1:判断安卓手机用户数据分区的“data”目录中是否存在“com.tencent.mm”目录,若存在表示则该安卓手机中可能存在微信聊天记录数据,执行S2;否则该安卓手机中不存在微信聊天记录数据,结束;S2:递归扫描“com.tencent.mm”目录中的“MicroMsg”目录,找到目录名为MD5值、长度为32位字符串的目录,通过统计上述目录的个数可以得到在安卓手机中历史登录过的微信帐号数目,还需找到“EnMicroMsg.db”文件;S3:找路径为“\cdn\cdninfo.txt”的文件,或者找“cdndnsinfo”目录中的文件;S4:找“cdninfo.txt”文件或“cdndnsinfo”目录中文件的UIN,UIN记录在关键字“0x010102010102”后,该关键字节后面一个字节为UIN所占字节长度,将长度字节后的指定长度字节转换成有符号10进制数据字符串后便是用于解密的UIN;S5:获取微信使用手机的IMEI,详细步骤如下:S51:判断“MicroMsg”目录中是否有一个名为“CompatibleInfo.cfg”的文件,若该文件存在继续解析该文件,执行S52;若该文件不存在则结束;S52:“CompatibleInfo.cfg”文件是一个Java序列化文件,通过反Java序列化的方式找到IM...

【专利技术属性】
技术研发人员:黄旭李森
申请(专利权)人:四川秘无痕信息安全技术有限责任公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1