断点问题 书上180页


环境 5s 8.3系统 xcode8.33
debugserver 附加 mobilemail 后 lldb连接打印 uikit aslr 偏移
0x1490000 工具打开uikit二进制文件 分析 找到了书中说的第四个参数地址
br s -a 'uikit偏移+二进制文件里的地址‘

漏图一张

我怀疑可能是 AMR架构的位数选择不一致 lldb选的是64位设备。
5s是64位
hopper 提示是armv7m
ida 提示是 armv7s
不过我的二进制文件的确是从手机里 dyld_shared_cache_armv7s 文件提取出来了。
有点小懵逼

看这里

/System/Library/Caches/com.apple.dyld/ 里面的dyld_shared_cache_armXXX
是这里提出的二进制文件 我上面也说了dyld_shared_cache_armv7s 文件

原来可以点进去 我以为是图片- -。 我先看看

没想到这里可以得到二进制文件。我之前都是以为书上说的那个 提取缓存那分析出的二进制文件

不过这里得到的二进制文件 并没有书中这个函数了。 缓存里的dyld_shared_cache_armv7s倒是用。不过之前用也不行 说不上armv7s的在5s(arm64)设备上不行

/Users/mac/Library/Developer/Xcode/iOS DeviceSupport/8.3 (12F70)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit
这里得到的 Uikit对的上地址 可以断点 但是并没有 UIBarBUttonItem _sendAction:withEvent

前面ui分析函数和书上的一样

dyld_shared_cache_armv7s 里有 UIBarBUttonItem _sendAction:withEvent
但是我算出来的 去断点是错的

最终答案 lldb的bug? 答案我也不知道 换台32位处理器手机立马没问题了