Hook实现Android 微信、陌陌 、探探位置模拟(附源码下载)
发布时间 - 2026-01-11 00:11:13 点击率:次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的代码 我们就无需过多解释了 上 源代码
源码下载
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Hook实现Android
# 微信、陌陌
# 、探探位置模拟
# Hook位置模拟
# Android
# Android进阶Hook拦截系统实例化View过程实现App换肤功能
# Android性能优化之plt hook与native线程监控详解
# android的got表HOOK实现代码
# Android下hook点击事件的示例
# Android中的HOOK技术是什么
# 源代码
# 都是
# 我想
# 都有
# 站在
# 世界各地
# 其他的
# 我们可以
# 可以通过
# 希望能
# 看完
# 还需要
# 涉及到
# 谢谢大家
# 重启
# 后才
# 试了
# 很多次
# 源码下载
# 就可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何为不同团队 ID 动态生成多个非值班状态按钮
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
如何正确选择百度移动适配建站域名?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
EditPlus中的正则表达式实战(6)
实例解析angularjs的filter过滤器
Laravel如何创建自定义中间件?(Middleware代码示例)
如何快速查询网址的建站时间与历史轨迹?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何用y主机助手快速搭建网站?
Android中AutoCompleteTextView自动提示
*服务器网站为何频现安全漏洞?
高防服务器租用指南:配置选择与快速部署攻略
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
如何在万网自助建站平台快速创建网站?
Laravel怎么使用artisan命令缓存配置和视图
动图在线制作网站有哪些,滑动动图图集怎么做?
PHP正则匹配日期和时间(时间戳转换)的实例代码
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何利用DOS批处理实现定时关机操作详解
Android仿QQ列表左滑删除操作
Thinkphp 中 distinct 的用法解析
如何在云主机上快速搭建网站?
jQuery validate插件功能与用法详解
如何获取上海专业网站定制建站电话?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何实现建站之星域名转发设置?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何生成URL和重定向?(路由助手函数)
如何快速登录WAP自助建站平台?
详解阿里云nginx服务器多站点的配置
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何在建站宝盒中设置产品搜索功能?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何快速辨别茅台真假?关键步骤解析
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何使用Gate和Policy进行授权?(权限控制)
Laravel怎么判断请求类型_Laravel Request isMethod用法

