微信消息防撤回,这次做点不一样的

经过一段时间的研究,微信的防护措施果然名不虚传,稍有不慎就会面临封号的危险,所以对微信的逆向务必慎之又慎。
防撤回的教程网上已经很多了,但是今天要做些不一样的事情。
首先,如果让你来写撤回这个方法,你会怎么命名,retract? revoke? recall? 搜索一下就知道微信使用了revoke。

微信消息防撤回,这次做点不一样的_第1张图片

当你尝试搜索revoke会出现大量相关的条目,根据类名就可以剔除大部分内容,撤回的方法最可能放在和message相关的类里,这么一分析,FunctionMsgMgr、RevokeMessage、CMessageMgr、MsgRecordDetailViewController几个类最可疑,但是RevokeMessage里面并没有相关的方法,FunctionMsgMgr和MsgRecordDetailViewController都只有一个相关方法,试试就知道了,覆盖这两个方法都不能阻止消息撤回,最后就剩下了CMessageMgr,CMessageMgr里有两个方法最有可能,分别是
-(void)onRevokeMsg:(id)arg1;

-(_Bool)RevokeMsg:(id)arg1 MsgWrap:(id)arg2 Counter:(unsigned int)arg3;
但是后者是Bool类型显然也不是它,那就直接覆盖onRevokeMsg这个方法:

CHOptimizedMethod(1, self, void, CMessageMgr, onRevokeMsg, id, value1) {
}

果然,当对方撤回消息,我这没有被撤回,甚至没有任何的反应,防撤回成功了。

如果你看了网上的大部分教程,到这一般就结束了。但是这很没意思,我想知道是谁撤回了消息,撤回了哪一条消息。
如果你也同样好奇,欢迎关注公众号coder chang,获取更多内容。

你可能感兴趣的:(iOS)