【发布时间】:2021-01-27 03:47:20
【问题描述】:
我在搞乱 Mach-O 标头和 dyld,遇到了这个函数 _dyld_get_image_header,它返回一个指向动态库的 mach 标头的指针。
我以为我可以通过this article 后面的这个指针访问动态库的 Mach-O 段。但是,我无法访问 Mach-O Headers 的属性并且收到错误消息。在下面的 Swift 代码中,我尝试访问结构的 ncmds 或 load 命令属性,但遇到了错误:
var currentLibrary = 0
// Gets Pointer to Mach Header of First Dynamic Library, Index 0
let libHeader = unsafeBitCast(_dyld_get_image_header(UInt32(currentLibrary)), to: UnsafePointer<mach_header_64>.self)
print(libHeader.ncmds)
错误:
Value of type 'UnsafePointer<mach_header_64>' has no member 'ncmds'
【问题讨论】:
标签: swift pointers struct dyld mach-o