因为之前做过微信抢红包的插件,所以直接定位到消息入口CMessageMgr,我们直接hook CMessageMgr的全部方法
在微信消息撤回的时候, CMessageMgr最开始走了三个方法(后面还有很多方法,但是最可能的是开始的几个方法,我这边暂时只hook前三个方法即可)
onNewSyncAddMsgSessionArray
AsyncOnAddMsgListForSession
onNewSyncNotAddDBMessage
依次注释掉这三个方法,考虑到只拦截到微信消息撤回的起点就可以了,所以并没有使用ida去分析源码,发现去掉onNewSyncNotAddDBMessage的实现后及实现了微信消息撤回,不管在首页还是在聊天页面都不会有撤销.
- (void)onNewSyncNotAddDBMessage:(id)arg1{
//%orig;
}
实现比较粗暴点,不过达到目标了😁