ios

iOS逆向-微信一键阅读所有消息

2018-12-05  本文已影响0人  pingerbufan

前言

每次打开微信,总有一些公众号推送烦人的且无营养消息,而微信又没提供全部已阅的功能,本章详细讲述一键阅读所有消息.

0x1:

IMG_1743.PNG

0x2:

Reveal分析: 11.png

XCode加载微信进程:

22.png

从MMBadgeView控件入手:

33.png

这里选择直接从MMBadgeView入手,po [MMBadgeView _shortMethodDescription] 命令,打印出MMBadgeView的所有属性和方法,发现三个方法格外显眼.

Symbolic BreakPoint下断:

44.jpg

放开断点后,小号发送条信息给这个微信,看看断点是否被断下.


55.png

微信在收到消息之后经过非常多的页面UI处理,然后再设置小红点的数量。这个时候往上回溯发现除了系统的渲染函数,第一个被调用的微信函数是[MMTableView layoutSubviews],这个函数是微信首页这个表格加载子视图的函数,我们所看到的首页上的任何东西都是这个函数加载出来的,那么在这之前发生了什么?如何收到的消息?怎么计算的未读消息数量?

继续下一步分析:

分析 NewMainFrameViewController:

66.jpg

微信收到消息后断在- (void) updateUnReadCount;,注意:如果这个时候已经在当前会话的聊天房间,并不会触发这个函数.
* 这个时候出现了一个新的类在堆栈调用过程中 MMNewSessionMgr
* 当微信收到消息,如果这个消息栏目(Cell)在首页列表中,小红点的数量会递增.
* 点击某个有小红点的栏目进去后,小红点会消失,说明当前栏目是已读的.
* 未读消息为0,表示当前栏目已读,小红点消失.
* 逻辑推测:收到消息,未读数量递增. 进入房间未读数置0,隐藏小红点.说明都会改变消息未读数

进入单间,表示消息已读,调用了MMNewSessionMgr类的三个函数。分别给三个函数下断,查看参数的值.
* MMNewSessionMgr类 - 函数:

99.png

Tweak.xm

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

%hook MMServiceCenter
%end

%hook MMNewSessionMgr
%end

%hook MMSessionInfo
%end

%hook NewMainFrameViewController

- (void) viewDidAppear:(BOOL)arg1{
    %log;
    %orig;
    //微信首页左上角添加一个功能按钮
    UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(cleanAllUnreadSession)];
    [((UIViewController *)self).navigationItem setLeftBarButtonItem:barBtn];
}

%new
- (void)cleanAllUnreadSession{
    //获取 MMNewSessionMgr 实例
    MMNewSessionMgr *sessionObj = [[%c(MMServiceCenter) defaultCenter] getService:[%c(MMNewSessionMgr) class]];
    //获取所有的 sessionID
    NSArray *SessionListArray = [sessionObj GetUserNamesOnSessionList];
    for (NSString *str in SessionListArray) {
        // 循环修改每个会话 改成已读        
        [sessionObj ChangeSessionUnReadCount:str to:0];     
     }
}
%end


总结

实际上分析过程中会用到 Hopper Disassembler 静态分析.

实际上部分公众号推送的消息还是有价值的.

我没有任何针对微信的意思,如果你非要问我支持不支持微信,我当然支持,可以很明确的告诉你,我不支持我还天天用微信。🤣

aaa.gif

最后附上效果图。

上一篇 下一篇

猜你喜欢

热点阅读