安卓加密软件_【winhex/Xways实战应用】安卓QQ卸载后的手工恢复实战

 

0x01 案例说明

接到总部给分配的一个活,说是客户要不惜一切代价恢复一些聊天记录。案发时间是2014年xx月初,客户发现时间2014年xx月中旬。涉案手机有两部,涉案电脑有两台。经过与客户交流得知,目前能提供线索的只有一部手机。其它的设备由于各种原因被排除在外。

0x02 恢复可行性分析

1.这两台电脑上一台上安装了还原精灵,QQ聊天记录会在关机时被清除。所以电脑上的QQ聊天记录不好恢复。另外一台根本没有聊天的痕迹。2.由于电脑上的QQ聊天记录存放的数据库文件是加密的,以碎片的方式恢复聊天记录数据库几乎是不可能的。3.再看手机,如果手机系统版本比较高,不管应用是删除还是卸载,数据区都会清0。4.其中的一台手机,在案发时间内根本没有使用过,直接忽略掉。5.另一台是早期的手机,安卓版本是4.0,不存在清0的问题。所以有恢复的可能。6.安卓QQ的聊天记录存储也是加密的,只不过它是xor(异或)加密。只要得到手机的解密密钥和数据库结构,就可以做碎片恢复。7.安卓QQ的解密密钥一般是它的串 (存在其它特殊情况),数据库结构根据QQ版本的不同而不同。目前有关安卓QQ我们在实际测试过程中发现了至少24种不同的结构(包括最新发现的)。综上所述,这四个检材中有一个手机有可能能恢复出相关的数据。下面着重对这个手机进行恢复操作。

0x03 手机镜像

接到手机以后,手机处于关机状态,由于这个手机型 是联想A789。通过查询它的参数(http://detail.zol.com.cn/328/327598/param.shtml),知道它的CPU品牌是联发科MTK,所以第一步,用flash_tool来回读它的镜像。从 上下载这个手机专用的刷机工具,发现这是旧版本(V3.0版本)的flash_tool,打开回读工具后,正常回读,但是每读取一点就断,还得重新读取。不知是工具的原因还是手机的原因。由于时间紧迫,所以想试试ROOT的方法,手机开机后发现手机已经有ROOT了!和客户交流,客户说这个手机已经在几个地方做过了,ROOT是其他人做的。当时心就凉了一半,因为不知道手机的ROOT方式,如果用第三方软件ROOT的话,会往手机上推送大量的apk软件,这些apk软件肯定会放到data分区上,造成原始数据覆盖。先不管这些了,既然有了ROOT,先做镜像来吧。手工镜像过程省略,可以参考http://www.intohard.com/article-219-1.html来镜像手机,如果有手机恢复/取证软件的话可以直接用手机镜像工具做镜像。

0x04镜像分析

取完镜像后,用winhex加载镜像,并解释为磁盘模式,结果发现这个手机的采用MBR磁盘格式,如下图所示

图2第二个分区,根据结构看是系统分区

图4data分区,保存用户数据(QQ,微信,短信,联系人等)的分区

图6/data/data目录下没有发现QQ的痕迹找到这个分区下的data目录,并对其现存的子目录进行排序,发现下面没有QQ的记录痕迹。

图8字符串搜索“imei”

  图10搜索到的串 :868****17086251下面确定安卓QQ的结构,之前我们也说过安卓QQ有多种结构,通过一一对比数据库的单元结构,我们确定了一种符合条件的QQ结构。或者在data分区搜索数据表的结构“_Newmr_”字符串,我们也可以找到相关的数据库结构。当然搜索其它的字符串也可以得到相关的数据库结构,只要满足相关的QQ数据库结构就行。其它方法留作大家思考。

图12精确命中的聊天记录只不过这些聊天记录都是加密存储的,我们也可以看到,这些搜索到的数据都位于空闲空间内(FreeSpace),这也验证了QQ是被卸载的。但幸运的是,数据库中的内容没有被清除。剩下的就是把这些记录恢复成明文字样。比方说拿出其中的一条聊天记录分析一下,如下图:

第一个字节0x65表示整个记录的大小字节数0x6A表示这个记录的RowID0x1B表示单元结构记录头大小字节数剩下的0x1A个字节记录了每个字段的类型及大小字节数然后是开始字段的数据记录,这个数据记录所占的字节数和上面的0x1A个字节记录的内容是一一对应的同时也和建表语句中的字段名称是一一对应的。第一个有内容的是0x21所记录的10个字节,它的字段名称为frienduin,它的值为:0x0A060E********060406,把这个值用imei进行解密操作,得到的QQ 为:206****736第二个有内容的是0x2A对应的15个字节,它的字段名称为msgData,它的值为:0xDE8499******D48C97D587AFD7A69E,解密后,得到的内容并转换成utf-8编码为:没X你忙X(最后一个字是乱码打不出来)。第三个有内容的是0x06对应的8个字节,它的字段名称为msgUid第四个有内容的是0x04对应的4个字节,它的字段名称为msgseq第五个有内容的是0x02对应的2个字节,它的字段名称为msgtype第六个有内容的是0x21所记录的10个字节,它的字段名称为selfuin,它的值为0x0A0E08********000208,把这个值用imei进行解密,得到QQ 为:280****158第七个有内容的是0x21所记录的10个字节,它的字段名称为senderuin,它的值为:0x0A060E********060406,把这个值用imei进行解密操作,得到的QQ 为:206****736第八个有内容的是0x02对应的两个字节,它的字段不重要忽略第九个有内容的是0x04对应的4个字节,它的字段名为:time,它的值为0x53B8F54F,转换成时间戳为:1404630351,换成时间值为:2014-07-06_15:05:51+8(解析方法参考0x09的其它资源)。这样我们得到了我们需要的内容:QQ 206****736在2014-07-06_15:05:51+8向QQ 280****158发送消息:没X你忙X这是对一条记录的分析过程,通过脚本编程的方式得到剩余的聊天记录。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月15日
下一篇 2020年9月15日

相关推荐