iPhone можно превратить в «кирпич» простым переводом часов

New Apple iOS 7 features are displayed on screen during Apple Worldwide Developers Conference (WWDC) 2013 in San Francisco, California June 10, 2013. REUTERS/Stephen Lam (UNITED STATES - Tags: BUSINESS SCIENCE TECHNOLOGY TPX IMAGES OF THE DAY) - RTX10IZ6

Обнаруженная в iOS ошибка позволяет сломать аппарат на время — до тех пор, пока не сядет его батарея. В противном случае устройство можно отнести в техподдержку Apple, где его починят тут же. Ошибка возникает, когда пользователь пытается установить определенную дату и время.

«Ошибка 1970» 

В операционной системе iOS, под управлением которой работают iPhone, iPad и iPod touch, найдена ошибка, из-за которой устройство может перестать работать после простой смены текущей даты. Пользователь, обнаруживший ошибку, рассказал о ней на сайте Reddit под ником vista980622.

Сообщение vista980622 было опубликовано сутки назад и за это время набрало свыше 500 комментариев. Новая ошибка была негласно названа «Ошибкой 1970».

Описание проблемы

«Если на устройстве с 64-разрядной iOS поставить текущей датой 1 января 1970 г., устройство не сможет загрузиться. Подключение к iTunes и восстановление заводских настроек не возвращают работоспособность устройства. Починить его можно лишь физически», — рассказал владелец.

Автор настоятельно рекомендовал пользователям не пробовать устанавливать указанную дату.

Он добавил, что ошибку могут эксплуатировать злоумышленники для массового вывода устройств из строя . Например, когда устройство подключается к публичной сети Wi-Fi, оно синхронизует свое время с сервером точного времени. Злоумышленники могут внедрить в публичную сеть  вредоносный код, который будет выводить из строя каждый подключенный к нему iPhone и iPad путем автоматического перевода даты.

Суть проблемы

По мнению пользователя princekolt, написавшего комментарий к записи vista980622, проблема кроется в методе представления времени во всех UNIX-подобных системах, к которым, в том числе относится, iOS. Дело в том, что текущее время в них определяется исходя из количества секунд, пройденных с полуночи 1 января 1970 г. всемирного координированного времени.

При переводе даты на iOS на 1 января 1970 г. и времени на 0:00, если пользователь находится, например, в Нью-Йорке, iOS решает, что время имеет отрицательную величину (-5 часов всемирного координированного времени). Происходит попытка присвоить беззнаковому типу переменной отрицательное значение, в результате чего происходит сбой в ядре операционной системы.

Решение

После возникновения сбоя в ядре iOS вернуть работоспособность устройства можно двумя способами. Первый способ — посетить техподдержку Apple (в зарубежных магазинах Apple она называется Genius Bar). На этот способ в своем сообщении намекнул vista980622, который обнаружил проблему. Специалист службы поддержки разберет устройство и переподключит аккумуляторную батарею, что приведет к сбросу системы. Второй и более простой способ — дождаться, когда батарея устройства сядет до полного отключения.

Источник — zoom.cnews.ru