lldb
<__NSStackBlock__: 0x16f80ec60>
<NSMethodSignature: 0x280c89320>
number of arguments = 3
frame size = 224
is special struct return? NO
return value: -------- -------- -------- --------
type encoding (v) 'v'
flags {}
modifiers {}
frame {offset = 0, offset adjust = 0, size = 0, size adjust = 0}
memory {offset = 0, size = 0}
argument 0: -------- -------- -------- --------
type encoding (@) '@?'
flags {isObject, isBlock}
modifiers {}
frame {offset = 0, offset adjust = 0, size = 8, size adjust = 0}
memory {offset = 0, size = 8}
argument 1: -------- -------- -------- --------
type encoding (B) 'B'
flags {}
modifiers {}
frame {offset = 8, offset adjust = 0, size = 8, size adjust = -7}
memory {offset = 0, size = 1}
argument 2: -------- -------- -------- --------
type encoding (@) '@'
flags {isObject}
modifiers {}
frame {offset = 16, offset adjust = 0, size = 8, size adjust = 0}
memory {offset = 0, size = 8}
我理解是无返回值,一个BOOL和一个id型参数
-(void)method1:(id)arg1 method2:(id)arg2 method3:(id)arg3 method4:(void(^)(BOOL,id))arg4 {
NSLog(@"MyHook1 \narg1:%@\narg2:%@\narg3:%@\narg4:%@\n",arg1,arg2,arg3,arg4);
id myArg4 = ^(BOOL block_arg1, id block_arg2){
NSLog(@"MyHook2 %@",block_arg2);
arg4(block_arg1,block_arg2);
NSLog(@"MyHook3 arg4 completed");
};
%orig(arg1,arg2,arg3,myArg4);
}
输出MyHook1 和 MyHook2就crash,这个hook应该怎样写呢?block还是没全搞懂
87cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6m8L8r3!0F1k6f1#2G2L8X3E0W2P5g2)9J5c8V1#2G2L8X3E0W2P5f1c8W2N6W2)9J5c8X3W2K6M7%4g2W2M7#2)9J5c8U0p5J5y4b7`.`. 和这个例子一模一样,而且我还试着try/catch, 以为有什么exception,没有任何输出,直接闪退/crash
难道上面的参数不对?
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2022-11-28 08:21
被llau编辑
,原因: 调整格式