最近Pokemon Go 火的不行,结果人家服务器扛不住了,只接受GPS定位信息在澳洲的客户端的登陆请求。今天自己搞了个小Demo,在未越狱的iPhone上把系统的GPS定位信息给改了。

步骤:

Xcode8-beta上新建一个空白工程 -> Edit scheme -> Default Location 选澳洲 -> Device选真机设备,Run

Paste_Image.png

现在,看看自己手机(我是iOS10系统):
1.微信:

Paste_Image.png

2.高德地图:

Paste_Image.png

3.系统相机随便拍个照,查看位置信息

Paste_Image.png

4.查找我的iPhone

Paste_Image.png

现在美中不足是,即使应用删除,GPS定位信息还是假的,需要删除应用重启手机,才能恢复正常GPS。Demo我放在了Github上https://github.com/sueLan/RYFakeGPS。
用免费开发者账号也可以在真机上调试http://www.jianshu.com/p/540e722b8eff

早有Fake GPS这种提供虚拟定位信息的应用。劳资以前没有研究过.也有人逆向微博,在运行时修改定位信. 但这些方法的前提是你有个越狱设备。Quora上早也有讨论过,如何未越狱设备上如何修改GPS定位信息.各路神招:重载CLLocationManager方法、安装GPS中继器假冒GPS信号、设备代理、iOS模拟器Debug模式的Location模拟......


GPS定位原理

我们先来看一个博客,iOS定位原理.我抄了一段:

GPS定位原理:这个是美国军方搞的, 军民两用, 但仍然完全受军方控制(比如可以随时随地设置某个地区收到的信号与否及其精度), 其原理就是:利用天上的卫星(共24颗)不断地广播信号, 地面的GPS接收设备收到信号后, 通过分析多个卫星信号,就可以计算出地球坐标, GPS保证全球任何一个地方(98%)都可以同时收到至少4个卫星的信号, 从而可以准确确定您的经纬度以及海拔位置. GPS定位精度可达10米以内, 不过这是美国军方控制的, 战争时期可能变的不稳定或者误报. (不过我国也有自己的系统, 北斗系统, 目前已经亚洲的覆盖, 还在推广中)卫星定位必须要能收到卫星信号,因为卫星信号都是很微弱的,虽然iPhone 4开始提升了GPS硬件的灵敏度,但仍然需要在窗户旁,或者户外使用,才能确保卫星信号的强度和稳定性。与基站定位和WIFI定位相比,GPS耗电最大,速度最慢,但是精度最高。而iPhone的GPS与纯粹的GPS定位不同, 称为A-GPS, 即辅助GPS.(比GPS更优,不过GPS也分芯片和性能的,不是说所有的AGPS比所有的GPS都好)因为GPS定位中最耗时、最耗电的就是获取当前天上的卫星信息,哪些卫星可见、在什么位置、时钟是多少等等,这个过程可能花费数十秒甚至几分钟,而AGPS就是利用网络,首先将基站定位或者WIFI定位获得的大概位置发到远程服务器,有服务器进行查询和计算,得出这个位置下当前卫星信息,反馈给iOS设备,iOS设备就可以直接用这些信息来接受卫星信号,不用自己去扫描分析了。这样可以极大提高定位速度,将初次定位时间缩短到1~2秒完成。A-GPS优点是定位快,缺点是需要网络,但也只是在初次定位时需要网络,因为一旦卫星信息返回,在有限时间和范围内,这些信息无须改变,之后的GPS定位就不再需要联网,都是直接用这些卫星参数接受信息了。在iOS设备上,上述定位方式会综合应用,一般地,可能先按照最快的“无网基站定位”返回一个位置,当有网络连接时,在用有网基站定位更新位置,然后,利用AGPS上网查询卫星星图,最后,在能收到GPS信号的情况下,转为使用GPS定位。根据当前信号情况和网络环境,iOS可能在上述方式之间反复迭代,不一定一致特定步骤或者方式,而且随着iOS升级,定位顺序和规则可能改变。

GPX FILES

GPX(GPS eXchange Format,GPS交换格式)是一个XML格式,为应用软件设计的通用GPS数据格式。它可以用来描述路点、轨迹、路程。它用来保存位置,海拔和时间。

Paste_Image.png

Xcode也是用GPX 文件来存储位置信息.所以,我们还可以自定义一个GPX文件,模拟任意的位置信息。

Paste_Image.png

https://blackpixel.com/writing/2013/05/simulating-locations-with-xcode.html
https://github.com/whilethis/location-simulation


大多数App取定位信息的时候,都是调用用系统的Core Location API ,CLLocationManager.

Paste_Image.png

然而在此所有app调用定位服务后,获取到的都是我在FakeGPS工程中选的Default Location的定位信息。Why ? 有人说是bughttp://stackoverflow.com/questions/14285453/xcode-default-simulated-location

Paste_Image.png

各种联想中...

文/蓝新(简书作者)
原文链接:http://www.jianshu.com/p/6b1a2bf25c4c

iOS开发:Pokemon Go试玩,未越狱的iPhone伪造GPS定位信息相关推荐

  1. python正弦波叠加方波_傅立叶变换还能画简笔画?谷歌工程师开发的这个试玩网站火了...

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 无论是处理声音和图像信号,都必须用到傅立叶变换.其实除了这些"正经"用途,它还能做一些有意思的事情. 最近,一位名叫Je ...

  2. 傅立叶变换还能画简笔画?谷歌工程师开发的这个试玩网站火了| 附资源

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 无论是处理声音和图像信号,都必须用到傅立叶变换.其实除了这些"正经"用途,它还能做一些有意思的事情. 最近,一位名叫J ...

  3. 要不要升级先看这篇!iOS 11 最全试玩体验

    苹果在今年的 WWDC 上,正式公布了 iOS 10.macOS High Sierra 以及 watchOS 4 等操作系统.这次 WWDC 也是猛料最多的一次,除了全新 iMac Pro 外,苹果 ...

  4. iOS开发基本功的那些事儿(未完待续)

    Objc 一.三大特性 1.封装_点语法 2.继承 3.多态 1> 什么是多态 多态:不同对象以自己的方式响应相同的消息的能力叫做多态. 由于每个类都属于该类的名字空间,这使得多态称为可能.类定 ...

  5. ios开发 静音键设置_苹果用户必看 iPhone 静音键的秘密

    原标题:苹果用户必看 iPhone 静音键的秘密 静音这个功能对我们来说都不陌生,那为什么要单拿 iPhone 的静音来说呢?其实这里面有很多大家不知道的秘密. 静音这个功能的作用只有两个,一是我们不 ...

  6. iOS开发之录屏时如何使系统录不到敏感信息

    -- 方法一:设置输入框的属性secure text entry -- 方法二 原理:在密码输入框插入播放视频的layer,我们看到的是视频,录屏录到的是layer后面内容 参考:iOS 防止系统截屏 ...

  7. 和 iOS 开发聊聊越狱

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者 | Peter Steinberger  来源 ...

  8. 【组队学习】【31期】IOS开发

    IOS开发 航路开辟者:李岳昆.易远哲 领航员:杨皓博 航海士:李岳昆.易远哲 基本信息 开源内容:https://github.com/datawhalechina/team-learning-pr ...

  9. 无限互联iOS开发视频教程V2.0

    原文地址:无限互联iOS开发视频教程V2.0作者:天涯 视频网址: http://www.soku.com/t/nisearch/无限互联/_cid__time__sort_score_display ...

  10. 为什么你做手游试玩任务无法提现

    除了全套提供手游试玩服务,我们还有单纯开发试玩APP的业务,每天都会接触这个行业的朋友.通过和他们的沟通交流,发现这个行业除了脚本这个难点外,还有一个难点就是做了任务拿不到钱,很多朋友被手游渠道终止合 ...

最新文章

  1. mysql主从及读写分离
  2. python算法与程序设计基础第二版-算法与程序设计基础(Python版) - 吴萍
  3. 2019年安徽高考最高分出炉:文科681分 理科710分
  4. mysql 使用不同引擎_mysql 不同引擎的比较
  5. 网站添加页面热力图--百度统计
  6. 没有第三个变量的前提下交换两个变量_JavaScript 交换值的方法,你能想到几种?
  7. wcdma码片速率_WCDMA中的码片速率,符号速率,信息速率(bit rate)之间的关系
  8. sharepoint中使用xslt构建Spotlight(焦点图效果)
  9. Ubuntu18.04安装BeyondCompare
  10. 【Spring cloud 系列】:构建Eureka Server (02)
  11. 父html向子html传递参数,子父组件之间传值.html
  12. 程序员发布:一张图读懂支撑阿里双十一1682亿的技术架构体系
  13. Windows 10 上使用 CMake GUI 编译 Krita 源代码并使用 MinGW 64 作为构建工具
  14. 解决:win10下teamviewer检测为商业用途
  15. 微信小程序仿朋友圈,实现点赞和评论功能
  16. 【spark】Spark SQL:INSERT INTO语句语法
  17. 【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】
  18. 面试题(1)最全BAT面试精华汇总
  19. 机器视觉CCD和CMOS图像传感器的区别主要有哪些
  20. 取Juniper设备LOG

热门文章

  1. 计算机网络配置vlan实验报告,北京理工大学-计算机网络实践-VLAN配置及VLAN间通信实验报告...
  2. Linux命令大全详解
  3. php如何自动阅卷,智能评卷系统 自动阅卷软件
  4. MAYA安装包+安装教程
  5. 磁力链转bt种子 python_实战Python实现BT种子转化为磁力链接
  6. 清华大学计算机专业在职博士吧,清华大学在职博士含金量高吗?
  7. nfine配置oracle,nfine去后门版和数据库说明
  8. 国内银行卡BIN号速查简表(2016)
  9. 数字通信系统相关基本概念(一)
  10. 计算机视觉算法与应用汇总