首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一些应用程序(微信)如何忽略假位置,然后发现真实的位置呢?

一些应用程序(微信)如何忽略假位置,然后发现真实的位置呢?
EN

Stack Overflow用户
提问于 2016-05-11 23:48:43
回答 6查看 56.2K关注 0票数 11

我已经安装了一个假位置应用程序,并设置我的位置不同。然后打开谷歌地图和微信应用,

  • 谷歌地图显示我的位置作为我设置的(假的)
  • 微信应用程序忽略了的假定位,检测的真实位置(如何?)

然后,我想防止微信分析我以前收到的真实地点和新的假地点。

  • 卸载微信
  • 重新启动我的设备
  • 把我的位置设为假的
  • 微信又装了

但同样的结果它能探测到我的真实位置。

我真的很想知道他们是怎么做到的。有什么想法吗?

我已经尝试过的

  • Gps提供者欺骗
  • 网络提供者欺骗
  • 融合定位提供者欺骗
  • IP地理定位欺骗
  • Gps提供商欺骗+ IP地理定位欺骗

更新

即使在禁用的情况下也会使用GPS。

07-02 11:46:15.504 2346-2356D/LocationManagerService:请求434a7e28全球定位系统RequestACCURACY_FINE gps requested=+1s0ms fastest=+1s0ms从com.tencent.mm(10173)

结论

  • 你可以伪造微信的旧版本(低于6.0)的位置。
  • 使用类似于BaiduLocationSDK的东西。它不受通过LocationManager和融合提供者进行的任何模拟尝试的影响。
  • 我不确定,但是,似乎BaiduLocationSDK通过硬件级别使用全球定位系统。
EN

回答 6

Stack Overflow用户

发布于 2016-06-30 19:50:16

为了检查假位置,大多数应用程序在接收到的GGA数据中查找NMEA (National Marine Electronics Association)GSV语句。假位置提供程序不会将NMEA语句与位置一起发送,因此可以使用此参数

如果他们还没有在阈值时间内收到GGAGSV的句子,比如说100秒钟,他们就会标记当前的位置提供程序。

这个过程被重复,直到收到一组有效的NMEA句子,然后选择相应的位置。

若要撤回NMEA数据,请调用LocationManager#addNmeaListener(GpsStatus.NmeaListener listener),然后在侦听器中调用

代码语言:javascript
复制
void onNmeaReceived(long timestamp, String nmea) {
    Log.d("Nmea Data",nmea);
}

有关更多信息,请参见添加一个NmeaListener

NMEA语句、GGAGSV如下所示

GGA -提供三维定位和精度数据的基本固定数据。

样本:"$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47"

代码语言:javascript
复制
Where:
 GGA          Global Positioning System Fix Data
 123519       Fix taken at 12:35:19 UTC
 4807.038,N   Latitude 48 deg 07.038' N
 01131.000,E  Longitude 11 deg 31.000' E
 1            Fix quality: 0 = invalid
                           1 = GPS fix (SPS)
                           2 = DGPS fix
                           3 = PPS fix
                           4 = Real Time Kinematic
                           5 = Float RTK<br/>
                           6 = estimated (dead reckoning) (2.3 feature)
                           7 = Manual input mode>
                           8 = Simulation mode
 08           Number of satellites being tracked
 0.9          Horizontal dilution of position
 545.4,M      Altitude, Meters, above mean sea level
 46.9,M       Height of geoid (mean sea level) above WGS84 ellipsoid
 (empty field) time in seconds since last DGPS update
 (empty field) DGPS station ID number
 *47          the checksum data, always begins with *

GSV -视图中的卫星显示了卫星的数据,该单位可以根据其查看掩码和年鉴数据找到这些数据。它还显示了当前跟踪这些数据的能力。请注意,一个GSV语句只能为多达4个卫星提供数据,因此可能需要3句完整的信息。GSV语句包含比GGA可能显示的更多的卫星是合理的,因为GSV可能包括不作为解决方案一部分的卫星。GSV语句均按顺序出现,这不是一项要求。为了避免数据带宽的超载,一些接收者可能会将不同的句子放置在完全不同的样本中,因为每个句子都识别出它是哪一个。

样本:"$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75"

代码语言:javascript
复制
Where:
  GSV          Satellites in view
  2            Number of sentences for full data
  1            sentence 1 of 2
  08           Number of satellites in view

  01           Satellite PRN number
  40           Elevation, degrees
  083          Azimuth, degrees
  46           SNR - higher is better
               for up to 4 satellites per sentence
  *75          the checksum data, always begins with *

来源:NMEAData

票数 4
EN

Stack Overflow用户

发布于 2016-07-01 19:57:27

一些第三方的location,如BaiduLocationSDK,并不能通过系统反映虚假的位置设置。

是为了安全的目的。

票数 4
EN

Stack Overflow用户

发布于 2016-06-25 21:03:10

我在评论中提出问题的原因是,我希望你能测试微信对不同情况的反应。

还有几种检测设备位置的方法,TestProvider不应该影响AFAIK。这个需要测试,但是这里有一些想法:

编辑:添加了电话管理器选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37175039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档