iOS逆向开发(6):微信伪造位置
仍然以微信为例,实战地练习一下使用Reveal、iOSOpenDev等工具注入APP的流程,积累经验。这一系列的文章都是学习过程的总结,不带任何商业目的。
本文解决一个问题:如何伪造一个经纬度,在微信的附近的人中,看到外国的朋友。
小白:我要瞬间移动到旧金山,看看黄师傅的宝芝林的同事们!
之前小程已经介绍了常规的注入流程,这里只介绍一些差别的东西,以及具体的注入操作。
想要伪造位置,最好的办法就是,找到获取位置的函数,返回一个目标位置即可。
(1)获取位置的函数
在定位这个函数时,可以从界面入手,通过Reveal找到相关界面的类,再借助classdump拿到的类信息,以及结合hook的输出,就会慢慢接近目标。
比如,“附近的人”,所在的背景viewcontroller是这样的:
小程直接给出这个目标函数:SeePeopleNearByLogicController::onRetrieveLocationOK。
但要知道,跟踪的过程(甚至要反复尝试)是不可避免的,锁定目标的耗时跟经验与运气有关。
(2)修改返回的位置
onRetrieveLocationOK返回的是一个CLLocation对象。CLLocation是iOS sdk的一个类,功能很强大,比如经纬度、高度、温度、速度、距离等都可以获取。
所以,alloc一个这样的对象返回即可,比如这样:
mylocation = [[CLLocation alloc]initWithLatitude:la longitude:lo];
return mylocation;
这里的经度la,与纬度lo,就是我们要伪造的位置了,这个位置可以在地图上找到。
小程给出一个从文件读取位置并返回的示例:
然后,准备好这个文件,每次进入“附近的人”时,都会读取文件拿到经纬度。所以,如果想换一个位置,那就改一下文件的内容就好(可以通过助手工具来修改),文件的内容只有一行,比如:23.2,113.3
(3)效果演示
假如伪造一个纽约的位置,这个位置是这样的:
更改位置后,重新进入附近的人,看到的效果是这样的:
拉到最下面:
注意上图倒数第二项,金斯县,这个地方在哪里?
所以,有理由相信,我们的确跑到纽约去了。
总结一下,这个例子使用了Reveal工具,经过反复注入与输出log定位到目标函数,然后进行修改达到目的。
- H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位
- iOS逆向:微信逆向及动态库开发过程中的坑
- IOS开发学习笔记(十八)——使用地理位置及地图(下篇)
- iOS开发之在google地图上显示自己的位置
- iOS软件开发 设置UITextView输入内容位置从左上角开始
- ios开发中iphone模拟器中程序文件和数据库的存放位置
- IOS:GPS位置和地图开发
- 微信开发 LBS位置定位存在问题的改进 基于java语言和mysql数据库
- [IOS地图开发系类]2、位置解码CLGeocoder
- 微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法
- [iOS开发]分享UIWindow里面的view如何在横屏时候切换位置
- 微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法
- iOS开发之微信自动抢红包功能
- IOS开发学习实例之微信消息页
- ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
- ios开发问题2—uitableviewController中如何改变tableview的位置
- 微信小程序开发文档:移动应用支持小程序类型分享(iOS应用)
- iOS开发之第三方分享微信分享、朋友圈分享,史上最新最全
- 微信开发 IOS 返回键问题
- iOS银联,支付宝,微信,ping++开发文档