抱歉,Xposed真的可以为所欲为——6.你的表白撤不回了(中)

简介: 一步步Hook微信,实现微信消息防撤回。

2.胡乱分析第二波


先从第一波跳出来,想想怎么我们到底要干嘛?信息处理简单流程是这样的:


收到信息会插入到数据库里,然后撤回就是移除数据库里对应的这条信息!


那么我们可以:


  • 1.找个东西把所有接收到的信息存起来;


  • 2.当触发了撤回操作,然后通过一个标识找到我们存起来的信息;


  • 3.把这条信息当做一个新的信息插入到数据库里;


  • 4.更改撤回的提示


强调一点,搬运,一开始我还想着去处理找个信息,然后拿点什么,加点什么。 后面发现改动的成本非常大,而且不知道会引发什么样的问题,所以拿到信息直接 传就好,不要加特技进去!


然后是找个标识,猜测是第一波分析出来的msgId,等等还需要我们验证下! 继续跟方法,另一个账号发送一条信息,然后全局搜insert,定位到了一个数据库插入的方法!



不会直接跟这个bt.f类,因为参数一样,而且执行插入操作肯定是不止调用一个方法的,跟下该方法的父方法,



继续跟



可以,参数不一样,说明信息是从这里构造的,然后也调用了好几个方法,打开源码查看这个类:com.tencent.mm.storage.be还有这个b方法,从左侧的类结构可以看到,b方法有好几个,但是第一个参数都是一样的(bd bdVa) 进去这个bd类看看 com.tencent.mm.storage.bd



好复杂的类,加上混淆,看死个人,上面讲了,搬运,而不是对信息做处理,我们要做的只是找到这个信息里和msgId一样的标记而已。全局搜msgId



恩,就是这个field_msgId了,我们通过Xposed拿到这个变量的值,然后做下对比,验证下我们的猜想! 然后写出这样的程序:



怀着忐忑的心情重启手机,发信息,撤回信息,看下日志



接下来我们整个Map来存键值对,然后试试在触发撤回操作的时候,根据msgId取出 对应的信息然后调用插入数据的方法,所以上面的代码改一下,我们要拿到调用b方法的那个对象。 然后就有了这样的代码:



运行下看看效果~


正常的微信里撤回



Hook了的微信



可以,尽管提示XX撤回了一条消息,但是信息并没有真的被撤回,所以说Hook成功了~ 接着我们进行一些细节的优化,还有改下撤回的信息。把能打印的都打印出来吧,把Content内容修改下:



打印下:



呃,我的微信好像有点不对劲,变成头像发信息了?:



感觉是type类型的问题,改改,改成撤回信息那个type?



嗯,信息是看到了,但是不应该是这样的啊,后面排查了一下是updateWithOnConflict方法返回值是0, 才这样,把返回值设置为1,就可以了(param.result = 1)



嗯,正常是正常了,不过这顺序有点不对劲啊,撤回的提示信息比我们插入的信息快了一些,那就加点吧。



运行看看:



想着大概差不多的时候,今早老同学发的一个链接,然后撤回,撤回信息提示变成这样了:



后来想想还是拼接成这样的提示信息就算了,不要再在提示信息里显示具体内容:

小猪拦截到 XXX 撤回的信息


最终效果如下,可以,很赞:




相关文章
|
3月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
46 1
|
存储 XML JSON
简简单单搞一个实用的Android端搜索框
效果很常见,就是平常需求中的效果,上面是搜索框,下面是最近和热门搜索列表,为了方便大家在实际需求中使用,配置了很多属性,也进行了上下控件的拆分,也就是上边搜索框和下面的搜索列表的拆分,可以按需进行使用。
210 0
|
人工智能 Java 程序员
我见众生皆无意,唯有见你动了情(表白日记分享篇)
​                                        💕 我见众生皆无意,唯有见你动了情 💕                                                            ​ 目录                                                                                 💕 我见众生皆无意,唯有见你动了情 💕 0  写在前面 1.利用ASCII码使数字转化为中文 (GB_2312 字符集) (1)两个特定的ASCI
156 0
我见众生皆无意,唯有见你动了情(表白日记分享篇)
|
Kubernetes Ubuntu 关系型数据库
这不是愚人节玩笑,我们回来了:Typecho 1.2.0 发布!
这不是愚人节玩笑,我们回来了:Typecho 1.2.0 发布!
293 0
这不是愚人节玩笑,我们回来了:Typecho 1.2.0 发布!
|
数据库 Android开发
|
数据库管理
|
安全 开发工具 Windows
抱歉,Xposed真的可以为所欲为——5.我自己刷的Xposed凭什么不给我用(上)
分析定位排查下厨房APP检测手机是否安装了Xposed框架的方法,然后一步步 Hook掉对应代码,以此去掉恶心的重复弹出警告对话框。
269 0
|
Java Android开发 Kotlin
抱歉,Xposed真的可以为所欲为——5.我自己刷的Xposed凭什么不给我用(下)
分析定位排查下厨房APP检测手机是否安装了Xposed框架的方法,然后一步步 Hook掉对应代码,以此去掉恶心的重复弹出警告对话框。
239 0
|
API
抱歉,Xposed真的可以为所欲为——1.基础知识储备(下)
本节简单介绍了什么是Xposed,基本原理,如何创建一个Xposed项目以及Xposed常用的类与方法。
759 0
|
Java Linux API
抱歉,Xposed真的可以为所欲为——1.基础知识储备(上)
本节简单介绍了什么是Xposed,基本原理,如何创建一个Xposed项目以及Xposed常用的类与方法。
444 0