Универсальное отображение двоичных файлов в памяти - PullRequest
0 голосов
/ 12 июля 2019

macos-sierra на компьютере Intel: при анализе двоичного файла fat и проверке содержимого fat_header в Xcode / lldb отображается магическое число в формате с прямым порядком байтов.

Однако hexdump отображает его в формате с прямым порядком байтов.

Документация Apple в OS X Справочник по формату файлов Mach-O ABI прямо заявляет: «Независимо от контекста, эта структура данных описывает все ее поля, хранящиеся в порядке байтов с прямым порядком байтов»

Итак, я предполагаю, что где-то в fopen, fread или Xcode есть вызов для процедур подкачки, потому что я этого не делаю.

Для меня это означает, что ключ здесь «хранится на диске / SSD», а не в памяти.

Я прав?

просто проверка с использованием переменной кадра lldb fatHeaderRef-> magic -f hex против hexdump

struct fat_header   *fatHeaderRef;
fatHeaderRef = malloc(fatHeaderSize);
bzero(fatHeaderRef,fatHeaderSize);
numRead = fread(fatHeaderRef,byte,fatHeaderSize,fp);
if (FAT_CIGAM == fatHeaderRef->magic)
    fprintf(stderr, "little endian %u %x\n", fatHeaderRef->magic, fatHeaderRef->magic );
else if (FAT_MAGIC == fatHeaderRef->magic)
    fprintf(stderr, "big endian\n" );
else
    fprintf(stderr, "not fat header\n" );
...