Под iOS кто-нибудь знает, как генерируются UUID для исполняемых файлов и какая информация может быть в них закодирована?

Приложениям, скомпилированным на iOS, присваиваются идентификаторы (UUID) во время компиляции. Эти идентификаторы могут быть обнаружены инструментом dwarfdump. Кто-нибудь знает, как генерируются UUID и какая информация может быть закодирована в них?


person xyzzycoder    schedule 09.02.2011    source источник


Ответы (1)


Почти наверняка они генерируются механизмом CoreFoundation UUID, который создает их на основе MAC-адреса вашей сетевой карты, метки времени и некоторой другой различной информации. Вы можете сгенерировать свои собственные UUID, запустив uuidgen. Что же касается закодированной в них информации, то все, что есть на самом деле, это фрагменты вашего MAC-адреса. Практически единственное значение, которое это имеет, заключается в том, что теоретически возможно для кого-то определить, что несколько UUID были сгенерированы на одной машине, но я не знаю, возможно ли это на самом деле.

person Lily Ballard    schedule 09.02.2011
comment
Спасибо. Это помогает снять крышку с этого черного ящика. Я пытаюсь понять, какая информация может существовать в сообществе по этому вопросу. - person xyzzycoder; 09.02.2011
comment
На самом деле нет никакой гарантии, что эта информация даже точна. Базовый механизм, используемый для генерации UUID, является деталью реализации. Вы можете найти документацию по адресу CFUUID быть полезным. - person Lily Ballard; 09.02.2011
comment
Спасибо. Я понимаю, что это, по сути, компонент частного API, который Apple может изменить без предварительного уведомления. Учитывая это понимание, я все же хотел бы собрать все, что могу, о специфике текущей реализации. - person xyzzycoder; 09.02.2011
comment
Из исходника CFUUID.c следует, что что он генерирует UUID, используя время/MAC-адрес, если приложение было построено на платформе Tiger или до нее, или если для переменной env CFUUIDVersionNumber установлено значение 1. В противном случае он генерирует то, что называется UUID версии 4, который по существу является случайным без закодированной идентифицирующей информации. - person Lily Ballard; 10.02.2011