前言

从ChatRoomInfoViewController 探索

Nov 19 13:16:31 iPhone WeChat[2804] <Warning>: KNHooklog :-(void)addMember(have 0 value)
    return:(null)
    object:<ChatRoomInfoViewController: 0x16925a00>
     ##########################################
void -[ChatRoomInfoViewController addMember](void * self, void * _cmd) {
    r0 = self;
    r7 = (sp - 0x14) + 0xc;
    r4 = sp - 0xc8;
    asm { bfc        r4, #0x0, #0x3 };
    sp = r4;
    r5 = r0;
    r5->m_bDeleteStatus = 0x0;
    loc_1c0d080(r5, @selector(updateMemberView), 0x0);

AddMemLogic

 r4 = *ivar_offset(m_addMemLogic);
    if (*(r5 + r4) == 0x0) {
            loc_1c0d080(@class(AddMemLogic), @selector(alloc));
            *(r5 + r4) = loc_1c0d080();
            loc_1c0d090(*(r5 + r4), *(r5 + r4));
            loc_1c0d080(*(r5 + r4), @selector(setM_delegate:), r5);
            loc_1c0d080(*(r5 + r4), @selector(setM_viewScene:), 0x2);
    }

值得重点研究的方法

ChatRoomInfoViewController loadMemberList

AddMemLogic start

void -[AddMemLogic start:](void * self, void * _cmd, void * arg2) {
    objc_storeStrong(*ivar_offset(m_arrMemberList) + self, arg2);
    r10 = [arg2 retain];
    r6 = objc_loadWeakRetained(*ivar_offset(m_delegate) + self);
    r5 = [[r6 getViewController] retain];
    [ChatRoomUtils openAddContactWithMemberList:r2 inViewController:r5 delegate:self];
    [r10 release];
    [r5 release];
    loc_2868adc(r6, @selector(openAddContactWithMemberList:inViewController:delegate:), r10);
    return;
}

MultiSelectContactsViewController

 r6 = [[MultiSelectContactsViewController alloc] init];

MMConfigMgr

r5 = [[r10 getService:[MMConfigMgr class]] retain];

r8 = [[MMUINavigationController alloc] initWithRootViewController:r6];
 [stack[2008] PresentModalViewController:r8 animated:0x1];

iOS逆向
44 声望15 粉丝