前言

代码执行分析

%hook MoonAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // 打印某个类的所有方法的,查看所有方法的执行顺序

    [KNHook hookClass:@"aluTaobaoLoginViewController"];

    return %orig;
}
%end
Nov 10 10:15:16 iPhone Moon[2381] <Warning>: KNHooklog :-(void)beforeLoginWithContext:(have 1 value)
    return:(null)
    value1:aluLoginInfo--><aluLoginInfo: self.loginId=张坤楠88, self.password=scZ2UI0/PTkbJit2N1/ZaxaQUTwIxeToJeHISeJrUp8fGY/LqlBOrTKAdgXq8Ui6uQyQxRmjinQR6V80zZIwfDSUAk=, self.ccId=(null), self.checkCode=(null), self.loginType=taobao>
    object:<aluTaobaoLoginViewController: 0x16936600>
     ##########################################
Nov 10 10:53:41 iPhone Moon[2616] <Warning>: KNHooklog :-(void)loginWithContext:(have 1 value)
    return:(null)
    value1:aluLoginContext--><aluLoginContext: 0x17994060>
    object:<aluTaobaoLoginViewController: 0x16c67800>
Nov 10 10:53:41 iPhone Moon[2616] <Warning>: KNHooklog :-(id)loginBox(have 0 value)
    return:(null)
    object:<aluTaobaoLoginViewController: 0x16c67800>
     ##########################################
Nov 10 10:53:40 iPhone Moon[2616] <Warning>: KNHooklog :-(void)onLogin(have 0 value)
    return:(null)
    object:<aluTaobaoLoginViewController: 0x16c67800>
     ##########################################
Nov 10 10:53:40 iPhone Moon[2616] <Warning>: KNHooklog :-(id)loginBtn(have 0 value)
    return:(null)
    object:<aluTaobaoLoginViewController: 0x16c67800>
     ##########################################
Nov 10 10:53:40 iPhone Moon[2616] <Warning>: KNHooklog :-(void)aluLoginBox:inputAvailable:(have 2 value)
    return:(null)
    value1:aluLoginBox--><aluLoginBox: 0x17895d00; frame = (0 15; 320 88); clipsToBounds = YES; layer = <CALayer: 0x16794030>>
    value2:__NSCFNumber-->1
    object:<aluTaobaoLoginViewController: 0x16c67800>
     ##########################################
Nov 10 10:53:40 iPhone Moon[2616] <Warning>: KNHooklog :-(void)aluLoginPwdBox:(have 1 value)
    return:(null)
    value1:aluLoginBox--><aluLoginBox: 0x17895d00; frame = (0 15; 320 88); clipsToBounds = YES; layer = <CALayer: 0x16794030>>
    object:<aluTaobaoLoginViewController: 0x16c67800>
     ##########################################
Nov 10 10:53:41 iPhone Moon[2616] <Warning>: KNHooklog :-(void)onLoginFailed:(have 1 value)
    return:(null)
    value1:aluLoginContext--><aluLoginContext: 0x17994060>
    object:<aluTaobaoLoginViewController: 0x16c678

关键代码

char -[aluLoginViewController preCheck](void * self, void * _cmd) {
    r7 = (sp - 0x14) + 0xc;
    sp = sp - 0x2c;
    r11 = self;
    r7 = r7;
    r6 = [[r11 rdsBox] retain];
    if (([r6 isHidden] & 0xff) == 0x0) goto loc_18700c;

loc_186ff6:
    [r6 release];
    goto loc_187066;

loc_187066:
    r5 = [[r11 loginBox] retain];
    r0 = [r5 getPassword];
    aluInputBox *_passwordInputBox;
@property(nonatomic) __weak aluTextField *textField; // @synthesize textField=_textField;

@property(retain, nonatomic) NSString *textFieldPlaceHolder; // @synthesize textFieldPlaceHolder=_textFieldPlaceHolder;
@class UIFont;

@interface aluTextField : UITextField
{
    UIFont *_placeHolderFont;
}

@property(retain, nonatomic) UIFont *placeHolderFont; // @synthesize placeHolderFont=_placeHolderFont;
- (void).cxx_destruct;
- (void)drawPlaceholderInRect:(struct CGRect)arg1;
- (struct CGRect)editingRectForBounds:(struct CGRect)arg1;
- (struct CGRect)textRectForBounds:(struct CGRect)arg1;
- (struct CGRect)placeholderRectForBounds:(struct CGRect)arg1;
- (struct UIEdgeInsets)textInsets;
- (void)setFont:(id)arg1;
- (id)initWithFrame:(struct CGRect)arg1;

@end


iOS逆向
44 声望15 粉丝