叶孤城原创
小白:叶孤城,你上节讲如何突破微信的升级限制,让司空摘星嘲笑了,他说你只是乱扯。喂,你能用图来说明吗?
叶孤城:什么!我上节的图还不能说明吗!那只好上视频了。
小白:喂,这个视频很卡喔,你不会提高帧率?
叶孤城:咦,帧率你也晓得?跟花满楼学的吧?反正就是两个微信在运行啦,而且都是旧版本,但是他们的boundleID不一样。
小白:这个是iOS上的,那在android上呢?
叶孤城:由于ios有沙盒的限制,所以是真的独立开来了。如果在android上改签名让它们安装上去,那也要考虑共用的文件是否有冲突,这个是多开软件要做的事。
小白:上面的视频,你怎么不输入密码呀?
叶孤城:你是想通过观看录制的屏幕,来偷看我的密码吧。输入密码时会短暂显示明文,但你这样做有技术含量吗?
本文解决一个问题:如何伪造一个经纬度,在微信的附近的人中,看到外国的朋友。
小白:我要瞬间移动到旧金山,看看黄师傅的宝芝林的同事们!
解决这个问题的思路,按常规的想法来就行。
找到获取位置的函数,返回一个固定的位置即可。
使用到的工具与方法,在前面都有介绍过,这里不再细说。
这个函数是SeePeopleNearByLogicController::onRetrieveLocationOK。
小白:不要一开始就说结果,你是怎么定位的?
叶孤城:失败总是常伴你左右,定位到这个结果是要经过反反复复的尝试与思考的。
小白:好了,思考家!
在定位这个函数时,同样可以从界面入手,通过Reveal找到相关界面的类,再借助class-dump拿到的类的结构(或者动态调试),再结合hook的输出,就会慢慢接近目标。
比如,附近的人,背景(包括了“附近的人”这个viewcontroller)是这样的:
onRetrieveLocationOK返回的是一个CLLocation对象。CLLocation是ios sdk的一个类,功能很强大,比如经纬度、高度、温度、速度、距离等都可以获取。
alloc一个这样的对象返回即可,比如这样:
mylocation = [[CLLocation alloc]initWithLatitude:la longitude:lo];return mylocation;
而经度la,与纬度lo,就是我们要伪造的位置了,这个位置可以在地图上找到。
假如仿造一个纽约的位置,这个位置是这样的:
更改位置后,重新进入附近的人,看到的效果是这样的:
拉到最下面:
注意上图倒数第二项,金斯县,这个地方在哪里?
联系客服