开发Xposed插件CPWechatXposed | 项目复盘(上)

简介: Xposed框架可以在不修改APK的情况下影响程序运行,我们可以利用它对App进行Hook,以实现一些自定义的功能。CPWechatXposed 是笔者开发的一款微信插件,本文介绍的是此插件开发过程与复盘。

1、项目简介


Xposed框架可以在不修改APK的情况下影响程序运行,我们可以利用它对App进行Hook,以实现一些自定义的功能。CPWechatXposed 是笔者开发的一款微信插件,本文介绍的是此插件开发过程与复盘。


仓库地址:github.com/coder-pig/C…


网络异常,图片无法展示
|


网络异常,图片无法展示
|


Tips:项目早已搁置许久,原因是:每次微信更新都要耗费较多时间适配,重复体力活对逆向水平没啥提升,而且大号被封过,怕了怕了。读者有兴趣想写Xposed插件的可以参考下,弄下去广告插件啥的还是挺有意思的~


2、项目背景


一次年会上,公司领导们微信群发红包让大家抢,一边吃饭一边盯着手机蹲红包,结果饭没吃好红包也没抢到:


过年在家也是重蹈覆辙,每次打开群聊都是已抢完,还让不让人好好过节了,于是乎萌生了写一个自动抢红包工具的想法。


一开始想到的是模拟人一直监测红包信息,然后检测到有特定文本 自动点,学习了一波Android无障碍服务 AccessibilityService,肝了个工具 WechatHelper


网络异常,图片无法展示
|


投入使用后,在 相亲相爱一家人 类的群里都是抢第一,但在开发仔的群里经常抢不到第一,有时还抢不到。


后面了解到别人也是用了外挂,不过比我写的更快,用的Xposed抢红包插件,直接Hook微信信息的方法,监测到红包信息,直接调起抢红包,有些甚至还做到了无感拆,以及自动回复谢谢老板。


于是乎我也研究起Xposed插件开发了,也开始接触起逆向,所以也有了这个项目。


3、实践过程


① 创建一个Xposed项目


  • Step 1 → 新建Android工程,修改 AndroidManifest.xml,增加下述代码:


网络异常,图片无法展示
|


  • Step 2build.gradle 文件添加库依赖(provided只提供编译支持,不会写到apk里):


网络异常,图片无法展示
|


  • Step 3res/asserts 文件夹创建一个 xposed_init 文件,XposedBridge 会从 assets 目录中的xposed_init文件中获取入口点,比如:


网络异常,图片无法展示
|


  • Step 4:编写入口点类,Hook MainActivity里Textview显示的文字,渣渣辉改成贪玩蓝月:


网络异常,图片无法展示
|


Xposed入口类 XposedInit.java


网络异常,图片无法展示
|


流程解析:


  • ① 实现 IXposedHookLoadPackage 接口,重写 handleLoadPackage 函数;


  • ② 判断是否为应用包名,XposedHelpers.findAndHookMethod() 查找Hook掉 onCreate() 函数;


  • XC_MethodHook 重写 afterHookedMethod() 函数,onCreate()执行完会回调此函数;


  • ④ 在此获得TextView对象,把文字修改为“贪玩蓝月”,运行安装后,重启设备查看是否生效。


网络异常,图片无法展示
|


log也可以看到打印的日志信息:


网络异常,图片无法展示
|


注意:在运行Xposed项目前,记得把InstallRun的钩钩去掉!


网络异常,图片无法展示
|



相关文章
|
2月前
|
数据可视化 Linux Android开发
Flutter相关痛点解决问题之研发链路中的环境配置和打包集成问题如何解决
Flutter相关痛点解决问题之研发链路中的环境配置和打包集成问题如何解决
|
4月前
|
Java 数据库 Windows
必知的技术知识:ieda调试详解
必知的技术知识:ieda调试详解
19 0
|
12月前
|
测试技术 开发工具 数据库
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
121 0
|
API Android开发
基于Xposed自动化框架XposedAppium
基于Xposed自动化框架XposedAppium
260 0
|
消息中间件 存储 安全
这五款牛逼的 IDEA 插件,堪称代码质量检查利器!
这五款牛逼的 IDEA 插件,堪称代码质量检查利器!
|
Java Android开发
你有没有想过自己写一个Xposed模块?教程来了~(三)
在互联网上,关于Xposed模块编写的教程可谓是一抓一大把。但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化等)也正因此,网上的教程往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种错误或者落伍的教程对新手产生了很大的误导。
143 0
|
Android开发 iOS开发 MacOS
Airtest自动化环境踩坑
Airtest自动化环境踩坑
|
JavaScript 开发者 C++
助你轻松编写与分享snippet的VsCode插件|项目复盘
助你轻松编写与分享snippet的VsCode插件|项目复盘
|
传感器 安全 API
开发Xposed插件CPWechatXposed | 项目复盘(下)
Xposed框架可以在不修改APK的情况下影响程序运行,我们可以利用它对App进行Hook,以实现一些自定义的功能。CPWechatXposed 是笔者开发的一款微信插件,本文介绍的是此插件开发过程与复盘。
373 0
|
Android开发
老司机带你快速上手调试Flutter项目
对于开发项目来说,调试控制工具是不可少的,开发者是一定要掌握调试工具的使用,一来是为了查看log日志,一来是为了排查错误,再一个原因是可以查看内存占用情况,以便后续性能优化。
4551 0
下一篇
无影云桌面