最近在解析安卓QQ聊天内容数据
根据apk反编译的jar文件和jdGUI查看
帐号昵称等字段使用xor异或IMEI运算都可以解出来
唯独聊天内容有点问题:中文解出来乱码 英文字符数字等能正常解析
请教大神们有无解决办法
(已使用sqlite getblob utf8方式读取二进制流)
========================================
以下为第一部解法和测试数据
//解密QQ加密字符串 key为15位手机串号字符串
char* DecryptMobileQQBuffer(LPCSTR lpIn, int nLen, LPSTR lpKey)
{
char *pszTmp;
if (nLen > 0)
{
pszTmp = new char[nLen + 2];
ZeroMemory(pszTmp, nLen + 2);
int nDecode = 0;
for (int i = 0; i < nLen; i++)
{
if ((BYTE)lpIn[i] >= 128)
{
pszTmp[i] = lpIn[i];
pszTmp[i + 1] = lpIn[i + 1];
i += 2;
}
char s = lpIn[i];
pszTmp[i] = s ^ lpKey[nDecode % 15];
nDecode++;
}
}
return pszTmp;
}
二进制字节测试数据为:222,131,184,208,159,167,1,3,7 (明文为 测试123 一个汉字3字节)
95,89,92,92 (明文为 good) 9,4,0(明文为123)
第二行为非中文测试数据 测试设备IMEI为 LPSTR lpKey = "863802014697382";
根据apk反编译的jar文件和jdGUI查看
帐号昵称等字段使用xor异或IMEI运算都可以解出来
唯独聊天内容有点问题:中文解出来乱码 英文字符数字等能正常解析
请教大神们有无解决办法
(已使用sqlite getblob utf8方式读取二进制流)
========================================
以下为第一部解法和测试数据
//解密QQ加密字符串 key为15位手机串号字符串
char* DecryptMobileQQBuffer(LPCSTR lpIn, int nLen, LPSTR lpKey)
{
char *pszTmp;
if (nLen > 0)
{
pszTmp = new char[nLen + 2];
ZeroMemory(pszTmp, nLen + 2);
int nDecode = 0;
for (int i = 0; i < nLen; i++)
{
if ((BYTE)lpIn[i] >= 128)
{
pszTmp[i] = lpIn[i];
pszTmp[i + 1] = lpIn[i + 1];
i += 2;
}
char s = lpIn[i];
pszTmp[i] = s ^ lpKey[nDecode % 15];
nDecode++;
}
}
return pszTmp;
}
二进制字节测试数据为:222,131,184,208,159,167,1,3,7 (明文为 测试123 一个汉字3字节)
95,89,92,92 (明文为 good) 9,4,0(明文为123)
第二行为非中文测试数据 测试设备IMEI为 LPSTR lpKey = "863802014697382";