一种定位保护的方法和装置与流程

文档序号:12734564阅读:279来源:国知局
一种定位保护的方法和装置与流程

本发明涉及电子技术领域,尤其涉及一种定位保护的方法和装置。



背景技术:

随着科技日新月异地发展,以及用户对电子产品功能丰富化的要求,应用程序已经逐步深入日常工作和生活的方方面面。目前,大部分应用会基于用户定位出的地理位置进行相关服务。举例来说,社交应用会向用户推荐当前地理位置附近的好友,购物应用会向用户推荐当前地理位置附件的商家,打车应用会将用户的打车请求发送给附近的司机等。

尽管,应用基于定位能够提升用户体验,但是,一些违法应用会私自获取当前地理位置,或者不法分子会截获当前地理位置,由此进行损坏用户人身财产安全的行为,导致用户置于危险之中。

因此,现有技术存在如何对定位进行保护的技术问题。



技术实现要素:

本发明实施例提供了一种定位保护的方法和装置,用于通过伪装地理位置对定位进行保护。

第一方面,本发明提供了一种定位保护的方法,包括:

对运行在沙箱中的目标应用进行监测;

当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

可选的,所述定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数中的任意一种或任意多种组合,通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,包括:

通过所述卫星定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的卫星定位结果;和/或

通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果;和/或

通过所述无线局域网定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的无线局域网定位结果。

可选的,在通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果之前,还包括:

确定用户设备可以真实调用的基站的基站类型;

基于所述伪装地理位置和所述基站类型,模仿通过真实的基站定位获得的结果而生成所述基站定位结果。

可选的,当所述定位函数包括所述卫星定位函数、所述基站定位函数和所述无线局域网定位函数时,所述方法还包括:

通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

可选的,在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,包括:

预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

可选的,在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,还包括:

在所述用户设备的显示单元上显示一地图;

接收用户针对所述地图中一地理位置的选择操作;

基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

获取所述地理位置的卫星定位结果。

可选的,在对运行在沙箱中的目标应用进行监测之前,还包括:

通过免ROOT方式获取系统权限;

基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造所述目标应用运行所需要的沙箱。

可选的,通过免ROOT方式获取系统权限,包括:

获取补丁包;

通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,所述补丁包中包括:所述对运行在沙箱中的目标应用进行监测,所述当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,所述通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果的步骤的执行文件。

可选的,通过加载所述补丁包对特定系统漏洞进行修,包括:

以所述补丁包替换特定系统应用,实现系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取系统权限。

第二方面,本发明提供了一种定位保护的装置,包括:

监测模块,用于对运行在沙箱中的目标应用进行监测;

截取模块,用于当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

伪装模块,用于通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

可选的,所述定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数中的任意一种或任意多种组合,所述伪装模块用于通过所述卫星定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的卫星定位结果;和/或通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果;和/或通过所述无线局域网定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的无线局域网定位结果。

可选的,所述装置还包括:

基准类型确定模块,用于在通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果之前,确定用户设备可以真实调用的基站的基站类型;

模仿模块,用于基于所述伪装地理位置和所述基站类型,模仿通过真实的基站定位获得的结果而生成所述基站定位结果。

可选的,当所述定位函数包括所述卫星定位函数、所述基站定位函数和所述无线局域网定位函数时,所述伪装模块用于通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

可选的,所述装置还包括:

预存单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

伪装地理位置确定模块,用于确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

可选的,所述装置还包括:

显示单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,显示一地图;

接收模块,用于接收用户针对所述地图中一地理位置的选择操作;

伪装地理位置确定模块,用于基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

第一获取模块,用于获取所述地理位置的卫星定位结果。

可选的,述装置还包括:

系统权限获取模块,用于在对运行在沙箱中的目标应用进行监测之前,通过免ROOT方式获取系统权限;

第二获取模块,用于基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造模块,用于构造所述目标应用运行所需要的沙箱。

可选的,所述系统权限获取模块用于获取补丁包;通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,所述监测模块、所述截取模块和所述伪装模块调用所述补丁包中的执行文件执行相应的步骤。

可选的,所述系统权限获取模块用于以所述补丁包替换特定系统应用,实现系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取系统权限。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,对运行在沙箱中的目标应用进行监测,当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,然后通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获取所述伪装地理位置。由此可见,通过所述沙箱来运行所述目标应用,对所述目标应用的运行进行监控,在监控到所述目标应用定位时以所述第一钩子函数截取所述定位事件,使得所述定位函数由于未获得所述定位事件而无法进行真实定位。同时,所述第一钩子函数还向所述目标应用返回伪装地理位置的所述定位结果,所以所述目标应用根据所述定位结果只会获得所述伪装地理位置,无法获取用户真实的当前地理位置,由此实现了对定位进行保护,提高了用户人身财产安全。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例中定位保护的方法流程图;

图2为本发明实施例中定位保护的装置结构示意图。

具体实施方式

本发明实施例提供了一种定位保护的方法和装置,用于通过伪装地理位置对定位进行保护。

为了解决上述技术问题,本发明提供的技术方案总体思路如下:

在本发明实施例的技术方案中,对运行在沙箱中的目标应用进行监测,当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,然后通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获取所述伪装地理位置。由此可见,通过所述沙箱来运行所述目标应用,对所述目标应用的运行进行监控,在监控到所述目标应用定位时以所述第一钩子函数截取所述定位事件,使得所述定位函数由于未获得所述定位事件而无法进行真实定位。同时,所述第一钩子函数还向所述目标应用返回伪装地理位置的所述定位结果,所以所述目标应用根据所述定位结果只会获得所述伪装地理位置,无法获取用户真实的当前地理位置,由此实现了对定位进行保护,提高了用户人身财产安全。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本发明第一方面提供了一种定位保护的方法,请参考图1,为定位保护的方法流程图。该方法包括:

S101:对运行在沙箱中的目标应用进行监测;

S102:当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

S103:通过所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

具体来讲,本发明实施例中的目标应用可以为任意应用,如社交应用、音乐应用和办公应用等。对于用户需要对定位进行保护的原生应用,均可以将原生应用的分身应用放入沙箱中执行本发明实施例中的方法。目标应用即为该分身应用。

在S101中,沙箱将对运行在沙箱中的目标应用进行监测。具体来讲,本发明实施例中的沙箱对目标应用的监测,主要是监测目标应用是否启动定位。在具体实现过程中,沙箱还可以对目标应用创建函数、释放内存、添加用户等操作进行监测,本发明不做具体限制。对目标应用是否启动定位进行监测,具体是通过设置在定位函数入口的第一钩子函数来进行监测。定位函数用于在接收定位事件后获取一个或多个表征真实当前地理位置的参数,并执行业务逻辑,生成并返回定位结果。

应用在启动定位后,将生成定位事件,并将定位事件发送给定位函数,然后定位函数基于定位事件而返回定位函数运行的定位结果,应用最终根据定位结果计算获得当前地理位置。在具体实现过程中,应用可以在用户的控制下启动定位,或者,一些违法应用还会在用户未知的情况下私自启动定位,本发明对于目标应用启动定位的方式不做限定。第一钩子函数由沙箱创建,插入位置具体在定位函数的入口,那么,发送给定位函数的消息就被第一钩子函数截取。通过第一钩子函数对目标应用定位的监测,具体为通过第一钩子函数获得定位事件。如果第一钩子函数获得定位事件,表示监测到目标应用启动定位,反之,如果第一钩子函数未获得定位事件,则表示未监测到目标应用启动定位。

当监测到目标应用启动定位并且向定位函数发送定位事件时,在S102中,第一钩子函数将定位事件截取,使定位函数不会获取定位事件,进而使得定位函数由于没有收到定位事件而不会向目标应用提供真实定位结果。

接下来,由于目标应用在未获取定位结果的情况下,会使不法分子或者违法应用有所察觉,或者,目标应用可能多次尝试重新定位而导致功耗过高,因此,本发明实施例中的S103,还通过第一钩子函数向目标应用返回一虚假的定位结果,该虚假的定位结果表示一伪装地理位置,从而使得目标应用根据定位结果获得该伪装地理位置。伪装地理位置指的是伪装成当前地理位置的地理位置,通常情况下与当前地理位置不同。例如,当前用户在天安门,伪装地理位置却是天坛。

沙箱通过第一钩子函数将表示伪装地理位置的定位结果返回给目标应用。目标应用接收到定位结果后,由于目标应用通过定位结果仍然能够计算出一地理位置,因而目标应用并不会觉察此时的定位保护,同时,不法分子也不会觉察到定位获得的地理位置是伪装的,所以,此时用户真实的当前地理位置就不会暴露,由此对定位进行了保护,以及提高了用户的人身财产安全。

更具体而言,用户设备通常基于卫星定位系统、基站和无线局域网中的任意一种或多种来为应用提供定位。其中,卫星定位系统包括但不限于GPS(全球定位系统,Global Positioning System)和北斗系统等。基准包括GSM(全球移动通信系统,Global System for Mobile Communication)、CDMA(码分多址,CodeDivisionMultipleAccess)和LTE(长期演进,Long Term Evolution)等类型的基站。无线局域网例如WiFi(无线保真,WIreless-FIdelity)等。对应地,定位函数就具体有卫星定位函数、基站定位函数和无线局域网定位函数中任意一种或多种。

举例来说,基站定位函数运行,获取用户设备附近的各个基站反馈的基准定位参数,通过基站定位函数业务逻辑计算出基站定位结果,然后将基站定位结果返回应用。假设此时用户设备未打开WiFi和GPS,仅能通过基站进行定位,那么应用将基站定位结果作为最终定位结果,进而向用户提供的当前地理位置为基站定位结果表示的地理位置。或者在进行定位时,用户设备打开GPS,卫星定位函数运行,获取GPS发送的卫星定位参数,通过卫星定位函数业务逻辑计算出卫星定位结果,然后将卫星定位结果返回应用。以及,基站定位函数向应用返回基站定位结果。然后,应用按照预设权重,例如卫星定位结果权重0.8,基站定位结果权重0.2,并基于卫星定位结果和基站定位结果计算出最终定位结果。

因此,本发明实施例中,S103通过第一钩子函数向目标应用返回表示伪装地理位置的定位结果,就具体包括以下几种实现方式:

第一种:

第一钩子函数设置在卫星定位函数入口,截取到定位事件后,设置在卫星定位函数入口的第一钩子函数向目标应用返回表示伪装地理位置的卫星定位结果。

该卫星定位结果标准设置为与卫星定位函数返回的真实卫星定位结果标准一致,避免因标准不一致而暴露。

第二种:

第一钩子函数设置在基站定位函数入口,截取到定位事件后,设置在基站定位函数入口的第一钩子函数向目标应用返回表示伪装地理位置的基站定位结果。

其中,该基站定位结果标准设置为与基站定位函数返回的真实基站定位结果标准一致,避免因标准不一致而暴露。

第三种:

第一钩子函数设置在无线局域网定位函数入口,截取到定位事件后,设置在无线局域网定位函数入口的第一钩子函数向目标应用返回表示伪装地理位置的无线局域网定位结果。

其中,该无线局域网定位结果标准设置为与无线局域网定位函数返回的真实无线局域网定位结果标准一致,避免因标准不一致而暴露。

第四种:

结合第一种实现方式和第二种实现方式,第一钩子函数具体包括两个,分别设置在卫星定位函数入口和基站定位函数入口。两个第一钩子函数分别向目标应用发送卫星定位结果和基站定位结果,使得目标应用基于预设权重,计算出最终地理位置,而最终地理位置即为伪装地理位置。

第五种:

结合第一种实现方式和第三种实现方式,第一钩子函数具体包括两个,分别设置在卫星定位函数入口和无线局域网定位函数入口。两个第一钩子函数分别向目标应用发送卫星定位结果和无线局域网定位结果,使得目标应用基于预设权重,计算出最终地理位置,而最终地理位置即为伪装地理位置。

第六种:

结合第二种实现方式和第三种实现方式,第一钩子函数具体包括两个,分别设置在基站定位函数入口和无线局域网定位函数入口。两个第一钩子函数分别向目标应用发送基站定位结果和无线局域网定位结果,使得目标应用基于预设权重,计算出最终地理位置,而最终地理位置即为伪装地理位置。

第七种:

结合第一种实现方式、第二种实现方式和第三种实现方式,第一钩子函数具体包括三个,分别设置在卫星定位函数入口、基站定位函数入口和无线局域网定位函数入口。三个第一钩子函数分别向目标应用发送卫星定位结果、基站定位结果和无线局域网定位结果,使得目标应用基于预设权重,计算出最终地理位置,而最终地理位置即为伪装地理位置。

在具体实现过程中,本发明所属领域的普通技术人员可以根据实际选择上述多种实现方式中的任意一种,本发明不做具体限制。

进一步,在具体实现过程中,每个用户设备能够调用的基站是有限的,例如中国移动的用户设备只能调用中国移动的基站进行定位。由于不同类型或不同网络制式的基站所提供的基站定位参数标准不同,所以目标应用通过基站定位时,为了避免暴露伪装地理位置并非真实的当前地理位置,作为一种可选的实施例,通过基站定位函数入口的第一钩子函数向目标应用返回表示伪装地理位置的基站定位结果之前,还包括:

确定所述伪装地理位置对应的真实基站的类型;

基于所述伪装地理位置和所述真实基站的类型,模仿通过所述真实的基站定位获得的结果而生成所述基站定位结果。

具体来讲,在本发明实施例中,沙箱中的目标应用为一个分身应用,该分身应用的原生应用运行在沙箱外的环境中。在需要返回目标应用基站定位结果时,沙箱请求原生应用进行定位而获取原生应用的真实基站定位结果。然后,沙箱基于原生应用的真实定位结果,识别出用户设备可以真实调用的基站类型。

用户设备预先存储有不同基站类型对应的基站定位结果的标准。沙箱获取用户设备的基站类型后,确定出该基站类型对应的标准。接下来,基于伪装地理位置,模仿该基站类型对应的标准来生成基站定位结果。举例来说,假设通过原生应用的真实基站定位结果识别出基站类型为CDMA,则沙箱生成表示伪装地理位置的CDMA制式的基站定位结果。

或者,作为一种可选的实施例,当定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数时,所述方法还包括:

通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

具体来讲,在利用卫星定位系统进行定位时,由于卫星定位参数通常仅来自于一个信号源,即一个卫星或一个卫星系统,而利用基站定位时,基站定位参数往往至少来自于三个信号源,即三个基站,以及利用无线局域网定位时,无线局域网定位参数往往自于多个信号源,即当前接入的接入点和附近未接入的接入点,所以,返回基站定位结果和无线局域网定位结果的难度较高。并且,暴露此时的伪装地理位置并非真实的当前地理位置的可能性更高。

因此,在本发明实施例中,当目标应用通过卫星定位系统、基站和无线局域网同时定位时,三个第一钩子函数除了分别向目标应用返回卫星定位结果、基站定位结果和无线局域网定位结果此种实施方式,设置在基站定位函数和无线局域网定位函数入口的第一钩子函数还可以向目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果。

具体来讲,设置在基站定位函数入口的第一钩子函数可以向目标应用返回空NULL,或者返回表示基站超出可定位距离的结果,或者返回附近基站未响应的结果,或者返回基站为伪基站的结果等。设置在无线局域网定位函数入口的第一钩子函数可以向目标应用返回空NULL,或者返回表示无线局域网接入超时的结果,或者返回表示无线局域网带宽不够的结果等。本发明所属领域的普通技术人员可以根据实际进行设置,本发明不做具体限制。

当目标应用收到表示当前不支持基站定位和无线局域网定位的返回结果,将仅基于卫星定位结果计算地理位置。并且,目标应用也不再向基站定位函数和无线局域网定位函数再次发送定位事件。

由于此时沙箱仅需向目标应用返回卫星定位结果,因此降低了控制难道、计算量和功耗,并且不易暴露伪装地理位置。

在具体实现过程中,沙箱先确定出一伪装地理位置,然后根据该伪装地理位置位置向目标应用返回定位结果。在本发明实施例中,确定伪装地理位置,以及返回定位结果的方法有多种,下面对其中两种进行介绍。在具体实现过程中,包括但不限于以下两种。

1、在S103之前,本发明实施例中的方法还包括:

预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

具体来讲,用户设备中预先存储有备选地理位置列表。备选地理位置列表中包括一个或多个备选地理位置。进一步,备选地理位置列表中还存储有每个备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果。在选择伪装地理位置时,可以按照随机算法选择伪装地理位置。或者,获取历史地理位置,计算每个备选地理位置与历史地理位置的接近度,接近度最高的备选地理位置作为伪装地理位置。举例来说,历史地理位置为望京、将台路地铁站和798艺术区,而备选地理列表中的备选地理位置具体为天安门、三里屯、西单、酒仙桥路、什刹海和北京南站。通过计算,酒仙桥路与历史地理位置的接近度最高,因此确定酒仙桥路为伪装地理位置。或者,通过用户设备的显示单元显示备选地理位置列表,让用户自行选择。

其中,确定与历史地理位置接近度最高的备选地理位置为伪装地理位置,原因在于:选择与用户经常所在的地理位置最接近的备选地理位置,更加符合历史规律,进而不易暴露伪装地理位置并非真实当前地理位置。

然后,如果需要向目标应用返回卫星定位结果,则以确定出的备选地理位置对应的真实卫星定位结果为卫星定位结果返回给目标应用;如果需要向目标应用返回基站定位结果,则以确定出的备选地理位置对应的真实基站定位结果为基站定位结果返回给目标应用;如果需要向目标应用返回无线局域网定位结果,则以确定出的备选地理位置对应的真实无线局域网定位结果为无线局域网定位结果返回给目标应用;如果需要向目标应用返回卫星定位结果、基站定位结果和无线局域网定位结果,则以该备选地理位置对应的真实卫星定位结果为卫星定位结果、以该备选地理位置对应的真实基站定位结果为基站定位结果、以该备选地理位置对应的真实无线局域网定位结果为无线局域网定位结果返回给目标应用等等。

2、由用户任意选择伪装地理位置。

在所述用户设备的显示单元上显示一地图;

接收用户针对所述地图中一地理位置的选择操作;

基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

获取所述地理位置的卫星定位结果。

首先在用户设备的显示单元上显示一地图。然后,用户根据显示的地图,在地图中任意选择自己需要的伪装地理位置,并且在地图中针对需要的伪装地理位置进行选择操作。接着,用户设备接收用户的选择操作。进一步,根据选择操作的操作位置,以及显示单元上显示的地图,计算用户所选择的伪装地理位置的卫星定位结果,如经纬度。

由于通常地图本身就包含了经纬度,所以可以方便用户根据需要任意伪装定位。较佳地,如果用户设备中并没有存储地图中每个位置的真实基站定位结果和无线局域网定位结果,则此时可以向目标应用仅返回卫星定位结果,以及向返回表示当前不支持基站定位和无线局域网定位的返回结果。

进一步,应用在定位时,可能不止获取一次最终定位结果,而是在一段时间内多次计算最新的最终定位结果并进行更新。因此,在具体实现过程中,第一钩子函数还可以向目标应用更新定位结果。具体来讲,沙箱请求目标应用的原生应用启动,并获取原生的定位结果,如果该原生应用的定位结果表示用户设备移动,则第一钩子函数确定需要向沙箱内的目标应用也更新定位。

具体来讲,第一钩子函数获取更新时刻,在每个更新时刻向目标应用返回用于更新的伪装地理位置。更进一步,第一钩子函数可以每次向目标应用返回不完全相同的伪装地理位置,并且相邻返回的伪装地理位置应该在预设距离中,以避免相邻返回的伪装地理位置距离过大而暴露。预设距离例如为200m或500m等。

举例来说,更新频率为30s,第一钩子函数在本次更新时向目标应用返回的伪装地理位置为天安门,下一次更新时向目标应用返回的伪装地理位置为天安门,下一次更新时向目标应用返回的伪装地理位置为天安门西。

可选的,作为一种可选的实施例,为了能够通过沙箱对定位进行保护,在本发明S101之前,还包括:

通过免ROOT方式获取系统权限;

基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造所述目标应用运行所需要的沙箱。

具体来讲,Unix系的操作系统,以安卓系统为例,广泛应用于各种用户设备中,例如手机、平板电脑和穿戴式设备等。安卓系统具有严格的权限管理机制,默认状态下,非系统应用的权限较低。要突破权限限制,需要将非系统应用的权限提高,因此需要进行ROOT授权。获得安卓系统权限的非系统应用即可对其他安卓应用的恶意行为进行拦截,对消耗系统资源的设置项进行修改,因此,多数情况下,市面上的安全软件需要在已经获得ROOT授权的安卓用户设备上工作,才能达到最佳效果。但是,普通用户并不掌握较高的专业知识,故不能对用户设备进行正确ROOT授权。即使进行了ROOT授权,在为安全应用开放更高权限的同时,也给了恶意应用可乘之机。更为矛盾的是,在非ROOT条件下,一部分恶意应用能工作,而传统的安全监控应用却会失去绝对优势。

因此,为了解决上述只能在ROOT后获取系统授权的技术问题,本发明实施例还提供了在不ROOT的情况下为提供定位保护。

具体来讲,为方便说明,下面以用户设备的系统为安卓系统为例来进行说明。在S101之前,要获取安卓系统权限,即获取安卓系统中的系统system文件夹的操作权限。现有技术中ROOT方式是获取系统目录操作权限的最基本条件,然而,与现有技术不同的是,本方案不通过ROOT方式获取系统目录操作权限,可以在那些无法ROOT或者用户不愿意ROOT的用户设备上实施定位保护,而不修改系统,不影响用户的质保和升级。

具体来讲,本发明实施例中,通过免ROOT获取系统权限,具体通过如下过程实现:

获取补丁包;

通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,所述补丁包中包括:所述对运行在沙箱中的目标应用进行监测,所述当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,所述通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果的步骤的执行文件。

具体来讲,在本发明实施例中,通过为特定系统漏洞进行修复,借修复系统漏洞之机引入补丁包,将补丁包加载到安卓系统中,成为系统应用的一部分,以获取安卓系统权限。其中,本发明实施例中的特定系统漏洞是指:现有的安卓系统存在任意的系统漏洞。

上述通过加载补丁包对特定系统漏洞进行修复,获取安卓系统权限,具体包括:在加载补丁包修复特定系统漏洞的过程中,以补丁包替换特定系统应用,实现安卓系统对补丁包中的执行文件的加载,使得补丁包中的执行文件获取安卓系统权限。其中,补丁包中的执行文件获取到安卓系统权限之后,可以对安卓系统中的system文件夹进行操作。而本发明实施例中的执行文件中包括执行对运行在沙箱中的目标应用进行监测,当监测到目标应用向定位函数发送定位事件时,通过定位函数入口的第一钩子函数截取定位事件,通过第一钩子函数向目标应用返回表示伪装地理位置的定位结果等各个步骤的逻辑代码,因此,加载补丁包后运行执行文件中的代码,就可以执行上述S101至S103。

以一个具体的例子来对上述过程进行说明,假设本发明实施例中的特定系统漏洞为安卓系统中的主秘钥MasterKey漏洞,利用该漏洞可以在不修改签名的情况下修改安卓系统代码。基于MasterKey原生漏洞,本发明在对MasterKey漏洞进行修复的同时,一方面修复了MasterKey漏洞,另一方面利用MasterKey漏洞的修复过程获取了安卓系统权限,一举多得,符合实际需求,保障用户使用用户设备的信息安全。具体来讲,在本发明实施例中,在检查到安卓系统中的MaterKey漏洞后将通知用户对MasterKey漏洞进行修复。修复过程中需要获取用于修复MasterKey漏洞的补丁包,并安装获取的补丁包,以补丁包应用替换安卓系统原有的系统应用存储设置Setting Storage,或者,以补丁包在安卓系统原有的系统应用Setting Storage的基础上进行升级,由于系统应用Setting Storage在安卓系统启动时即进行加载,所以补丁包中的执行文件也在安卓系统启动时便进行加载。此时补丁包中的执行文件中的代码拥有了安卓系统最高权限,可以实现system文件访问、权限管理等操作。在获得了安卓系统权限之后,即可以执行S101至S103的步骤。

此外,本发明实施例中修复特定系统漏洞的补丁包可以根据用户意愿随时卸载,卸载后无残留,符合用户需求。

在具体实现过程中,上文中的特定系统漏洞MasterKey漏洞以及特定系统应用Setting Storage应用均为举例说明,本发明所属领域的普通技术人员可以根据实际需求进行选择,本发明不做具体限制。

接下来,基于系统权限获取目标应用的安装包并保存至指定目录下。其中本发明实施例所述的指定目录,是指本发明处于文件组织、管理效率的考虑而为这些需要构建沙箱环境目标应用而提供的自定义默认目录,所有通过本方案在沙箱中运行的应用的安装包,均可被移动或复制保存到指定目录中。在具体实现过程中,指定目录也可以是系统中已经存在的目录,可以是单个目录,也可以是多个目录。因此,概括而言,指定目录是为本发明所采用的用于存放由本方案构建沙箱环境的目标应用的安装包的目录。

具体来讲,在本发明实施例中,获取目标应用的安装包并保存到指定目录下,可以通过多种方式实现。下面对其中三种方式进行介绍。在具体实现过程中,包括但不限于以下三种方式。

方式一:当目标应用是已安装应用时,从系统的应用安装目录中查找目标应用的安装包,将安装包复制至指定目录,然后卸载系统中的目标应用。

例如,安卓系统中应用的安装会涉及对如下目录的操作:安装应用时安卓系统先把APK(安卓应用的安装包,AndroidPackage)复制到安卓应用安装目录data/app目录中;将APK解压后的代码文件(.dex文件)安装到data/dalvik-cache目录下;data/data建立并存放安卓应用所需的资源数据。基于上述原理可知,应用的APK文件即为应用的安装包,在data/app目录中可以找到应用的安装包。因此,对于已安装的目标应用而言,可以从data/app目录中复制相应的APK文件到指定目录中,然后从安卓系统中卸载目标应用,使得后续目标应用在沙箱中运行而不在沙箱外运行,避免发生冲突。

方式二,当目标应用是正在进行安装的应用时,通过注册默认安装器拦截目标应用的安装广播信息,从安装广播信息中获取目标应用的安装包,将安装包存放至指定目录。

例如,对于准备或正在进行安装的目标应用而言,本发明可以通过将自身注册为默认安装器的形式,获取该目标应用的安装广播信息。从安装广播信息中获取目标应用的安装包所在位置,进而从安装包所在位置获取目标应用的安装包,然后将目标应用的安装包移动存放到指定目录。

将安装包保存到指定目录下之后,接下来,就可以构造目标应用的沙箱环境了。具体来讲,本发明实施例中可以通过以下过程构建沙箱:

解析所述指定目录下的所述目标应用的安装包,获取所述目标应用的相关信息;

构造所述目标应用运行所需的资源环境,以在所述目标应用运行时调取相应的资源;

构造类加载器,以加载所述目标应用的执行文件中的相应类文件;

构造主线程,以使所述主线程执行所述目标应用中的各组件的启动操作;

为所述目标应用中的各组件分别构造一个加载应用安装包对象。

具体来讲,解析指定目录下的目标应用的安装包,获取安装包中包含的各组件。其中,一个应用的组件分为四种类型,这四种类型分别为:活动Activity组件、广播接收者Broadcast Receiver组件、服务Service组件和内容提供者Content Provider组件。在具体实现过程中,有的应用也可能由上述一种组件或多种组件组成,而不一定必须包括上述四种组件。应用的各个组件都需要注册才能使用,即每一个组件都需要在应用的安装包的配置文件AndroidManifest.xml中进行配置。因此,应用的安装包的配置文件AndroidManifest.xml中会列出应用所包含的所有组件。由此可知,本实施例可通过读取目标应用的安装包中的AndroidManifest.xml文件,来获取目标应用的安装包中所包含的所有组件。这里需要说明的是:系统中的PMS(安装包管理服务器,Package Manager Service)安装应用的过程实质上就是解析应用的安装包中的配置文件AndroidManifest.xml的过程,并从里面得到应用的相关信息,如得到应用的Activity组件、Service组件、Broadcast Receiver组件和Content Provider组件等信息。有了相关信息后,通过AMS(活动管理服务,Activity Manager Service)就可以在系统中正常地运行应用了。与上述系统安装应用的过程类似,本发明也先通过解析目标应用的安装包来获取目标应用的相关信息。具体地,可采用反射机制来获取目标应用的安装包中包含的各组件。其中,本发明实施例中所采用的反射机制可以为爪哇Java反射机制,Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能即为Java语言的反射机制。不同语言都有其相对应的反射机制,例如,C语言和C++语言均有其对应的反射机制。

其次,目标应用在被加载运行时所采用的上下文是沙箱的上下文,因此,本方案所构造的沙箱中不仅要能加载目标应用中的各组件,还需构建目标应用运行所需要的环境。

具体来讲,应用在运行的过程中,是通过资源管理器Asset Manager来读取打包在应用的安装包里面的资源文件的。应用的每一个Activity组件都关联一个Contextlmpl对象,这个Contextlmpl对象就是用来描述Activity组件的运行上下文环境的。调用ContextImpl对象的成员函数init来执行初始化Activity组件运行上下文环境的工作,其中就包括创建用来访问应用资源的Resources对象和AssetManager对象的工作。其中,ContextImpl.init函数就定义在文件frameworks/base/core/java/android/app/ContextImpl.java中。ContextImpl.init函数中的参数packageInfo指向的是一个LoadedApk对象,这个LoadedApk对象描述的是当前正在启动组件所属的APK。用来访问应用程序资源的Resources对象是通过调用参数packageInfo所指向的LoadedApk对象的成员函数getResources创建的。由此可知,为了创建Resources对象,以提取或访问应用资源,本发明实施例还需分别为目标应用中的各组件构建一个loadedApk对象。

可见,本发明实施例需要为目标应用构造其运行所需的资源环境,以在启动各组件时调取相应的资源。具体地,可采用如下方式实现:对资源Resources类的构造函数中的成员变量massets进行修改,以在启动各组件时通过massets来调取相应的资源;和/或对资源管理器Asset Manager中的Asset Path函数进行修改,修改后的Asset Path函数指向目标应用的安装包中的资源文件,以在启动各组件时通过Asset Manager调取Asset Path函数来获取资源文件中的对应资源。其中,Resources类的构造函数定义在文件frameworks/base/core/java/android/content/res/Resources.java中。因为Resources类的构造函数将参数assets所指向的一个AssetManager对象保存在成员变量mAssets中,即mAssets=assets,使得Resources类的构造函数可以通过mAssets来访问应用程序的资源。因此,本发明实施例可通过对资源类的构造函数中的成员变量massets进行修改,来实现通过massets调取应用程序所需的资源。其中,上述实现方式可采用反射机制来实现。当然,还可对资源管理器Asset Manager中的Asset Path函数进行修改,如通过AssetManager对象的成员函数addAssetPath来添加指定的应用程序资源文件路径(如:路径为/system/app/Music.apk)到Asset Path函数中。由于addAssetPath是隐藏API(应用程序编程接口,Application Programming Interface),我们无法直接调用,所以只能通过反射机制来实现。

进一步,本发明实施例还需要为目标应用构造类加载器,以加载各组件中的相应加载类。具体来讲,构造类加载器,可采用如下方式实现:将目标应用的路径添加到类加载器中的路径列表pathlist中,构造根据应用程序路径查找加载类的类加载器;和/或,对类加载器中的m parent成员进行修改,构造首先用parent找加载类的类加载器。构造首先用parent找加载类的类加载器的目的是,系统在找一个加载类的时候,首先调的是findloadedclass()函数,接着就会去调用mparentfindclass()函数。如果本发明实施例直接将class loader构造为首先用parent找加载类的类加载器,这样系统在找这个类的时候,就直接调用mparentfindclass()函数去找了,省去了调用findloadedclass()函数找类的步骤。

接着,由于一个应用的运行只有一个主进程ActivityThread,ActivityThread对象描述的是当前正在运行的应用进程,因此,本发明实施例在沙箱中需构造出目标应用的ActivityThread,以使Activity Thread执行目标应用中的各组件的启动操作。

最后,分别为各组件构造一个加载目标应用的安装包loadedApk对象。具体的,可采用如下方式实现:通过反射机制反射Activity Thread里的packageinfo,以分别为各组件构造一个目标应用的安装包loadedApk对象。

此外,若加载的组件为内容提供者ContentProvider组件,则通过反射机制调用ContentProvider组件。

由上述描述可知,本发明实施例提供的技术方案通过构建目标应用运行所需的运行环境,以为目标应用提供同在安卓系统中安装后的运行环境相同的沙箱环境,使得目标应用在沙箱中运行,进而可以基于沙箱在目标应用中插入第一钩子函数进行监测和返回伪装地理位置,由此实现定位保护。

或者,在本发明实施例中,也可以通过如下方式构造沙箱,具体包括:

解析所述指定目录下的所述目标应用的安装包,生成所述目标应用的镜像安装包;

在所述镜像安装包的执行文件中注入指示调用第二钩子函数的代码;

修改所述镜像安装包的配置文件的配置参数,用于加载所述应用;

在系统中安装并运行所述镜像安装包;其中,所述第二钩子函数用于对所述应用的行为进行监控。

具体来讲,目标应用的安装包为压缩文件,一种方式中,可以将目标应用的安装包解压至一个临时工作目录以完成解压工作,解压后,即可对目标应用的安装包中的各个文件进行解析。另一种方式中,也可以在内存中直接解析目标应用的安装包。无论采取哪种方式对目标应用的安装包进行解析,目的是为了获取相关参数和资源,以配置生成目标应用的镜像安装包。

镜像可以是硬盘镜像也可以是内存镜像。由于目标应用的安装包的构成文件中包含执行文件Classes.dex,相应地,在目标应用的镜像安装包中也包含执行文件Classes.dex,本方案通过在镜像安装包中的执行文件中Classes.dex注入指示调用第二钩子函数的代码。第二钩子函数用于对整个目标应用的行为进行监控。且目标应用的安装包的构成文件中包含配置文件Androidmanifest.xml,相应地,在目标应用的镜像安装包中也包含配置文件Androidmanifest.xml,对该配置文件进行修改,使得修改后的镜像安装包适于加载目标应用。具体地,本方案利用Java反射调用机制将LoadApk与ActivityThread涉及的运行配置信息用反射替换成指定目录中的目标应用的安装包的类加载器ClassLoader与资源,实现镜像安装包对应的应用在运行时对目标应用的加载。至此,本发明实施例所构建的目标应用的镜像安装包在运行时,先加载上述指示调用第二钩子函数的执行文件,再加载目标应用,能够实现利用第二钩子函数对目标应用在运行中发生的行为的监控捕获。

本发明实施例中,目标应用被加载到所构建的目标应用的镜像安装包对应的应用的内部环境中去运行,目标应用的镜像安装包对应的应用的内部环境实质上相当于是沙箱环境,将目标应用在安卓系统中隔离开来,并通过在该沙箱环境中设置第二钩子函数来实现对目标应用的行为的监控。

基于与前述实施例中定位保护的方法同样的发明构思,本发明第二方面还提供一种定位保护的装置,如图2所示,包括:

监测模块101,用于对运行在沙箱中的目标应用进行监测;

截取模块102,用于当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

伪装模块103,用于通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

具体来讲,定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数中的任意一种或任意多种组合,那么,伪装模块103用于通过所述卫星定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的卫星定位结果;和/或通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果;和/或通过所述无线局域网定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的无线局域网定位结果。

进一步,本发明实施例中的装置还包括:

基准类型确定模块,用于在通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果之前,确定用户设备可以真实调用的基站的基站类型;

模仿模块,用于基于所述伪装地理位置和所述基站类型,模仿通过真实的基站定位获得的结果而生成所述基站定位结果。

更进一步,当定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数时,伪装模块103可以用于通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

更进一步,本发明实施例中的装置还包括:

预存单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

伪装地理位置确定模块,用于确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

或者,本发明实施例中的装置还包括:

显示单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,显示一地图;

接收模块,用于接收用户针对所述地图中一地理位置的选择操作;

伪装地理位置确定模块,用于基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

第一获取模块,用于获取所述地理位置的卫星定位结果。

更进一步,为了实现在不ROOT用户设备的情况下进行定位保护,本发明实施例中的装置还包括:

系统权限获取模块,用于在对运行在沙箱中的目标应用进行监测之前,通过免ROOT方式获取系统权限;

第二获取模块,用于基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造模块,用于构造所述目标应用运行所需要的沙箱。

具体来讲,系统权限获取模块用于获取补丁包;通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,监测模块101、截取模块102和伪装模块103调用所述补丁包中的执行文件执行相应的步骤。

进一步,系统权限获取模块用于以所述补丁包替换特定系统应用,实现系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取系统权限。

前述图1实施例中的定位保护的方法的各种变化方式和具体实例同样适用于本实施例的定位保护的装置,通过前述对定位保护的方法的详细描述,本领域技术人员可以清楚的知道本实施例中定位保护的装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,对运行在沙箱中的目标应用进行监测,当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,然后通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获取所述伪装地理位置。由此可见,通过所述沙箱来运行所述目标应用,对所述目标应用的运行进行监控,在监控到所述目标应用定位时以所述第一钩子函数截取所述定位事件,使得所述定位函数由于未获得所述定位事件而无法进行真实定位。同时,所述第一钩子函数还向所述目标应用返回伪装地理位置的所述定位结果,所以所述目标应用根据所述定位结果只会获得所述伪装地理位置,无法获取用户真实的当前地理位置,由此实现了对定位进行保护,提高了用户人身财产安全。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了,A1、一种定位保护的方法,其特征在于,包括:

对运行在沙箱中的目标应用进行监测;

当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

A2、根据A1所述的方法,其特征在于,所述定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数中的任意一种或任意多种组合,通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,包括:

通过所述卫星定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的卫星定位结果;和/或

通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果;和/或

通过所述无线局域网定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的无线局域网定位结果。

A3、根据A2所述的方法,其特征在于,在通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果之前,还包括:

确定用户设备可以真实调用的基站的基站类型;

基于所述伪装地理位置和所述基站类型,模仿通过真实的基站定位获得的结果而生成所述基站定位结果。

A4、根据A3所述的方法,其特征在于,当所述定位函数包括所述卫星定位函数、所述基站定位函数和所述无线局域网定位函数时,所述方法还包括:

通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

A5、根据A3所述的方法,其特征在于,在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,包括:

预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

A6、根据A4所述的方法,其特征在于,在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,还包括:

在所述用户设备的显示单元上显示一地图;

接收用户针对所述地图中一地理位置的选择操作;

基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

获取所述地理位置的卫星定位结果。

A7、根据A1所述的方法,其特征在于,在对运行在沙箱中的目标应用进行监测之前,还包括:

通过免ROOT方式获取系统权限;

基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造所述目标应用运行所需要的沙箱。

A8、根据A7所述的方法,其特征在于,通过免ROOT方式获取系统权限,包括:

获取补丁包;

通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,所述补丁包中包括:所述对运行在沙箱中的目标应用进行监测,所述当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件,所述通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果的步骤的执行文件。

A9、根据A8所述的方法,其特征在于,通过加载所述补丁包对特定系统漏洞进行修,包括:

以所述补丁包替换特定系统应用,实现系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取系统权限。

B10、一种定位保护的装置,其特征在于,包括:

监测模块,用于对运行在沙箱中的目标应用进行监测;

截取模块,用于当监测到所述目标应用向定位函数发送定位事件时,通过所述定位函数入口的第一钩子函数截取所述定位事件;

伪装模块,用于通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果,以使所述目标应用基于所述定位结果获得所述伪装地理位置。

B11、根据B10所述的装置,其特征在于,所述定位函数包括卫星定位函数、基站定位函数和无线局域网定位函数中的任意一种或任意多种组合,所述伪装模块用于通过所述卫星定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的卫星定位结果;和/或通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果;和/或通过所述无线局域网定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的无线局域网定位结果。

B12、根据B11所述的装置,其特征在于,所述装置还包括:

基准类型确定模块,用于在通过所述基站定位函数入口的所述第一钩子函数向所述目标应用返回表示所述伪装地理位置的基站定位结果之前,确定用户设备可以真实调用的基站的基站类型;

模仿模块,用于基于所述伪装地理位置和所述基站类型,模仿通过真实的基站定位获得的结果而生成所述基站定位结果。

B13、根据B12所述的装置,其特征在于,当所述定位函数包括所述卫星定位函数、所述基站定位函数和所述无线局域网定位函数时,所述伪装模块用于通过所述第一钩子函数向所述目标应用返回表示当前不支持基站定位和无线局域网定位的返回结果,使得所述目标应用基于所述卫星定位结果计算所述伪装地理位置。

B14、根据B12所述的装置,其特征在于,所述装置还包括:

预存单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,预先存储备选地理位置列表,所述备选地理位置列表中包括一个或多个备选地理位置,以及每个所述备选地理位置对应的真实卫星定位结果、真实基站定位结果和真实无线局域网定位结果;

伪装地理位置确定模块,用于确定出一个所述备选地理位置作为所述伪装地理位置,以使得所述第一钩子函数以所述备选地理位置的所述真实卫星定位结果为所述卫星定位结果,以所述备选地理位置的所述真实基站定位结果为所述基站定位结果,和/或以所述备选地理位置的所述真实无线局域网定位结果为所述无线局域网定位结果。

B15、根据B13所述的装置,其特征在于,所述装置还包括:

显示单元,用于在通过所述第一钩子函数向所述目标应用返回表示伪装地理位置的定位结果之前,显示一地图;

接收模块,用于接收用户针对所述地图中一地理位置的选择操作;

伪装地理位置确定模块,用于基于所述选择操作,确定所述用户选择的地理位置为所述伪装地理位置;

第一获取模块,用于获取所述地理位置的卫星定位结果。

B16、根据B10所述的装置,其特征在于,所述装置还包括:

系统权限获取模块,用于在对运行在沙箱中的目标应用进行监测之前,通过免ROOT方式获取系统权限;

第二获取模块,用于基于所述系统权限,获取所述目标应用的安装包并保存至指定目录下;

构造模块,用于构造所述目标应用运行所需要的沙箱。

B17、根据B16所述的装置,其特征在于,所述系统权限获取模块用于获取补丁包;通过加载所述补丁包对特定系统漏洞进行修复,以获取所述系统权限;

其中,所述监测模块、所述截取模块和所述伪装模块调用所述补丁包中的执行文件执行相应的步骤。

B18、根据B17所述的装置,其特征在于,所述系统权限获取模块用于以所述补丁包替换特定系统应用,实现系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取系统权限。

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