一种解析Windows Phone手机短信数据结构的方法
技术领域
本发明属于移动设备信息解析及取证技术领域,涉及一种移动设备文件解析方法,尤其涉及一种解析Windows Phone手机短信数据结构的方法。
背景技术
Windows Phone(简称为WP)是微软于2010年10月21日正式发布的一款手机操作系统,基于Windows CE内核,采用了一种称为Metro的用户界面(UI),并将微软旗下的XboxLive游戏、Xbox Music音乐与独特的视频体验集成至手机中。2011年2月,诺基亚与微软达成全球战略同盟并深度合作共同研发该系统。
Windows Phone具有桌面定制、图标拖拽、滑动控制等一系列前卫的操作体验。其主屏幕通过提供类似仪表盘的体验来显示新的电子邮件、短信、未接来电、日历约会等,让人们对重要信息保持时刻更新。它还包括一个增强的触摸屏界面,更方便手指操作;以及一个最新版本的IE Mobile浏览器——该浏览器在一项由微软赞助的第三方调查研究中,和参与调研的其它浏览器和手机相比,可以执行指定任务的比例超过48%。
由于Windows Phone在用户体验上的出色表现并占据了一定的市场份额,因此,对于Windows Phone的取证研究也是很有必要的。然而,目前Windows Phone电子取证方法还很少,难度较大,尤其对于Windows Phone手机的短信解析问题,目前尚无具体有效的解决方法。
发明内容
本发明针对现有技术的不足和上述问题,提出一种解析Windows Phone手机短信数据结构的方法,通过对Windows Phone手机短信数据结构的解析,能够查找出短信的短信序号、短信内容、收发短信的时间及收发短信的手机号码,解决了无法对Windows Phone手机短信进行电子取证的问题,所述方法包括以下步骤:
S1:提取Windows Phone手机短信数据库文件;
S2:查找所述Windows Phone手机短信数据库文件中的短信标识;
S3:以所述短信标识为标记位置,向前查找短信收发标识;
S4:判定所述短信收发标识的值,以判定短信是否为发送短信,如果是,则执行步骤S5,否则执行步骤S6;
S5:查找并解析所述发送短信的短信序号、短信内容、发送短信的时间及接收短信的手机号码;
S6:判定所述短信收发标识的值,以判定短信是否为接收短信,如果是,则执行步骤S7,否则执行步骤S4;
S7:查找并解析所述接收短信的短信序号、短信内容、接收短信的时间及发送短信的手机号码。
作为优选,所述步骤S5包括以下步骤:
S501:以所述短信收发标识为标记位置,向前查找短信序号标识,所述短信序号标识的后两字节内容为所述短信的序号;
S502:以所述短信收发标识为标记位置,向后查找首个管理字段结束符,所述首个管理字段结束符的前3个字节与其构成发送短信体管理字段;
S503:以所述发送短信体管理字段的首地址为标记位置,向后查找内容管理字段标识,所述内容管理字段标识随后两个字节的低12位的值为偏移地址,以所述发送短信体管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为短信内容,短信内容以消息结束符为结束;
S504:以所述发送短信体管理字段的首地址为标记位置,向后查找发送短信的时间管理字段标识,所述发送短信的时间管理字段标识随后两个字节的低12位的值为偏移地址,以所述发送短信体管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为发送短信的时间,所述发送短信的时间以消息结束符为结束;
S505:根据所述发送短信的时间,查找所述Windows Phone手机短信数据库文件中的发送短信辅助标识,并以所述发送短信辅助标识为标记位置,向后查找首个管理字段结束符,所述首个管理字段结束符的前3个字节与其构成SMS管理字段;
S506:以所述SMS管理字段的首地址为标记位置,向后查找接收短信的手机号码的管理字段标识,所述接收短信的手机号码的管理字段标识随后两个字节的低12位的值为偏移地址,以所述SMS管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为接收短信的手机号码,所述接收短信的手机号码以消息结束符为结束。
作为优选,所述步骤S7包括以下步骤:
S701:以所述短信收发标识为标记位置,向前查找短信序号标识,所述短信序号标识的后两字节内容为所述短信的序号;
S702:以所述短信收发标识为标记位置,向后查找首个管理字段结束符,所述首个管理字段结束符的前3个字节与其构成接收短信体管理字段;
S703:以所述接收短信体管理字段的首地址为标记位置,向后查找发送短信的手机号码的管理字段标识,所述发送短信的手机号码的管理字段标识随后两个字节的低12位的值为偏移地址,以所述接收短信体管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为发送短信的手机号码,所述发送短信的手机号码以消息结束符为结束;
S704:以所述接收短信体管理字段的首地址为标记位置,向后查找内容管理字段标识,所述内容管理字段标识随后两个字节的低12位的值为偏移地址,以所述接收短信体管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为短信内容,所述短信内容以消息结束符为结束;
S705:以所述接收短信体管理字段的首地址为标记位置,向后查找接收短信的时间管理字段标识,所述接收短信时间的管理字段标识随后两个字节的低12位的值为偏移地址,以所述接收短信体管理字段的首地址加上所述偏移地址进行寻址,读取寻址的内容为接收短信的时间,所述接收短信的时间以消息结束符为结束。
作为优选,所述短信内容存储为Unicode小端格式。
与现有技术相比,本发明的有益效果是:通过对Windows Phone手机短信数据结构的解析,能够查找出短信的短信序号、短信内容、收发短信的时间及收发短信的手机号码,解决了无法对Windows Phone手机短信进行电子取证的问题。
附图说明
图1为本发明的主流程图;
图2为本发明中解析发送短信的处理流程图;
图3为本发明中解析接收短信的处理流程图;
图4为本发明中发送短信体的数据结构图;
图5为本发明中发送短信的SMS消息体的数据结构图;
图6为本发明中接收短信体的数据结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步阐述。
如图1所示,一种解析Windows Phone手机短信数据结构的方法,包括以下步骤:
S1:提取Windows Phone手机短信数据库文件:
Windows Phone手机短信数据库存放路径为:
\Users\WPCOMMSSERVICES\APPDATA\Local\Unistore\store.vol
用16进制编辑器打开数据库文件store.vol。
S2:查找Windows Phone手机短信数据库文件中的短信标识:在数据库文件store.vol中,查找关键字010000002A2A2A2A2A2A2A2A0100,每条短信均包含有该关键字作为短信标识。
S3:以所述短信标识010000002A2A2A2A2A2A2A2A0100为标记位置,向前查找关键字0000002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A,该短信标识的前一字节即为短信收发标识。
S4:判定图4中短信收发标识的值是否等于21,以判定该短信是否为发送短信,如果是,则执行步骤S5,否则执行步骤S6。
S5:查找并解析图4中该发送短信的短信序号、短信内容、发送短信的时间及接收短信的手机号码,包括如图2所示的以下步骤,
S501:以图4中该短信收发标识21为标记位置,向前查找短信序号标识517F6901,该短信序号标识517F6901的后两字节内容F706为该短信的序号。
S502:以图4中该短信收发标识21为标记位置,向后查找首个管理字段结束符40,该首个管理字段结束符40的前3个字节与其构成发送短信体管理字段0B012840。
S503:以图4中该发送短信体管理字段0B012840的首地址为标记位置,向后查找内容管理字段标识2A01,该内容管理字段标识2A01随后两个字节4440的低12位的值0x044为偏移地址,以该发送短信体管理字段0B012840的首地址加上所述偏移地址0x044进行寻址,读取寻址的内容为短信内容,短信内容以消息结束符000001为结束。
S504:以图4中该发送短信体管理字段0B012840的首地址为标记位置,向后查找发送短信的时间管理字段标识2B01,该发送短信的时间管理字段标识2B01随后两个字节6140的低12位的值0x061为偏移地址,以该发送短信体管理字段0B012840的首地址加上所述偏移地址0x061进行寻址,读取寻址的内容为发送短信的时间,该发送短信的时间以消息结束符000001为结束。
S505:如图5所示,根据该发送短信的时间,查找Windows Phone手机短信数据库文件中的发送短信辅助标识097F2E00,并以该发送短信辅助标识097F2E00为标记位置,向后查找首个管理字段结束符40,该首个管理字段结束符40的前3个字节与其构成SMS管理字段00010C40。
S506:以图5中该SMS管理字段00010C40的首地址为标记位置,向后查找接收短信的手机号码的管理字段标识0201,该接收短信的手机号码的管理字段标识0201随后两个字节1540的低12位的值0x015为偏移地址,以该SMS管理字段00010C40的首地址加上该偏移地址0x015进行寻址,读取寻址的内容为接收短信的手机号码,该接收短信的手机号码以消息结束符000001为结束。
S6:判定图5中该短信收发标识的前一字节的值是否等于01,以判定短信是否为接收短信,如果是,则执行步骤S7,否则执行步骤S4;
S7:查找并解析图5中该接收短信的短信序号、短信内容、接收短信的时间及发送短信的手机号码,包括如图3所示的以下步骤:
S701:以图6中该短信收发标识01为标记位置,向前查找短信序号标识517F6901,该短信序号标识517F6901的后两字节内容FC06为该短信的序号。
S702:以图6中该短信收发标识为01标记位置,向后查找首个管理字段结束符40,该首个管理字段结束符40的前3个字节与其构成接收短信体管理字段0B013C40。
S703:以图6中该接收短信体管理字段0B013C40的首地址为标记位置,向后查找发送短信的手机号码的管理字段标识0D01,该发送短信的手机号码的管理字段标识0D01随后两个字节3F40的低12位的值0x03F为偏移地址,以该接收短信体管理字段0B013C40的首地址加上该偏移地址0x03F进行寻址,读取寻址的内容为发送短信的手机号码,该发送短信的手机号码以标识000001为结束。
S704:以图6中该接收短信体管理字段0B013C40的首地址为标记位置,向后查找内容管理字段标识2A01,该内容管理字段标识2A01随后两个字节D440的低12位的值0x0D4为偏移地址,以该接收短信体管理字段0B013C40的首地址加上该偏移地址0x0D4进行寻址,读取寻址的内容为短信内容,该短信内容以标识000001为结束。
S705:以图6中该接收短信体管理字段0B013C40的首地址为标记位置,向后查找接收短信的时间管理字段标识2B01,该接收短信的时间管理字段标识2B01随后两个字节E540的低12位的值0x0E5为偏移地址0x0E5,以该接收短信体管理字段0B013C40的首地址加上该偏移地址0x0E5进行寻址,读取寻址的内容为接收短信的时间,该接收短信的时间以标识000001为结束。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。