前言

    [KNHook hookClass:@"ScanQRCodeLogicController"];// CGroupMgr
        [KNHook hookClass:@"MsgImgFullScreenViewController"];// CGroupMgr
Nov  4 16:32:57 iPhone WeChat[7698] <Warning>: KNHooklog :-(void)PreScanQRCode(have 0 value)
    return:(null)
    object:<MsgImgFullScreenViewController: 0x17906000>
     ##########################################
Nov  4 16:32:57 iPhone WeChat[7698] <Warning>: KNHooklog :-(id)initWithViewController:CodeType:(have 2 value)
    return:(null)
    value1:MsgImgFullScreenViewController--><MsgImgFullScreenViewController: 0x17906000>
    value2:__NSCFNumber-->19
    object:<ScanQRCodeLogicController: 0x182c7de0>

信息分析

ScanQRCodeLogicController 的创建需要CodeType、MsgImgFullScreenViewController

群二维码CodeType = 19;

MsgImgFullScreenViewController的创建需要

方法分析

Nov  4 16:32:57 iPhone WeChat[7698] <Warning>: KNHooklog :-(void)doScanQRCode:(have 1 value)
    return:(null)
    value1:UIImage--><UIImage: 0x183017f0>
    object:<ScanQRCodeLogicController: 0x182c7de0>

在hopper 中分析方法

MsgImgFullScreenViewController PreScanQRCode

ScanBarcodeMgr

ScanQRCodeLogicController showScanResult
Nov  4 17:03:04 iPhone WeChat[7904] <Warning>: KNHooklog :-(void)initLogic:(have 1 value)
    return:(null)
    value1:CMessageWrap-->{m_uiMesLocalID=5, m_ui64MesSvrID=7576380165809270461, m_nsFromUsr=wxi*912~19, m_nsToUsr=wxi*o22~19, m_uiStatus=4, type=3, msgSource="<msgsource><sequence_id>664252360</sequence_id>
        <NotAutoDownloadRange>20:00-22:00;00:00-01:00</NotAutoDownloadRange>
    </msgsource>
    "} 
    object:<MsgImgFullScreenViewController: 0x183c0c00>
Nov  4 17:03:04 iPhone WeChat[7904] <Warning>: KNHooklog :-(id)initWithMsgWrap:originFrame:soundable:snapshotView:needEdit:(have 5 value)
    return:(null)
    value1:CMessageWrap-->{m_uiMesLocalID=5, m_ui64MesSvrID=7576380165809270461, m_nsFromUsr=wxi*912~19, m_nsToUsr=wxi*o22~19, m_uiStatus=4, type=3, msgSource="<msgsource><sequence_id>664252360</sequence_id>
        <NotAutoDownloadRange>20:00-22:00;00:00-01:00</NotAutoDownloadRange>
    </msgsource>
    "} 
    value2:NSConcreteValue-->NSRect: {{55, 371}, {96, 135}}
    value3:__NSCFNumber-->1
    value4:(null)-->(null)
    value5:__NSCFNumber-->0
Nov  4 17:24:58 iPhone WeChat[7942] <Warning>: KNHooklog :-(void)PreviewImage:needEdit:(have 2 value)
    return:(null)
    value1:CMessageWrap-->{m_uiMesLocalID=6, m_ui64MesSvrID=3158388648458051522, m_nsFromUsr=z92*967~10, m_nsToUsr=wxi*o22~19, m_uiStatus=4, type=3, msgSource="<msgsource><sequence_id>664252365</sequence_id>
        <NotAutoDownloadRange>20:00-22:00;00:00-01:00</NotAutoDownloadRange>
    </msgsource>
    "} 
    value2:__NSCFNumber-->0
    object:<BaseMsgContentViewController: 0x19175800>
     ##########################################
void -[BaseMsgContentViewController PreviewImage:soundable:snapshotView:needEdit:](void * self, void * _cmd, void * arg2, char arg3, void * arg4, char arg5) {

一切从这里开始

stack[2019] = [[MMEmotionMsgBrowseViewController alloc] initWithMsgWrap:stack[2017]];
    r7 = r7;
    stack[2020] = [[stack[2007] navigationController] retain];
    [stack[2020] PushViewController:stack[2019] animated:0x1, stack[1992], stack[1993], stack[1994], stack[1995], stack[1996]];

iOS逆向
44 声望15 粉丝