Программатор для iphone 5s своими руками

Играем с огнем: запускаем произвольный код на девелоперском iPhone 7

Под Новый год к нам в руки попал программатор JC PCIE-7. В процессе использования выяснилось, что его функционал ограничен, однако вещица оказалась с двойным дном. Внутри этого программатора мы обнаружили плату iPhone 7 специальной отладочной версии. За новогодними приключениями в мире исследования и отладки «яблочной» продукции – добро пожаловать под кат!

Наверное, только совсем ленивые исследователи безопасности не пощупали своими руками возможности, предоставляемые checkm8 и основанном на нем checkra1n (классный обзор checkm8 был недавно на Хабре). Конечно, мы тоже протестировали наши смартфоны и в процессе решили посмотреть, что есть полезного для исследователей на китайском рынке «железных» поделок. Интересный факт: если хочешь протестировать на безопасность какое-либо устройство, то на AliExpress уже есть для этого свои игрушки.

Наша игрушка пришла под самый Новый год – программатор JC PCIE-7, который легко найти на AliExpress:

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


Кадр момента загрузки из обучающего видео

Наконец, мы обратили внимание на функцию подключения программатора к компьютеру по протоколу DFU. В этом режиме программатор корректно определялся в iTunes как iPhone. Мы решили разобрать устройство и посмотреть, что же находится внутри и как происходит эмуляция режима DFU.

Внутри программатора установлены три платы:

  • управляющая плата на базе STM32F103;
  • плата-мультиплексор с напаянным чипом NVMe и колодкой;
  • и, неожиданно, плата iPhone 7.

Оказалось, что программатор переключает мультиплексор таким образом, что сначала плата iPhone загружается с напаянной флеш-памяти, а затем к ней подключается чип NVMe, который нужно прошить. Управление выполняется по виртуальному COM-порту, причем сначала передаются команды переключения чипов NVMe, а затем плата пробрасывает отладочную консоль iPhone, имитируя DCSD-кабель. Внимательно просмотрев отправляемые в COM-порт команды, мы увидели строчки:

setenv diags-path /AppleInternal/Diags/bin/diag.img4
diags

Уже на этом моменте мы поняли, что плата iPhone 7 не совсем обычная (в ней, как минимум, есть папка AppleInternal). Чтобы посмотреть, как она себя ведет в более привычном «окружении», мы переставили плату и NVMe чип в донорский телефон:

Помимо шестеренки при загрузке, в отладочной консоли мы увидели строчку BUILD_STYLE: DEVELOPMENT:

После окончательной загрузки (с помощью упомянутых ранее команд diags) мы получили фиолетовый экран, а уже после нажатия клавиш громкости на экране отобразилось следующее меню:

То есть собранное нами устройство оказалось специальной версией iPhone для тестирования и разработки! К слову, подобные телефоны скупаются исследователями и даже коллекционерами – вот это настоящий подарок в нашу техническую коллекцию! В полноценном девелоперском iPhone установлена специальная сборка iOS с рутовой консолью, значительно облегчающая исследование телефона и поиск уязвимостей:

В нашем случае на телефоне установлена только диагностическая утилита, основное взаимодействие с которой осуществляется через отладочную консоль:

Как можно видеть, функционал отладочной программы немаленький. Предназначена она в первую очередь для тестирования оборудования – большинство команд отвечают за тестирование различных аппаратных подсистем устройства. Наиболее полезными для нас оказались команды directory, memrw, memory и cat.

Выполнив команду directory, можно ознакомиться с содержимым файловой системы:

Выполнив команду cat -h, можно прочитать любой файл:

Комбинируя эти две команды, мы считали все файлы с устройства (почти 150 МБ):

Среди файлов нашлась «пасхалка», рекомендующая не шутить с Iphone7 огнем:

Выполнив команду memory -dump, можно читать диапазоны ОЗУ:

Наконец, с помощью команды memrw можно перезаписывать ОЗУ:

Несмотря на то, что чтение памяти это уже в меру полезный функционал, мы решили проверить: можно ли перезаписать области исполняемого кода и запустить что-то свое? Ведь iPhone девелоперский, а функционал пока что пользовательский – так не пойдет!

Стандартными способами сделать это не удалось, возникала ошибка с достаточно подробным трейс-логом:

Читайте также:  Кремниевой долины экс евангелиста apple

В данном случае в трейс-логе сообщается, что при исполнении по адресу 0x87BF68E30 в модуле TestDirectMemoryRW.macho возникло исключение из-за записи в read-only адрес памяти. Но нет преград для технических исследователей под Новый год! Обратим внимание на самый последний вызов в стеке: DxeMain.macho. Присутствие аббревиатуры DXE и строки EDK Boot Loader commands позволяет сделать вывод, что на устройстве запущена EFI-совместимая система. И действительно, образ системы diags.img4 корректно открывается с помощью UEFITool:

Дизассемблирование программных модулей показало, что все исполняемые модули используют соглашения о вызовах EFI и стандартные структуры EDK:

Каждой команде терминала соответствует отдельный EFI-модуль, например, команде memory соответствует модуль TestUtilities.macho, который загружается в ОЗУ по адресу 0x87BE10000 (определено из трейс-лога).

Попробуем модифицировать программный код этого модуля, чтобы исполнить наш код.

По адресу 0x87BE1600D располагается текстовая строка, выводимая по команде memory –info, модифицируем ее:

Чтобы модифицировать нужную нам область памяти, требуется изменить права доступа на страницу по адресу 0x87BE14000 с read-only/execute на read/write/execute. Согласно документации AArch64, за права доступа отвечает специальная таблица трансляции. Таблица должна располагаться в ОЗУ и состоять из записей по 8 байт следующего формата:

Таблица трансляции второго уровня была обнаружена по адресу 0x87FBF4000, в диапазоне памяти, доступном для перезаписи. На этом уровне каждая запись соответствует 32 МБ (0x2000000) адресного пространства, поэтому нужная нам запись для диапазона 0x87A000000–0x87BFFFFFF находится по адресу 0x87FBF4000 + (0x87A000000 / 0x2000000) * 8 = 0x87FBF61E8:

Запись имеет тип table, то есть указывает на таблицу трансляции третьего уровня по адресу 0x87FCEC000. В этой таблице каждая запись соответствует одной 16 Кб (0x4000) странице адресного пространства и имеет тип block. Нужная нам запись для страницы 0x87BE14000 находится по адресу 0x87FCEC000 + (0x87BE14000 – 0x87A000000) / 0x4000 * 8 = 0x87FCEFC28:

Поскольку эта запись имеет тип block, она указывает на физическую страницу памяти и содержит атрибуты доступа. Нас интересует Lower block attributes, а именно поле Data Access Permissions bits:

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

После этого у нас должен появиться доступ на запись для нужной области. После внесения требуемых изменений получаем желаемый результат:

The moral: с помощью описанного метода мы можем модифицировать любые системные приложения и исполнять произвольный код в среде UEFI на девелоперском iPhone.

Практической ценности для старых версий iPhone данное исследование не несет, но было весело разобраться в чем-то неизведанном и редком, особенно когда оно неожиданно появилось как подарок на Новый год.

P. S. А вот для исследования последних версий iPhone и получения SecureROM может пригодиться описанный метод: уязвимость checkm8 в них исправлена, а подобные «программаторы» на AliExpress на базе iPhone XR и iPhone 11 уже продаются.

Raccoon Security – специальная команда экспертов НТЦ «Вулкан» в области практической информационной безопасности, криптографии, схемотехники, обратной разработки и создания низкоуровневого программного обеспечения.

Источник

Программатор для iphone 5s своими руками

Всем привет, хочу приобрести программатор для девайсов Apple, многим это уже известно и хотелось бы узнать у юзеров, что да как?
Вариант первый http://ru.aliexpress.com/item/64-Bit-IC-Chip-Programmer-Machine-Repair-Mainboard-Nand-Flash-Hard-Disk-HDD-Serial-Number-SN/32522881338.html?aff_platform=aaf&sk=eub6yrrBy%3A&cpt=1460040529357&af=12471&cv=1514485&cn=2o59qh8q8ypjvfkt5yomqxl0d2hwa1jp&dp=v5_2o59qh8q8ypjvfkt5yomqxl0d2hwa1jp&afref=&aff_trace_key=74d0545b5f6047cbaf19db1ec72a56fc-1460040529357-09848-eub6yrrBy

Вариант второй два в одном http://ru.aliexpress.com/item/2-in-1-32-64-Bit-Nand-Flash-IC-Programmer-Machine-HDD-Mainboard-Repair-Serial-Number/32619826560.html?spm=2114.10010208.100009.8.K3d4LE

Второй вариант хочется купить но отзывов не нашел, если есть имеющие такие прогери помогите советом плииииз
Заранее благодарен

Много обмана оттуда. знакомые заказывали — пришел мусор.
слишком много ньюансов у комплекса. прогер не так прост как может показаться. и не факт что продавец положит что надо и сделает как надо
а в случае с али лотерея 10\90. мое мнение

Про первый вариант есть положительный отзыв от Российского юзера, и продавец тоже на ура как говорится, но второй вариант похоже новинка и хочется купить сразу 2 в 1 как говорится, если продукт имеет поддержку как первый вариант, а если окажется что оба бокса детище одного производителя то было супер, очень хотелось бы у владельцев второго варианта услышать что то

Источник

Программатор для iphone 5s своими руками

Способы доставки: Новая Почта

Больше информации вы сможете найти на странице «Информация о доставке»

  1. Программатор iCopy 2го поколения
  2. Плата расширения для дисплеев и вибромотора
  3. Плата расширения для батарей
  • Восстановление вибрации, true tone, светочувствительность, считывание и запись чипов Baseband
  • Возможность восстановления true tone без наличия оригинального экрана
  • Тест емкости батареи (при наличии батарейной платы)
  • Поддерживаемые языки: английский, испанский, китайский
  • Обновление: возможность последующего обновления панели модуля
  • Питание: Lightning коннектор (стандартный от iPhone)
Читайте также:  Почему айфон не сохраняет воспоминания

Программатор iCopy 2й версии позволяет переносить данные микросхемы с оригинального дисплея iPhone на заменяемый дисплей для восстановления True Tone. Поддерживаемые дисплейные модули начиная с моделей iPhone 7 и заканчивая поддержкой iPhone 11 / 11 Pro / 11 Pro MAX всех ревизий.

Из дополнительных функций, программатор поддерживает передачу данных с вибрационного двигателя (Taptic Engine) моделей iPhone 7 / 7 Plus / 8 / 8 Plus / X / XR / XS / XS MAX

Также есть возможность протестировать емкость аккумулятора благодаря дополнительной батарейной плате (идет в комплекте).

Процедура прошивки элементарная, просто подключите оригинальный дисплей или вибромотор и перенесите данные оригинальных модулей на новый вибро двигатель или дисплей. Более подробно можете посмотреть в видео руководстве ниже.

Данный программатор поддерживает возможность подключения к микросхеме основной шины через проволочную перемычку, используя распиновку ISP на материнской плате iPhone в iCopy. Это позволяет восстановить True Tone в случае, если утерян оригинальный экран, эта функция поддерживает iPhone 7 / 7P / 8 / 8P / X / XR / XS / XS MAX.

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

Покупая прогромматор на How-Fixit вы можете быть уверенны, что получите оригинальный продукт от производителя Qianli.

Источник

Взлом iPhone по шагам

Содержание статьи

Все можно сделать своими руками: нужные инструменты стоят порядка ста баксов. Сюда входят:

  • Программатор сим-карт (чтение/запись сим-карт), 1800 руб;
  • Чистая мyльтисимка — это Silvercard (чип-каpта CPU PIC16F876 + Memory 24C64 + 8 разных сотовых оператора, 208 номеров в записной книжке, 10 SMS), 250 руб;
  • Программы для вычисления KI и прошивки сим-карт (подойдет Woron Scan — работает быстрее своих аналогов), бесплатно.

Все это добро можно приобрести через Яндекс, если ввести запрос silvercard мультисим и посмотреть в правой колонке объявлений.

Так выглядит SIM-программатор.

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

Прежде чем продолжить, давайте ознакомимся с тем, что мы будем ломать — некие коды симок и операторов.

Для справки

Для того чтобы начать работу в сети GSM, телефон (правильнее сказать сим-карта) должен в ней «зарегистрироваться». Регистрация в сети производится по двум основным параметрам: IMSI — International Mobile Subscriber Identity (международный идентификационный номер пользователя) и ключ шифрования KI (индивидуальный ключ аутентификации пользователя, используемый для вычисления значения отклика и ключа шифрования). Эти номера хранятся на сим-карте, выданной оператором, и не подлежат изменению. Таким образом, каждая сим-карта оператора уникальна и, чтобы сделать клон сим-карты, необходимо знать IMSI и KI.

Шаг 1. Предварительная подготовка

Внимание. Все дальнейшие операции вы производите на свой страх и риск.

Шаг 2. Еще немного операций

Если вы прошли первый шаг, то теперь вам понадобится «симка» AT&T, которая шла вместе с телефоном.

Шаг 3. Считываем IMSI, ICCID и KI

Для начала вам нужно знать, что третий шаг требует времени. Если узнать номер IMSI не составляет труда, то значение KI узнать на порядок сложнее. Без физического доступа к сим-карте это вообще невозможно (по крайней мере, на данный момент), так как в эфире KI не передается в открытом виде. При аутентификации абонента на базовой станции оператора сим карта шифрует ключом KI некое сообщение (псевдослучайный запрос), переданное сетью оператора, и возвращает результат. Сеть производит такое же действие со своей стороны — и если ключи совпали, то и зашифрованные сообщения тоже совпадут.

Привожу экспериментальные данные по российским операторам.

Cим карта Ворон Скан
Время, мин. Количество обращений к сим-карте Частота, МГц
МТС-Джинс 5 5354 14.28
МТС-медиа 30 14696 7.14
МТС-инфо 20 18330 7.14
МТС-инфо 27 18863 7.14
МТС-медиа 11 6349 7.14
БиЛайн 96 17566 3.57

Большинство программаторов работают на фиксированной частоте 3.57 МГц, однако в нашем случае (USI v 2.0) была возможность выбора частоты между 3.57, 7.14 и 14.28 МГц. Чем выше частота кварцевого генератора, тем быстрее закончится процесс сканирования. Однако надо учесть, что сим-карты разных операторов поддаются сканированию на разных частотах, точнее сказать, на частоте 3.57 МГц сканируются все сим-карты, на более высокой частоте — не все. Например, в Москве сим-карты БиЛайн сканируются только на частоте 3.57 МГц, сим-карты МТС на частоте 7,14 МГц (МТС-медиа и МТС-инфо) и на частоте 14.28 МГц (Джинс). Сим-карты Мегафона сканируются на частоте 14.28 МГц, однако узнать KI не удастся.

Читайте также:  Почему не заходит ватсап с айфона

В итоге получаем примерно следующий результат (зависит от вашей карты):

Сохраняем результат в файл. Затем открываем текстовым редактором получившийся файл и находим в нем значения KI и IMSI вашей сим-карты. В случае если найти KI невозможно, программа прекратит работу на 60000-х обращений к сим-карте. Сделано это с той целью, чтобы избежать блокировки карты из-за превышения порогового числа обращений. Однако Вы можете принудительно продолжить сканирование, но по личному опыту можем сказать, что если KI не был найден меньше чем за 60 000 попыток, то он уже не будет найден никогда. Мы проверяли на сим-карте Мегафона, после 90 000 обращений сим-карта заблокировалась. Т.е. пользоваться ей стало невозможно (такие дела, экспериментируйте на картах, которые
не жалко).

Отлично. Продолжим. Дальше от вас потребуется:

  • Скачать утилиту SIM-EMU;
  • Поместить Silvercard в программатор, запустить SIM-EMU;
  • Configure tab >> Read from disk >> подцепить SIM_EMU_6.01_iphone. HEX и SIM_EMU_6.01_iphone_EP. HEX >> удостоверимся, что ячейки утилиты с 0 по 9 стали красными;
  • В 0-ячейку вбиваем IMSI и Ki вашей симки, потом AT&T ICCID. Для ADN/SMS/FDN# проставляем вручную 161, 15, 4. Для SMS Centre юзаем ваш сервисный номер для отправки SMS (смотрим в установках телефона или на сайте оператора);
  • В 9-ячейку вставляем IMSI AT&T;
  • В опциях Config mode отмечаем Card;
  • Нажимаем Write to card;
  • Выключаем iPhone, вставляем созданную супер-симку;
  • Включаем iPhone;
  • Наблюдаем иконку своего оператора и делаем тестовый звонок бабушке с дедушкой. Теперь ты — Властелин колец.

Enjoy, iphone maniacs!

Кроме того, вот как описывает процесс один из участников:

Сам процесс подробно описан на hackint0sh, повторять все смысла не вижу, поэтому расскажу про грабли, с которыми мне пришлось столкнуться.

МультиСИМка SilverCard и программатор (поскольку у меня нет PC с com-портом, пришлось брать USB) были заказаны в megasim.ru. Программатор оказался сильно продвинутым — модель MultiPass Plus, что вызвало первое затруднение — этот программатор работает с картой напрямую через свой софт, поэтому сторонние программы типа WoronScan его, почему-то, не видят. После долгих плясок с бубном мне, наконец, удалось начать считывать мою сим-карту. Добиться этого удалось следующим образом — в программе, идущей в комплекте, есть режим SmartMouse/Phoenix, при переключении в него карта стала доступна для SimScan, которая сильно медленнее, чем Woronscan, но последний на тот момент мне заставить работать не
удалось. Поэтому Ki и IMSI я сканировал с помощью SimScan, и заняло это…… 2,5 часа! Самое обидное, что после успешной инициализации симки в SimScan (надо нажать на кнопку Test), WoronScan тоже начинает работать, но это я узнал уже позже, когда вытаскивал ICCID с симки оператора.

В общем, все данные с симок сосканированы, наступает следующий этап — все это надо записать на мультисим. Тут опять все оказалось не просто. Софтинка SIM-EMU наотрез отказалась писать на карту измененную прошивку, выдав сообщение типа “вставьте карту GSM или SIM-EMU”. Выход был найден следующим образом — через софт программатора я залил прошивку, скачанную по ссылке из мануала HackintOsh.org, а потом уже ее поправил в SIM-EMU, заменив все данные на свои, после этого изменения записались успешно, и iPhone SuperSIM, наконец, была готова (часа 4 это заняло примерно).

Дальше надо было активировать айфон с этой сим-картой. Я начал это делать на маке, все сделал по инструкции, но в самом последнем действии, когда, собственно, запускается команда activate, процесс прерывался ошибкой Bus error…. Начались очередные танцы с бубном — я перегружал айфон, компьютер, делал restore телефона в iTunes и т.п. — ничего не помогло. Оставался последний вариант — попробовать активировать в Windows. И, хотя я уже не надеялся на результат, но в винде все сработало!

Кстати, хочу сказать спасибо энтузиастам с hackint0sh.org — ozbimmer, Sassha и Vladimir_CDI, которые сделали все это возможным.

Кстати, в той прошивке, которую для айфона сделал Vladimir_CDI, прописан билайновский номер центра SMS, так что я, видимо, не первый, у кого российский оператор на айфоне работает

Источник

Оцените статью