前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对Xposed的认识和思考

对Xposed的认识和思考

作者头像
fengzhizi715
发布2018-08-24 16:24:43
1.2K0
发布2018-08-24 16:24:43
举报
文章被收录于专栏:Java与Android技术栈

Xposed是什么

Xposed 是一款可以在不修改 APK 的情况下影响程序运行的框架服务,基于 Xposed 能够制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。 Xposed 通过替换 /system/bin/app_process 程序控制 zygote 进程,使得 app_process 在启动过程中会加载 XposedBridge.jar 这个 jar 包,从而完成对系统应用的劫持。 Xposed 不仅仅是一个插件加载功能,而是它从根上 Hook 了 Android Java虚拟机,所以它需要 root,所以每次为它启用新插件APP 都需要重新启动。

Xposed能做什么?

能够修改微信运动的步数,我修改了微信小号走路的步数,其实只是 hook 了传感器的 api 而已。

hook了传感器API.JPG

能够修改手机当前位置。我们知道手机的定位一般是混合定位,借助wifi、gps、基站等等来获取定位数据,如果能 hook 基站、wifi、gps等api,那么就能实现修改手机的当前位置。

修改手机的定位.JPG

用这个思路,做个 AR 抢红包的外挂也是未尝不可。

能够 hook 住 android 任意 api 的 Xposed 能做的远不止于此,还能够做很多非常有想象力的事情。

Xpose开发遇到的坑

首先,root 是安装 Xposed 的前提。有时,即使 root 了也不行,我遇到过一台三星 s6,已经 root 了仍然无法安装Xposed :(

每调试一次,都需要重启手机,经过一天的调试会有一种手机都快被玩坏的错觉。

最后,曾经被一个配置困扰了一个下午。Xposed 的 jar 包不能使用 compile,而是应该使用provided,就是因为这个配置错了,我一个下午拿不到结果:(

对于开发 Xposed 模块,必须要有足够的耐心。当然,所有的开发都是如此。

对利用Xposed的思考

在移动互联网时代,某些数据可能只存在于app之中,非常封闭。如果 app 有对应的网站,还能通过爬虫抓取内容,如果没有对应的网站,抓取就会有困难。如果 app 跟后端的通信协议是 protobuf、thrift 之类,那抓取数据包都会比较麻烦。

这几天一直在玩 Xposed ,所以我想写一个抓取 app 内容的爬虫,当然首先需要逆向 app 查找到内容所在的地方,才能借助 Xposed 进行hook。

Xposed 也能帮助测试,既然能修改手机的location,那么对地理位置要求高的lbs应用做一些测试就不在话下了,不再需要人工跑过去。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.02.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Xposed是什么
  • Xposed能做什么?
  • Xpose开发遇到的坑
  • 对利用Xposed的思考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档