抱歉,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 撤回的信息


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




相关文章
|
小程序 数据安全/隐私保护
吐血整理的几十款小程序登陆界面【附完整代码】(一)
吐血整理的几十款小程序登陆界面【附完整代码】
6238 0
吐血整理的几十款小程序登陆界面【附完整代码】(一)
|
11月前
|
程序员
有了这些不愁找不到对象,520表白代码
有了这些不愁找不到对象,520表白代码
58 0
|
12月前
|
小程序 Windows
电脑可以刷微信朋友圈,这下能更好地摸鱼了?
电脑可以刷微信朋友圈,这下能更好地摸鱼了?
|
12月前
|
机器学习/深度学习 数据采集 人工智能
我也曾经因安装库而抓狂,直到我遇到了
我自己印象最深的是在 Mac 上安装 pycrypto(加密)和 scipy(科学计算)模块,折腾了很久。因为这类模块并不是单纯的 Python 代码,而是需要调用诸如 C 语言的库,于是就牵涉到在不同平台上的编译,有些还不能很方便地用虚拟环境分离版本。
|
小程序
吐血整理的几十款小程序登陆界面【附完整代码】(二)
吐血整理的几十款小程序登陆界面【附完整代码】(二)
323 0
吐血整理的几十款小程序登陆界面【附完整代码】(二)
|
小程序
吐血整理的几十款小程序登陆界面【附完整代码】(三)
吐血整理的几十款小程序登陆界面【附完整代码】(三)
406 0
吐血整理的几十款小程序登陆界面【附完整代码】(三)
|
数据库管理
|
数据库 Android开发
|
Java Android开发 Kotlin
抱歉,Xposed真的可以为所欲为——5.我自己刷的Xposed凭什么不给我用(下)
分析定位排查下厨房APP检测手机是否安装了Xposed框架的方法,然后一步步 Hook掉对应代码,以此去掉恶心的重复弹出警告对话框。
195 0
|
安全 开发工具 Windows
抱歉,Xposed真的可以为所欲为——5.我自己刷的Xposed凭什么不给我用(上)
分析定位排查下厨房APP检测手机是否安装了Xposed框架的方法,然后一步步 Hook掉对应代码,以此去掉恶心的重复弹出警告对话框。
245 0