Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 536|回复: 0
打印 上一主题 下一主题

抱歉,Xposed真的可以为所欲为——1.基础知识储备

[复制链接]

1228

主题

1998

帖子

7598

积分

认证用户组

Rank: 5Rank: 5

积分
7598
跳转到指定楼层
楼主
发表于 2021-6-15 16:18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://repo.xposed.info/module/de.robv.android.xposed.installer


一句话概括本文:

本节简单介绍了什么是Xposed,基本原理,如何创建一个Xposed项目以及Xposed常用的类与方法。

引言:

前面用Python利用itchat库撸了篇:

小猪的Python学习之旅 —— 19.Python微信自动好友验证,自动回复,发送群聊链接
接着小号貌似因为发送信息太频繁和太快,被封了,限制了不能网页端登录;
又开始折腾AccessibilityService无障碍服务,撸了两篇:

妙用AccessibilityService黑科技实现微信自动加好友拉人进群聊
自动抢红包,点赞朋友圈,AccessibilityService解放你的双手
慢慢地越发对这些小玩具感兴趣,毕竟实用性强,好玩。在评论和群里都有人提到
过Xposed,我自己之前也有点了解,Xposed并不是什么新东西了,好几年前
就有了,以前看到搞机(基)的人都觉得很牛逼哄哄,刷系统,root下,改下系统UI,
用各种各样的插件模块改什么什么,屌得不行。(真正屌的是做的那个人而不是用的那个…)

真正开始学的时候,其实Xposed并没有想象中那么复杂,原理和相关的API都很
简单,难的是逆向,怎么去实现你要Hook的功能:反编译,调试输出,堆栈
跟踪,抓包等等,在这个过程中你需要去分析很多很多东西,猜测调试,有时候
折腾几天可能毫无进展,不过也会收获更多,比如你自己开发APP的时候也会
慢慢开始考虑安全相关的东西~

基础就一节,源码分析一节,接着都是实战,另外之前写的Python学习之旅
也不会太监,老规矩,随缘更新~



话不多说,开始本系列的教程吧~

1.Xposed是什么
一个很牛逼的框架,可以在不修改APK的情况下影响程序的运行,比如:
直接把APP的界面改成自己想要的样子,去掉界面里不喜欢的东西,
自动抢红包,消息防撤回,步数修改等等;简直酷得不行,网上有
很多插件作者开发出来的优秀插件,随手打开Xposed Installer下载
就有很多:



插件用起来是挺爽的,不过呢,因为Xposed拥有最高权限,如果不法分子
在插件里植入了恶意代码,比如登录劫持,偷偷采集你的账号密码发送到
他们的手里,如果涉及到了金钱,就很恐怖啦,所以在使用Xposed插件的时候,
尽量选那些开源的,并进行代码review,看是否存在恶意代码,再进行安装体验
(开源不一定就没问题,之前有个抢外卖红包的开源项目在里面加了一段挖矿代码,
令人窒息的操作!)

大概简述下Xposed的原理吧,后面有一节会专门研究源码~

Android基于Linux,第一个启动的进程自然是init进程,该进程会
启动所有Android进程的父进程——Zygote(孵化)进程,该进程的启动配置在
/init.rc脚本中,而Zygote进程对应的执行文件是/system/bin/app_process,
该文件完成类库的加载以及一些函数的调用工作。在Zygote进程创建后,
再fork出SystemServer进程和其他进程。

而Xposed Framework呢,就是用自己实现的app_process替换掉了系统原本
提供的app_process,加载一个额外的jar包,然后入口从原来的:
com.android.internal.osZygoteInit.main()被替换成了:
de.robv.android.xposed.XposedBridge.main(),
然后创建的Zygote进程就变成Hook的Zygote进程了,而后面Fork出来的进程
也是被Hook过的。这个Jar包在:
/data/data/de.rbov.android.xposed.installer/bin/XposedBridge.jar

大概原理就是这样,源码我还没去撸,后面会研究一波,有说错的再回来改。
另外使用Xposed模块是需要Root权限的,怎么Root,安装这个框架,
网上的教程很多,不在本系列研究范围以内!

相关文档:

官网:http://repo.xposed.info/
作者Github仓库:https://github.com/rovo89
官方教程:https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
XposedBridge.jar下载:https://jcenter.bintray.com/de/robv/android/xposed/api/
然后是Xposed Installer,由于Android 5.0以上采用ART,而5.0以下默认采用Dalvik,
所以是有两个版本的Xposed,附上下载链接:
Android 4.0.3-4.4:http://repo.xposed.info/module/de.robv.android.xposed.installer
Android 5.0以上::https://forum.xda-developers.com/showthread.php?t=3034811

PS:点下面这两个地方即可下载:


————————————————
版权声明:本文为CSDN博主「coder-pig」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/coder_pig/article/details/80031285

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-18 06:13 , Processed in 0.053952 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表