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技术是什么
# 源代码
# 都是
# 我想
# 都有
# 站在
# 世界各地
# 其他的
# 我们可以
# 可以通过
# 希望能
# 看完
# 还需要
# 涉及到
# 谢谢大家
# 重启
# 后才
# 试了
# 很多次
# 源码下载
# 就可以
相关文章:
建站上市公司网站建设方案与SEO优化服务定制指南
如何通过西部建站助手安装IIS服务器?
制作表格网站有哪些,线上表格怎么弄?
移民网站制作流程,怎么看加拿大移民官网?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
模具网站制作流程,如何找模具客户?
建站之星安装提示数据库无法连接如何解决?
制作宣传网站的软件,小红书可以宣传网站吗?
如何基于PHP生成高效IDC网络公司建站源码?
如何在西部数码注册域名并快速搭建网站?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
C#如何在一个XML文件中查找并替换文本内容
网站设计制作企业有哪些,抖音官网主页怎么设置?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何通过宝塔面板实现本地网站访问?
Android使用GridView实现日历的简单功能
音响网站制作视频教程,隆霸音响官方网站?
非常酷的网站设计制作软件,酷培ai教育官方网站?
c++ stringstream用法详解_c++字符串与数字转换利器
如何在IIS7中新建站点?详细步骤解析
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何有效防御Web建站篡改攻击?
建站之星24小时客服电话如何获取?
如何高效利用亚马逊云主机搭建企业网站?
高端建站如何打造兼具美学与转化的品牌官网?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
如何快速查询网站的真实建站时间?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
西安专业网站制作公司有哪些,陕西省建行官方网站?
完全自定义免费建站平台:主题模板在线生成一站式服务
c# 在高并发场景下,委托和接口调用的性能对比
Swift开发中switch语句值绑定模式
建站168自助建站系统:快速模板定制与SEO优化指南
做企业网站制作流程,企业网站制作基本流程有哪些?
公司网站设计制作厂家,怎么创建自己的一个网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
平台云上自助建站如何快速打造专业网站?
,巨量百应是干嘛的?
如何通过西部数码建站助手快速创建专业网站?
如何快速生成可下载的建站源码工具?
建站之星ASP如何实现CMS高效搭建与安全管理?
历史网站制作软件,华为如何找回被删除的网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何在阿里云完成域名注册与建站?
建站之星安装需要哪些步骤及注意事项?
建站主机核心功能解析:服务器选择与网站搭建流程指南
如何生成腾讯云建站专用兑换码?
制作网页的网站有哪些,电脑上怎么做网页?
已有域名和空间如何搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。