Идентификатор машины для Mac OS? - PullRequest
3 голосов
/ 26 июня 2009

Мне нужно вычислить идентификатор машины для компьютеров, работающих под управлением MacOS , но я не знаю, где можно получить информацию - например, серийные номера жестких дисков и т. Д. Основное требование *1004* для Мое конкретное приложение состоит в том, что пользователь не должен иметь возможность подделать его . До того, как вы начнете смеяться, я знаю, что это неправдоподобно, но при как минимум метод подмены должен потребовать перезагрузки.

Лучшим решением было бы одно в C / C ++ , но я возьму Objective-C, если нет другого пути. Самое лучшее решение для не требует прав root .

Есть идеи? Спасибо.

Ответы [ 3 ]

3 голосов
/ 26 июня 2009

Инструмент / usr / sbin / system_profiler может предоставить вам список серийных номеров для различных аппаратных компонентов. Вы можете рассмотреть возможность использования этих значений в качестве текста для создания хеша md5 или чего-то подобного.

3 голосов
/ 26 июня 2009

Предложение Эрика о system_profiler (и лежащее в его основе, но недокументированном SystemProfiler.framework) - ваша лучшая надежда. Ваше основное требование невозможно, и любое решение без поддержки оборудования будет довольно быстро взломано. Но вы можете создать разумный уровень запутывания, используя system_profiler и / или SystemProfiler.framework.

Я не уверен, что ваши реальные требования здесь, но эти сообщения могут быть полезны:

Я повторю здесь то, что я сказал в первом сообщении: невозможно, точка, невозможно гарантировать, что только ваш клиент может общаться с вашим сервером. Если это ваше основное требование, это не решаемая проблема. Я буду расширять это, говоря, что невозможно построить вашу программу так, чтобы люди не могли вынести чек, который вы вставили, поэтому, если целью является лицензирование, это также не является полностью решаемой проблемой. Во втором посте выше обсуждается, как думать об этой проблеме, с точки зрения бизнеса, а не инженерии.

РЕДАКТИРОВАТЬ: Что касается вашего запроса на перезагрузку, помните, что Mac OS X имеет расширения ядра. Загружая расширение ядра, всегда можно изменить то, как система видит себя во время выполнения без перезагрузки. В принципе, это будет руткит Mac, который в принципе не более сложен, чем руткит Linux. Вам нужно тщательно продумать, кто ваш злоумышленник, но если ваши злоумышленники включают хакеров ядра Mac (что не является незначительной группой), то даже требование перезагрузки не представляется возможным. Это не значит, что спуфинг не может раздражать большинство пользователей. Это всегда возможно достаточно компетентным злоумышленником. Это верно для всех современных ОС; Здесь нет ничего особенного в Mac.

1 голос
/ 26 июня 2009

Как насчет получения MAC-идентификатора сетевой карты, подключенной к компьютеру, с помощью ifconfig?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...