东安数据恢复中心
硬盘数据恢复
  当前位置:首页 >> 成功案例 >> 手机QQ解密代码  
  联系我们

济南历下安略电脑维修部

地址:山东省济南市历下区山大路157号华强电子世界二楼H2130 H2131室

电话:0531-55555738

     0531-55555738FAX)

电话:18706418700

 我们擅长的优势技术 优势技术
硬盘数据恢复 硬盘恢复
磁盘阵列数据恢复 磁盘阵列恢复
数据库数据恢复 数据库修复
电子邮件丢失数据恢复 电子邮件恢复
相机卡丢失数据恢复 相机卡恢复
文档表格类丢失数据恢复 文档表格恢复
财务数据恢复 财务数据恢复
  支持品牌
迈拓硬盘
西部数据硬盘
希捷硬盘
富士通硬盘
联想电脑
戴尔
IBM
三星电子
成功案例  

手机QQ解密代码
来源:东安数据恢复中心 发布时间:2014/2/17 15:15:49

1.手机QQ

据说手机QQ2012之前都是明文的,这个没测试,不细说了,有兴趣的朋友自己搜索下。2012之后使用记录保存的sqliteDB内容加密,库没有设置密码,直接用sqliteadmin之类的软件打开之后可以看到一堆歪七扭八的字符。直接上关键,解密函数如下:

2013的最新版本的手机QQ数据库的表名调整为:mr_friend_MD5(QQ)_New ,比原来的多了一个_New。这里先讲解一下utf8编码,utf8的中文是3字节,之前的算法根据代码可以看出来,前两字节原封不对,只对最后一个字节进行疑惑。新版本的不在区分中文和英文,直接对每个字节进行疑惑加密。

 //解密QQ加密字符串
//lpIn - 输入加密的数据缓冲区 从sqlite中getblob得到
//nLen - 输入缓冲区的长度
//key - 为手机串号字符串
//IsNew - 是否为新版本 默认不是 字段名末尾是否有_New ,有则传入TRUE, 没有空着即可。注意:仅限于新版本的聊天内容记录字段解密,字段名为msgData。
CString DecryptMobileQQBuffer(LPCSTR lpIn, int nLen, LPSTR lpKey, BOOL IsNew = FALSE)
{
CString strRet;
int nKeyLen = strlen(lpKey);
if (nLen > 0 && nKeyLen > 0)
{
char *pszTmp = new char[nLen + 2];
ZeroMemory(pszTmp, nLen + 2);
int nDecode = 0;
for (int i = 0; i < nLen; i++)
{
if (!IsNew && (BYTE)lpIn[i] >= 128)
{
pszTmp[i] = lpIn[i];
pszTmp[i + 1] = lpIn[i + 1];
i += 2;
}
pszTmp[i] = lpIn[i] ^ lpKey[nDecode++ % nKeyLen];
}
strRet = pszTmp;
delete pszTmp;
}

return strRet;
}

使用了15位的手机串号作为key,依次做异或运算。。。这个尿性,就算没有手机串号也能碰撞出来的。。。这个加密算是形式吧。。。。

注意:从字段里读取内容的时候要使用sqlite3_column_blob函数获取内容缓冲区,使用sqlite3_column_bytes获取出来缓冲区长度,因为使用sqlite3_column_text会有\0字符干扰导致数据不全;所有的中文使用utf8编码,需要转下。

中心简介 | 联系我们 | 收费标准 | 成功案例 | 在线留言
【济南历下极众电脑经营中心】地址:山东济南市山大路157号华强电子世界二楼H2130 H2131室
 【济南历下极众电脑经营中心】电话:0531-55555738 手机:18706418700 备案号:鲁ICP备2022020230号