在分析中遇到_objc_msgSendSuper2,不知道如何翻译成代码,试了几次都失败了


#1

ida的汇编代码:
__text:000000010007AA8C MOV X22, X5
__text:000000010007AA90 MOV X21, X4
__text:000000010007AA94 MOV X20, X3
__text:000000010007AA98 MOV X24, X0
__text:000000010007AA9C MOV X0, X2
__text:000000010007AAA0 BL _objc_retain
__text:000000010007AAA4 MOV X19, X0
__text:000000010007AAA8 MOV X0, X20
__text:000000010007AAAC BL _objc_retain
__text:000000010007AAB0 MOV X20, X0
__text:000000010007AAB4 MOV X0, X21
__text:000000010007AAB8 BL _objc_retain
__text:000000010007AABC MOV X21, X0
__text:000000010007AAC0 MOV X0, X22
__text:000000010007AAC4 BL _objc_retain
__text:000000010007AAC8 MOV X23, X0
__text:000000010007AACC ADRP X8, #classRef_HHUISignal@PAGE
__text:000000010007AAD0 LDR X8, [X8,#classRef_HHUISignal@PAGEOFF]
__text:000000010007AAD4 STP X24, X8, [SP,#0x90+var_60]
__text:000000010007AAD8 ADRP X8, #selRef_init@PAGE
__text:000000010007AADC LDR X1, [X8,#selRef_init@PAGEOFF]
__text:000000010007AAE0 ADD X0, SP, #0x90+var_60
__text:000000010007AAE4 BL _objc_msgSendSuper2
__text:000000010007AAE8 MOV X22, X0

其他描述:想把这段翻译成OC代码,我尝试了用 self = [super init],但是会提示’Use of undeclared identifier ‘super’’,然后我用:
Class signleClass = objc_getClass(“HHUISignal”);
id currentObject = [[class_getSuperclass(signleClass) alloc] init];
会造成 Crash,请懂的大佬,帮我分析下

环境:IDA Pro 7.0


#2
‘super’’,然后我用:
Class signleClass = objc_getClass(“HHUISignal”);
id currentObject = [[class_getSuperclass(signleClass) alloc] init];

学正向,请


#3

super 并不像self 一样 是一个指针。
super其实是Objective-C的一个关键字。 编译器会翻译成 self.superclass


#4

并不是每个人都能和张总一样强的,毕竟是毕业P7的男人,哈哈哈