Я пытаюсь понять, как работают файлы Mach-o, и добился значительного прогресса с доступными онлайн-ресурсами (в частности , страница Apple здесь: http://developer.apple.com/library/mac/#documentation/developertools/conceptual/MachORuntime/Reference/reference.html ), но я не смог понять как работают заглушки символов.
Используя "otool -l", я вижу следующий раздел:
Section
sectname __symbolstub1
segname __TEXT
addr 0x00005fc0
size 0x00000040
offset 20416
align 2^2 (4)
reloff 0
nreloc 0
flags 0x80000408
Однако, когда я смотрю на данные из двоичного файла в шестнадцатеричном редакторе, я вижу следующие 4 байта, повторяющиеся снова и снова:
00005FC0 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 88
00005FD0 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 88
00005FE0 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 88
00005FF0 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 38 F0 9F E5 88
Это выглядит как LDR, увеличивающий ПК на фиксированную величину, но я не понимаю, почему сумма одинакова для каждой записи в таблице символов.
Если кто-то может пролить свет на то, почему это так, или предоставить какие-либо ресурсы с таким низким уровнем, пожалуйста, дайте мне знать.
Спасибо!