一种针对iPhone百度地图导航路径的提取方法与流程

文档序号:12364188阅读:836来源:国知局

本发明涉及信息安全技术领域,特别涉及一种针对iPhone百度地图导航路径的提取方法。



背景技术:

随着移动通信技术所提供服务水平和服务种类的不断提高和扩充,手机已日益成为人们工作生活中不可或缺的联系工具,然而与此同时,利用手机进行诈骗、诽谤和伪造等犯罪活动也屡见不鲜。手机取证正是打击这类犯罪的一个有效手段。从概念上讲手机取证就是从手机SIM卡手机内/外置存储卡以及移动网络运营商数据库中收集、保全和分析相关的电子证据,并最终从中获得具有法律效力、能被法庭所接受的证据的过程。目前牵涉到手机的犯罪行为大致有三种:一是在犯罪行为的实施过程中使用手机来充当通信联络工具;二是手机被用作一种犯罪证据的存储媒质;最后一种方式是手机被当作短信诈骗、短信骚扰和病毒软件传播等新型手机犯罪活动的实施工具。这些都充分地表明进行手机取证技术的相关研究对于维持社会稳定、保障人民权益和打击犯罪行为具有充分的必要性和极大的迫切性。

百度地图是在中国地区使用非常广泛的地图导航类手机应用,基于庞大的用户量,针对百度地图数据的恢复就更加具有普遍性的意义。而目前针对百度地图定位痕迹数据的恢复都是对百度地图中某一些包含的定位信息的文件进行恢复,这种恢复是单点式的恢复,通常而言只能恢复用户到达过的地点,并不能构建出真实的用户运动轨迹。而针对电子取证而言数据的完整性是非常重要的一个环节,这种单点式恢复定位痕迹的方法无疑是具有缺陷的,它无法满足数据的完整性。



技术实现要素:

本发明针对现有技术的缺陷,提供了一种针对iPhone百度地图导航路径的提取方法,能有效的解决上述现有技术存在的问题。

一种针对iPhone百度地图导航路径的提取方法,包括以下步骤:

S1:iPhone应用实体映射信息获取;

S2:百度地图数据包准备;

S3:百度地图导航路径数据提取;

S4:百度地图导航足迹提取;

S5:导航轨迹和导航足迹关联解析;

S6:导航轨迹可视化展现。

作为优选,所述S1的具体步骤如下:

S10:创建应用信息实体,实体至少应当包含应用数据区域路径,应用包名,创建应用实体信息集合L;

S11:启动iTunes服务“Apple Mobile Device Service”,若启动成功执行S12,若失败则结束;

S12:调用iTunes服务提供接口“AFCFileInfoOpen”访问文件夹“private/var”和“Applications”目录,若都能够访问成功,则执行S13,否则结束;

S13:提取应用数据,调用iTunes服务提供接口“AFCFileRefOpen”对该目录“/private/var/mobile/Containers/Data/Application”进行循环遍历,若存在结果则执行S14;否者遍历结束执行S2;

S14:当遍历存在文件夹时,记录为p,创建应用实体PE,将PE的应用数据区域路径设置为“/private/var/mobile/Containers/Data/Application”+“/”+p;

S15:调用“AFCFileRefOpen”,访问“/private/var/mobile/Containers/Data/Application”+“/”+p+“/Library/Preferences”目录,获取该目录下面的.plist文件,直接读取文件的方式获取该文件的文件名,记为pkgname,pkgname就是文件夹p对应的真实应用包名;将PE的应用包名设置pkgname,并将PE加入合集L;

S16:执行S13继续遍历。

作为优选,所述S2的详细步骤如下:

S21:判断L的实体集合之中是否包含应用信息实体;若包含执行S22,若不包含则结束;

S22:循环遍历应用信息实体集合L,并获取信息实体的包名字段数据记录为pkg,当pkg与“com.baidu.map”字符串匹配时,记录该实体为Ebaidu,执行S23,否则继续遍历,当遍历结束仍旧未执行S23,代表该手机不存在百度地图应用,结束;

S23:获取Ebaidu中记录的应用路径,记为Pbaidu,调用iTunes服务提供接口“AFCFileInfoOpen”,对Pbaidu执行遍历,若存在结果执行S24,否者遍历结束执行S3;

S24:调用iTunes服务提供接口“AFCFileRefRead”对遍历结果执行拷贝文件操作,拷贝到任意本地文件夹,记录本地文件夹名为localpath;

S25:循环调用“AFCFileInfoOpen”完成对百度地图所有数据的完整拷贝。

作为优选,所述S3的详细步骤如下:

S30:创建导航实体类,其中至少应当包含以下字段:起始点经度、起始点纬度、结束点经度、结束点纬度、导航起始时间、关联足迹文件名和足迹集合,创建导航数据集合NL,用于存放多个导航实体类;

S31:遍历localpath目录,当存在数据时记录数据为lp,若不存在则结束;

S32:对lp进行字符串比较,当lp等值于“Documents”时,执行S33,否则继续执行S31;

S33:构建导航路目录:localpath+“Documents/trackDB.sqlite”,直接调用文件判定方法,判断trackDB.sqlite文件是否存在,当存在时执行S34,当不存在时执行S4;

S34:加载数据库解析方案,读取表:ZBMTRACKCAR、ZRACKWALK,ZBMTRACKCUSTOM的数据,获取该表的游标,对游标进行数据遍历,当存在数据时执行S35,不存在数据时执行S4;

S35:创建导航实体类N,获取该表的ZCTIME、ZENDLAT、ZENDLON、ZSTARTLAT、ZSTARTLON、ZGUID字段的值;同时将这些值分别赋值给导航实体类N中的导航起始时间、结束纬度、结束经度、起始纬度、起始经度、足迹文件关联文件名字段;

S36:将N加入导航数据实体集合NL然后执行S34,继续遍历获取数据。

作为优选,所述S4的详细步骤如下:

S40:创建足迹实体类,其中至少应当包含经度,纬度字段,同时创建足迹映射map集合M,M的键是导航足迹文件名,值是关于导航足迹的实体集合;

S41:构建导航足迹文件目录:localpath+“Documents/footMark/”,遍历该目录,当存在结果时,记录结果为R,执行S42,不存在结果时执行S5;

S42:R是导航足迹文件,同时也是一个标准的excel文件,每一行代表导航之中经过的每一个地理位置;excel文件的第一列是足迹的经度,第二列是足迹的纬度,直接调用文件类方法,获取R文件的文件名记录为fmp,创建足迹实体集合fml;

S43:调用第三方excel解析控件,列如Workbook、npoi等,以文件的每行为基础,循环解析excel文件R,当存在数据时执行S44,不存在数据时,对M进行设置值,键为fmp,值为fml,然后再执行S41;

S44:创建导航足迹实体FM,将解析到的第一列设置为fm的经度,第二列设置为fm纬度,并将fm加入到fml中;

S45:继续执行S43,继续解析下一行的数据。

作为优选,所述S5的详细步骤如下:

S51:判断NL是否有数据,当NL集合存在数据时遍历NL,记录结果为navi,并执行S52,否则结束;

S52:获取NL中保存的关联足迹文件名记录为nl_fm;

S53:直接以nl_fm为键获取M中对应的结果,当获取结果存在时,记录为m_fm执行S54,否则执行S51;

S54:将m_fm作为navi的足迹集合字段保存,然后执行S51。

作为优选,S6的详细步骤如下:

S61:当集合NL存在数据时,遍历NL,记录结果为shownavi,并执行S62,当不存在数据时执行S65;

S62:获取shownavi数据中的起点经纬度坐标,终点经纬度坐标;起点和终点的经纬度坐标均采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的导航轨迹的起点和终点的经纬度坐标,解析结束之后,在地图上标注该条导航的起点和终点;

S63:获取shownavi的足迹集合字段值,并记为showfoot,判断showfoot是否存在数据,当存在数据时执行S64;不存在时,将起点与终点坐标进行连接,形成导航轨迹并执行S61;

S64:对该轨迹进行轨迹准确性修正,其详细步骤如下:

S641:通过遍历showfoot,获取到该集合中保存的足迹实体,记为foot,并执行S642,不存在数据时,执行S644操作;

S642:获取foot中保存的足迹经度和纬度,形成一个足迹坐标,该坐标采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的真实坐标;

S643:在地图上执行足迹坐标的标注,并继续执行S641操作;

S644:足迹集合解析结束,将地图中标注的坐标点根据解析的顺序连接起来,从而完成导航轨迹的准确性修正。经过修正可以直观的在地图上展示出用户在该条导航轨迹中经过的每一个足迹点;

S65:结束解析。

与现有技术相比本发明的优点在于:全面解析iPhone手机百度地图的数据,准确的找到导航路径和导航足迹的数据,并完成轨迹可视化展现;可以帮助公安机关快速了解iPhone手机持有人的行动轨迹,提高办案效率,帮助破案。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。

一种针对iPhone百度地图导航路径的提取方法,包括以下步骤:

S1:iPhone应用实体映射信息获取;

S2:百度地图数据包准备;

S3:百度地图导航路径数据提取;

S4:百度地图导航足迹恢复;

S5:导航轨迹和导航足迹关联解析;

S6:导航轨迹可视化展现。

所述S1的具体步骤如下:

S10:创建应用信息实体,实体至少应当包含应用数据区域路径,应用包名,创建应用实体信息集合L;

S11:针对iphone手机数据的提取是建立在iphone管理工具iTunes服务提供的接口之上的,首先需要启动iTunes服务“Apple Mobile Device Service”,若启动成功执行S12,若失败则结束;

S12:调用iTunes服务提供接口“AFCFileInfoOpen”访问文件夹“private/var”和“Applications”目录,若都能够访问成功,则执行S13,否则结束;

S13:提取应用数据,“/private/var/mobile/Containers/Data/Application”目录下面保存手机中包含的所有应用数据,每一个应用对应一个独立的文件夹;调用iTunes服务提供接口“AFCFileRefOpen”对该目录进行循环遍历,若存在结果则执行S14;否者遍历结束执行S2;

S14:当遍历存在文件夹时,记录为p,创建应用实体PE,将PE的应用数据区域路径设置为“/private/var/mobile/Containers/Data/Application”+“/”+p;

S15:调用“AFCFileRefOpen”,访问“/private/var/mobile/Containers/Data/Application”+“/”+p+“/Library/Preferences”目录,获取该目录下面的.plist文件,直接读取文件的方式获取该文件的文件名,记为pkgname,pkgname就是文件夹p对应的真实应用包名;将PE的应用包名设置pkgname,并将PE加入合集L;

S16:执行S13继续遍历。

S2的详细步骤如下:

S21:判断L的实体集合之中是否包含应用信息实体;若包含执行S22,若不包含则结束;

S22:循环遍历应用信息实体集合L,并获取信息实体的包名字段数据记录为pkg,当pkg与“com.baidu.map”字符串匹配时,记录该实体为Ebaidu,执行S23,否则继续遍历,当遍历结束仍旧未执行S23,代表该手机不存在百度地图应用,结束;

S23:获取Ebaidu中记录的应用路径,记为Pbaidu,调用iTunes服务提供接口“AFCFileInfoOpen”,对Pbaidu执行遍历,若存在结果执行S24,否者遍历结束执行S3;

S24:调用iTunes服务提供接口“AFCFileRefRead”对遍历结果执行拷贝文件操作,拷贝到任意本地文件夹,记录本地文件夹名为localpath;

S25:循环调用“AFCFileInfoOpen”完成对百度地图所有数据的完整拷贝。

S3的详细步骤如下:

S30:创建导航实体类,其中至少应当包含以下字段:起始点经度、起始点纬度、结束点经度、结束点纬度、导航起始时间、关联足迹文件名和足迹集合(一个保存足迹的字段,因足迹是由很多数据组成的,所以需要这个集合字段),创建导航数据集合NL,用于存放多个导航实体类;

S31:遍历localpath目录,当存在数据时记录数据为lp,若不存在则结束;

S32:对lp进行字符串比较,当lp等值于“Documents”时,执行S33,否则继续执行S31;

S33:构建导航路目录:localpath+“Documents/trackDB.sqlite”,直接调用文件判定方法,判断trackDB.sqlite文件是否存在,当存在时执行S34,当不存在时执行S4;

S34:trackDB.sqlite包含ZBMTRACKCAR(驾车导航)、ZBMTRACKCUSTOM(普通导航)、ZRACKWALK(步行导航)三个关于导航数据的表。由于三张表结构完全一致,因此提取方式统一如下所描述;

加载任意数据库解析方案,读取表:ZBMTRACKCAR、ZRACKWALK,ZBMTRACKCUSTOM的数据,获取该表的游标,对游标进行数据遍历,当存在数据时执行S35,不存在数据时执行S4;

S35:创建导航实体类N,获取该表的ZCTIME、ZENDLAT、ZENDLON、ZSTARTLAT、ZSTARTLON、ZGUID字段的值;同时将这些值分别赋值给导航实体类N中的导航起始时间、结束纬度、结束经度、起始纬度、起始经度、足迹文件关联文件名字段;

S36:将N加入导航数据实体集合NL然后执行S34,继续遍历获取数据。

S4的详细步骤如下:

S40:导航数据的关联轨迹恢复是针对百度地图导航过程中沿途记录的足迹进行数据恢复。创建足迹实体类,其中至少应当包含经度,纬度字段。同时创建足迹映射map集合M,M的键是导航足迹文件名,值是关于导航足迹的实体集合;

S41:构建导航足迹文件目录:localpath+“Documents/footMark/”,遍历该目录,当存在结果时,记录结果为R,执行S42,不存在结果时执行S5;

S42:R是导航足迹文件,同时也是一个标准的excel文件,每一行代表导航之中经过的每一个地理位置;excel文件的第一列是足迹的经度,第二列是足迹的纬度,直接调用文件类方法,获取R文件的文件名记录为fmp,创建足迹实体集合fml;

S43:调用第三方excel解析控件,列如Workbook、npoi等,以文件的每行为基础,循环解析excel文件R,当存在数据时执行S44,不存在数据时,对M进行设置值,键为fmp,值为fml,然后再执行S41;

S44:创建导航足迹实体FM,将解析到的第一列设置为fm的经度,第二列设置为fm纬度,并将fm加入到fml中;

S45:继续执行S43,继续解析下一行的数据。

S5的详细步骤如下:

经过步骤三和步骤四,得到导航数据集合NL,和导航足迹map集合M。

S51:当NL集合存在数据时,遍历NL,记录结果为navi,并执行S52,否则结束;

S52:获取NL中保存的关联足迹文件名记录为nl_fm;

S53:直接以nl_fm为键获取M中对应的结果,当获取结果存在时,记录为m_fm执行S54,否则执行S51;

S54:将m_fm作为navi的足迹集合字段保存,然后执行5.1操作。

S6的详细步骤如下:

经过以上步骤获取到完整的导航数据集合NL,该集合中包含了百度地图所有的导航轨迹数据,以及对应的导航足迹点,通过以下步骤将数据进行可视化恢复。

S61:当集合NL存在数据时,遍历NL,记录结果为shownavi,并执行S62,当不存在数据时执行S65;

S62:获取shownavi数据中的起点经纬度坐标,终点经纬度坐标;起点和终点的经纬度坐标均采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的导航轨迹的起点和终点的经纬度坐标,解析结束之后,在地图上标注该条导航的起点和终点;

S63:获取shownavi的足迹集合字段值,并记为showfoot,判断showfoot是否存在数据,当存在数据时执行S64;不存在时,将起点与终点坐标进行连接,形成导航轨迹并执行S61;

S64:由于该条导航轨迹存在足迹点,因此开始对该轨迹进行轨迹准确性修正,其详细步骤如下:

S641:通过遍历showfoot,获取到该集合中保存的足迹实体,记为foot,并执行S642,不存在数据时,执行S644操作;

S642:获取foot中保存的足迹经度和纬度,形成一个足迹坐标,该坐标采用摩卡托坐标形式保存,采用摩卡托坐标系逆向解析方案,获取到对应地图上的真实坐标。

S643:在地图上执行足迹坐标的标注,并继续执行S641操作;

S644:足迹集合解析结束,将地图中标注的坐标点根据解析的顺序连接起来,从而完成导航轨迹的准确性修正。经过修正可以直观的在地图上展示出用户在该条导航轨迹中经过的每一个足迹点;

S65:结束解析。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1