Хакер опубликовал способ подбора pin-кодов к iPhone без дополнительных устройств

от автора

image

Недавняя история с устройством для подбора pin-кода к iPhone так впечатлила известного хакера и разработчика jailbreak для iOS Мажида Альфхайли, что он задумался – а нельзя ли всё-таки сделать программный подбор pin-кода к устройству, да ещё и быстрее, чем один pin за 40 секунд? Оказалось – можно. Единственное требование – устройство должно быть подвергнуто jailbreak.

Сначала разработчик написал следующий код для перебора всех паролей с 0000 до 9999:

(void)bruteforce {     NSString *numString;     NSString *oneZeroString = @"0";     NSString *twoZeroString = @"00";     NSString *threeZeroString = @"000";      for (int i = 1; i <= 9999; i++)     {         numString = [NSString stringWithFormat:@"%d", i];         switch ([numString length])         {             case 1:                 {                     numString = [threeZeroString stringByAppendingString:numString];                     break;                 }             case 2:                 {                     numString = [twoZeroString stringByAppendingString:numString];                     break;                 }             case 3:                 {                     numString = [oneZeroString stringByAppendingString:numString];                     break;                 }             default:                 break;         }         NSLog(@"code : %@", numString);     } } 

Затем в дампе SpringBoard он нашёл класс SBDeviceLockController с методом

(BOOL)attemptDeviceUnlockWithPassword:(id)password appRequested:(BOOL)requested;

Затем он сделал библиотеку, подключающуюся к процессу SpringBoard и запускающую вышеуказанный код по окончанию процесса, и вызывающую attemptDeviceUnlockWithPassword:appRequested для каждого нового pin-кода.

Всё работало, за исключением того, что после 10 попыток телефон блокировался. После дополнительного исследования хакер нашёл в классе SBFDeviceLockController методы

(bool)_temporarilyBlocked;  (bool)isPasscodeLockedOrBlocked;  (bool)isBlocked; 

После переопределения этих методов таким образом, чтобы они возвращали NO, код заработал в полную силу. 10 попыток не блокируют устройство, проверка одного pin-кода занимает 5 секунд – то есть, проверка всех четырёхзначных кодов займёт не более 14 часов. Теперь хакер работает над автоматической утилитой, которая сможет отправлять этот код на устройство через USB.

Вывод: чем длиннее и сложнее пароль, тем выше ваша безопасность. Впрочем, это и так было очевидно.

ссылка на оригинал статьи http://geektimes.ru/post/247754/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *