TenpayPasswordCtrl

前言

模拟用户的键盘点击code

Nov 22 13:36:39 iPhone WeChat[3617] <Warning>: KNHooklog :-(id)initWithFrame:AndImage:(have 2 value)
    return:(null)
    value1:NSConcreteValue-->NSRect: {{0, 0}, {246, 42}}
    value2:UIImage--><UIImage: 0x18ee1660>
    object:<TenpayPasswordCtrl: 0x18c09540; baseClass = UITextField; frame = (0 0; 0 0); transform = [0, 0, 0, 0, 0, 0]; alpha = 0; opaque = NO; layer = (null)>
     ##########################################
Nov 22 14:13:25 iPhone WeChat[3957] <Warning>: KNHooklog :-(void)numberKeyBoardClicked:(have 1 value)
    return:(null)
    value1:TPIDKeyboardButton--><TPIDKeyboardButton: 0x18666650; baseClass = UIButton; frame = (105 108; 110 54); opaque = NO; tag = 8; layer = <CALayer: 0x18666750>>
    object:<TenpayPasswordCtrl: 0x1855c1c0; baseClass = UITextField; frame = (0 0; 246 42); text = '842017'; clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x18683250>; layer = <CALayer: 0x1855d910>>
     ##########################################

WCPayOrderPayConfirmView

Nov 22 14:05:04 iPhone WeChat[3878] <Warning>: KNHooklog :-(void)showAnimation(have 0 value)
    return:(null)
    object:<WCPayOrderPayConfirmView: 0x1a344830; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1a324210>>
     ##########################################

修改被保护的属性

Ivar ivar = class_getInstanceVariable(objc_getClass("TenpayPasswordCtrl"), "_pswView");
   TenpayPasswordView  *_pswView = object_getIvar(self, ivar);
    [_pswView SetInputNum:6];

WCPayTenpayPasswordCtrlItem

Nov 22 16:15:09 iPhone WeChat[4412] <Warning>: KNHooklog :-(void)passwordCtrlShouldChange:(have 1 value)
    return:(null)
    value1:TenpayPasswordCtrl--><TenpayPasswordCtrl: 0x16adbe60; baseClass = UITextField; frame = (0 0; 246 42); text = '842017'; clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x16dd8970>>
    object:<WCPayTenpayPasswordCtrlItem: 0x16c47cc0>
     ##########################################
Nov 22 16:26:18 iPhone WeChat[4537] <Warning>: KNHooklog :-(void)onPayBtnClick(have 0 value)
    return:(null)
    object:<WCPayOrderPayConfirmView: 0x1943b390; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x194cf6f0>>
     ##########################################

从这个方法获取启发

void -[TenpayPasswordCtrl numberKeyBoardClicked:](void * self, void * _cmd, void * arg2) {
    stack[2043] = r4;
    *((sp - 0x14) + 0xfffffffffffffffc) = r8;
    r4 = self;
    r5 = loc_e0b79c(arg2, @selector(tag), arg2) - 0x1;
    if (r5 != 0x9) goto loc_890f90;

从WCPayOrderPayConfirmView一步一步的往下获取下一级属性orm