9.3.3下,分析 _sendAction:(id) withEvent时,_objc_msgSend与r0还在么?

对应书中175页,我把decached得到的UIKit.Framework(路径:decached /System/Library/Frameworks/UIKit.framework)中的可执行文件放入IDA中,找到了函数

-[UIBarButtonItem(UIInternal) _sendAction:withEvent:]

但是我的版本的解析结果如下图所示:

似乎所有的 r* 寄存器都用 X* 表示了,也没有_objc_msgSend类似函数,这种情况下不知如何进展。我是9.3.3的64位版本,新手对于这一块不是很懂,望各位大神们指点迷津,谢谢!

r* 寄存器是32位的, x* 寄存器是64位的,书上的例子是32位,所以都是 r* 。
这些红色的地址大多数都是 objc_msgSend,用 lldb 动态调试的时候就能发现了,比如:

1 个赞

原来如此!我去研究一下,多谢!