Hook实现Android 微信,陌陌 ,探探位置模拟

 最近需要对微信,陌陌等程序进行位置模拟 实现世界各地发朋友圈,搜索附近人的功能,本着站在巨人肩膀上的原则 爱网上搜索一番。
 也找到一些 代码和文章,但是代码大都雷同而且都有一个弊端 比如说 微信 对目标函数实现hook之后第一次打开微信 第一次定位是可以改变的
  但是 我如果想更换地址的话 就需要重启手机了,重新加载hook了,试了很多次都是这样满足不了需求。
 为了改进这个地方我们从gps定义的源代码流程开始看寻找hook系统函数的突破口
 我也是看完之后才找到hook的地方 LocationMangerService  这个类
@Override
    public void reportLocation(Location location, boolean passive) {
        checkCallerIsProvider(); //检测权限和uid

        if (!location.isComplete()) {
            Log.w(TAG, "Dropping incomplete location: " + location);
            return;
        }
            //发送位置信息
        mLocationHandler.removeMessages(MSG_LOCATION_CHANGED, location);
        Message m = Message.obtain(mLocationHandler, MSG_LOCATION_CHANGED, location);
        m.arg1 = (passive ? 1 : 0);
        mLocationHandler.sendMessageAtFrontOfQueue(m);
    }
那么我们可以hook掉这个location的参数 修改为我们想要定位的地方就可以实现效果了,
  XposedHelpers.findAndHookMethod("com.android.server.LocationManagerService", lpparam.classLoader, "reportLocation", Location.class, boolean.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                super.afterHookedMethod(param);
                Location location = (Location) param.args[0];
                XposedBridge.log("实际 系统 经度"+location.getLatitude() +" 系统 纬度"+location.getLongitude() +"系统 加速度 "+location.getAccuracy());
                XSharedPreferences xsp =new XSharedPreferences("com.markypq.gpshook","markypq");
               if (xsp.getBoolean("enableHook",true)){
                   double latitude = Double.valueOf(xsp.getString("lan","117.536246"))+ (double) new Random().nextInt(1000) / 1000000 ;
                   double longtitude = Double.valueOf(xsp.getString("lon","36.681752"))+ (double) new Random().nextInt(1000) / 1000000 ;
                   location.setLongitude(longtitude);
                   location.setLatitude(latitude);
                   XposedBridge.log("hook 系统 经度"+location.getLatitude() +" 系统 纬度"+location.getLongitude() +"系统 加速度 "+location.getAccuracy());
               }

            }
        });
如果我想主动调用这个函数 必须要得到这个LocationMangerService 的对象 获取这个对象可以通过hook LocationManager 的构造函数获取,
 XposedBridge.hookAllConstructors(LocationManager.class,new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                super.afterHookedMethod(param);
                if (param.args.length==2) {
                    Context context = (Context) param.args[0]; //这里的 context
                    XposedBridge.log(" 对 "+getProgramNameByPackageName(context)+" 模拟位置");
                    //把权限的检查 hook掉
                    XposedHelpers.findAndHookMethod(context.getClass(), "checkCallingOrSelfPermission", String.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            if (param.args[0].toString().contains("INSTALL_LOCATION_PROVIDER")){
                                param.setResult(PackageManager.PERMISSION_GRANTED);
                            }
                        }
                    });
                    XposedBridge.log("LocationManager : " + context.getPackageName() + " class:= " + param.args[1].getClass().toString());
                  //获取到  locationManagerService 主动调用 对象的 reportLocation 方法  可以去模拟提供位置信息
                    //这里代码中并没有涉及到主动调用
                  Object   locationManagerService = param.args[1];
                }
            }
        });

当然还需要hook一些其他的辅助函数 ,这些函数都可以在 android studio 中看到java的代码 我们就无需过多解释了 上 源代码连接 https://github.com/mark-ypq/GPSHook

时间: 2024-08-04 17:15:24

Hook实现Android 微信,陌陌 ,探探位置模拟的相关文章

android 微信客户端,其中服务器是模拟的

原文:android 微信客户端,其中服务器是模拟的 源代码下载地址:http://www.zuidaima.com/share/1550463562222592.htm 模仿微信做了一个小项目(部分功能好没有实现),效果图如下:      

在陌生人“恋爱”里AA制!这场陌陌与探探的联姻,谁才是救世主?

前几日,探探创始人王宇在回答"为什么是陌陌收购了我们,而不是我们收购了陌陌"时,妙语连珠,语录频出: "陌陌就是一个大股东." "争个面子,谁收购谁,我觉得无所谓." "并购完成后,探探和陌陌并不会相互打通." "我们爱做什么做什么." -- 然而,这样一场陌生人社交的"恋爱",真的就是AA制吗? 这样真的可以让陌生人社交找到活下去的理由吗? 先回顾下历史: 早前,陌陌宣布,将以向探探发

陌陌收购探探,陌生人社交迎来终章?

近日移动社交公司陌陌宣布,陌陌将以向探探发行股票及现金的方式收购探探100%股权,对价包括约265万股的ADS及约6亿美元现金.满足惯例成交条件之后,此收购案预计在2018年第二季度完成.交易完成后,探探原团队将继续独立运营产品和品牌.华兴资本作为这次交易的财务顾问. 国内的互联网企业终究还是会走上一条极为惊人的老路子.行业老大吞并一切,垄断必然要形成.就像滴滴收购快的和优步中国.58同城并购赶集.美团与大众点评联手--类似的例子不胜枚举.而如今陌陌收购探探,则是国内陌生人社交领域的老大全资收购

强化社交,直播之外,增值业务成陌陌和探探新的增长点

连续14个月实现盈利,二季度净营收高达31.52亿人民币,同比增长58%.净利润更是同比增长了惊人的90%,达到8.94亿人民币.8月22日,当陌陌拿出这份令人惊艳的季度财报时,市场可以说是一片"跌落眼镜"的声音. 人们还记得,仅仅两个月前著名的美股做空机构Spruce Point还发布了一份著名的"直播行业做空报告".该报告指由于惨烈的市场竞争以及抖音等新势力的出现,中国直播行业已经呈现出下滑趋势,而且还点名对陌陌进行了不利的市场预测.2个月后陌陌公布的业绩显然大

安卓(Android)+苹果(Ios)仿微信、陌陌 移动社交APP系统源码,手机IM聊天软件源码,企业即时通讯APP程序源码

一:系统背景 根据国际电信联盟发布的<衡量信息社会发展报告>中显示:2014年全球手机用户已超过70亿人,全球互联网用户已超过30亿人,世界上移动通信设备用户总数已超过世界总人口数(还在稳定增长中).根据工业和信息化部发布的数据显示:目前我国移动电话用户规模将近13亿,移动互联网用户规模接近9亿,占总网民数的八成多(我国已是全球移动互联网第一大国).4G/5G时代的开启以及移动终端设备的凸显为移动互联网的发展注入巨大的能量,中国移动互联网产业即将迎来前所未有的飞跃. 二:编写目的 事实证明我国

手机版_仿微信 陌陌 安卓版(android)/苹果版(iPhone ios),移动社交APP系统源码,企业即时通讯APP程序源码,手机聊天软件源码,移动聊天APP开发

一:系统背景 根据国际电信联盟发布的<衡量信息社会发展报告>中显示:2014年全球手机用户已超过70亿人,全球互联网用户已超过30亿人,世界上移动通信设备用户总数已超过世界总人口数(还在稳定增长中).根据工业和信息化部发布的数据显示:目前我国移动电话用户规模将近13亿,移动互联网用户规模接近9亿,占总网民数的八成多(我国已是全球移动互联网第一大国).4G/5G时代的开启以及移动终端设备的凸显为移动互联网的发展注入巨大的能量,中国移动互联网产业即将迎来前所未有的飞跃. 二:编写目的 事实证明我国

【伪装位置神器】神行者AnyLocation 1.3.0001可用于微信,陌陌

<ignore_js_op> 软件名称:神行者(破解)软件版本:v1.3.0001授权类别:免费测试机型:大可乐手机 下载链接: http://pan.baidu.com/s/1qWwSMde 密码: m7mq 应用简介: 神行者AnyLocation是安卓上最强大的地点变换工具,可以任意设置你的当前地点,是保护隐私,约会交友的必备神器!例如,你想通过微信认识日本的动漫达人,那么就可以用神行者把手机当前地点设置为东京,再进入微信查找附近的人,就可以搜到当地的人了!在高级模式下,无需开启“允许模

[转]微信、陌陌等著名IM软件设计架构详解

微信.陌陌等进行了分析 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包发送时间是不是合理. 流量:对于好多国内大部分屌丝用户来说可能还是包月30M,那么我们必须站在广大用户角度来考虑问题了.一个包可以解决的就一个包. 网络: 这个也是IM最核心的内容了,我们要做到在任何网络下等顺畅聊天那就不容易了,好多公司都用的xmpp框架,如果在强网络环境下,xmpp完全没有问题.但是那种弱网络环境下xmpp就束手

微信、陌陌等著名IM软件设计架构详解

对微信.陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包发送时间是不是合理. 流量:对于好多国内大部分屌丝用户来说可能还是包月30M,那么我们必须站在广大用户角度来考虑问题了.一个包可以解决的就一个包. 网络: 这个也是IM最核心的内容了,我们要做到在任何网络下等顺畅聊天那就不容易了,好多公司都用的xmpp框架,如果在强网络环境下,xmpp完全没有问题.