微信伪造位置

来源:互联网 发布:淘宝小二几点上班 编辑:程序博客网 时间:2024/05/16 01:26

叶孤城原创


小白:叶孤城,你上节讲如何突破微信的升级限制,让司空摘星嘲笑了,他说你只是乱扯。喂,你能用图来说明吗?

叶孤城:什么!我上节的图还不能说明吗!那只好上视频了。

微信多开

小白:喂,这个视频很卡喔,你不会提高帧率?

叶孤城:咦,帧率你也晓得?跟花满楼学的吧?反正就是两个微信在运行啦,而且都是旧版本,但是他们的boundleID不一样。

小白:这个是iOS上的,那在android上呢?

叶孤城:由于ios有沙盒的限制,所以是真的独立开来了。如果在android上改签名让它们安装上去,那也要考虑共用的文件是否有冲突,这个是多开软件要做的事。

小白:上面的视频,你怎么不输入密码呀?

叶孤城:你就是以录制屏幕的方式来破解别人的密码的吗!输入密码时会短暂显示明文,这就是一个bug!

本文解决一个问题:如何伪造一个经纬度,在微信的附近的人中,看到外国的朋友。

小白:我要瞬间移动到旧金山,看看黄师傅的宝芝林的同事们!

解决这个问题的思路,按常规的想法来就行。

找到获取位置的函数,返回一个固定的位置即可。

使用到的工具与方法,在前面都有介绍过,这里不再细说。

(1)获取位置的函数

这个函数是SeePeopleNearByLogicController::onRetrieveLocationOK。

小白:不要一开始就说结果,你是怎么定位的?

叶孤城:失败总是常伴你左右,定位到这个结果是要经过反反复复的尝试与思考的。

小白:好了,思考家!

在定位这个函数时,同样可以从界面入手,通过Reveal找到相关界面的类,再借助class-dump拿到的类的结构(或者动态调试),再结合hook的输出,就会慢慢接近目标。

比如,附近的人,背景(包括了“附近的人”这个viewcontroller)是这样的:
附近的人的背景

(2)修改返回的位置

onRetrieveLocationOK返回的是一个CLLocation对象。CLLocation是ios sdk的一个类,功能很强大,比如经纬度、高度、温度、速度、距离等都可以获取。

alloc一个这样的对象返回即可,比如这样:

mylocation = [[CLLocation alloc]initWithLatitude:la longitude:lo];return mylocation;

而经度la,与纬度lo,就是我们要伪造的位置了,这个位置可以在地图上找到。

(3)效果演示

假如仿造一个纽约的位置,这个位置是这样的:
纽约的位置

更改位置后,重新进入附近的人,看到的效果是这样的:
纽约附近的人1

拉到最下面:
纽约附近的人2

注意上图倒数第二项,金斯县,这个地方在哪里?
金斯县

所以,有理由相信,我们的确跑到纽约去了。


小白:就这样就完了?

叶孤城:你还想怎么样,都是我前面介绍的几板斧的使用而已。你要想知道更多,你可以……

小白:停!又叫我加群是吧!


开心时间

没有什么好开心的!