Как получить UUID динамического линкера? (/usr/lib/dyld)IOS

Программируем под IOS
Ответить
Anonymous
 Как получить UUID динамического линкера? (/usr/lib/dyld)

Сообщение Anonymous »

Я пытаюсь получить UUID/usr/lib/dyld (динамический линкер) устройства iOS, но ни один из методов, которые я пытался, не работает. Динамическое изображение линкера (mh_dylinker) даже не загружается в _dyld_get_image. Я попытался сделать следующий код: < /p>

Код: Выделить всё

- (NSString *) getDynamicLinkerUUID {
const struct mach_header *dyldHeader = NULL;
for (uint32_t i = 0; i < _dyld_image_count(); i++) {
const struct mach_header *header = _dyld_get_image_header(i);
if (header->filetype == MH_DYLINKER) {
dyldHeader = header;
break;
}
}

if (!dyldHeader)
return @"Cannot found header: MH_DYLINKER";

BOOL is64bit = dyldHeader->magic == MH_MAGIC_64 || dyldHeader->magic == MH_CIGAM_64;
uintptr_t cursor = (uintptr_t)dyldHeader + (is64bit ? sizeof(struct mach_header_64) : sizeof(struct mach_header));
const struct segment_command *segmentCommand = NULL;
for (uint32_t i = 0; i < dyldHeader->ncmds; i++, cursor += segmentCommand->cmdsize) {
segmentCommand = (struct segment_command *)cursor;
if (segmentCommand->cmd == LC_UUID) {
const struct uuid_command *uuidCommand = (const struct uuid_command *)segmentCommand;
const uint8_t *uuid = uuidCommand->uuid;
NSString* uuidString = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
uuid[0], uuid[1], uuid[2], uuid[3],
uuid[4], uuid[5], uuid[6], uuid[7],
uuid[8], uuid[9], uuid[10], uuid[11],
uuid[12], uuid[13], uuid[14], uuid[15]];
NSLog(@"UUID: %@", uuidString);
return [uuidString lowercaseString];
}
}
return @"";
}
Это всегда возвращает "не может найти заголовок: mh_dylinker"
Пожалуйста, дайте мне знать, как я могу его получить.

Подробнее здесь: https://stackoverflow.com/questions/764 ... r-lib-dyld
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»