我有一个与 -bind_at_load 参数链接到 ld 的二进制文件。在 ELF 系统上,我会使用 -Wl,-z,now 然后 readelf 来验证二进制文件上是否启用了 DT_BIND_NOW 标志。在 OS X 上,我如何验证 mach 标头中的适当标志是否已遵守 -bind_at_load?标志的名称是什么,应该设置什么值?
问问题
602 次
1 回答
1
您可以使用otool -l /path/to/binary
和检查LC_DYLD_INFO_ONLY
load 命令。如果二进制文件与 链接-bind_at_load
,则延迟绑定偏移量/大小等于 0:dyld
不会延迟绑定符号,并且在加载二进制文件时会绑定所有符号。
样本输出:
和
-bind_at_load
Load command 4 cmd LC_DYLD_INFO_ONLY cmdsize 48 rebase_off 8192 rebase_size 8 bind_off 8200 bind_size 224 weak_bind_off 0 weak_bind_size 0 lazy_bind_off 0 lazy_bind_size 0 export_off 8424 export_size 48
没有
-bind_at_load
Load command 4 cmd LC_DYLD_INFO_ONLY cmdsize 48 rebase_off 8192 rebase_size 8 bind_off 8200 bind_size 128 weak_bind_off 0 weak_bind_size 0 lazy_bind_off 8328 lazy_bind_size 104 export_off 8432 export_size 48
于 2013-06-14T18:09:17.343 回答