motofan logo
       
> 

Программная разлочка Motorola P2K, Software way to remove SIM-lock (Subsidy Password)!

EXL
сообщение 5.11.2022, 21:27 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



В свободное время я изучил интересный программный способ снятия SIM-Lock'а без всяких манипуляций с процедурой TestPoint и без использования капризной программы P2K Easy Tool и её опасных техник вроде понижения версии Boot Loader. Этот способ разлочки был разработан человеком под ником L4c и использовался в основном для снятия блокировки на телефонах L2, L6, V19x и некоторых других использующих SOC Neptune LTE. В этом году Indepth6 случайно залочил свой Motorola V235 и обратился за помощью в наш Telegram-чат, где мне удалось портировать метод снятия Subsidy Password и на V235, который построен уже на более новом SOC -- Neptune LTE2, хоть и пытается мимикрировать под первую версию LTE. По итогу SIM-Lock с V235 был успешно снят, что ранее без TestPoint'а было невозможно.

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

1. Инструкция по программному снятию SIM-Lock на Motorola SLVR L2, L6, V19x, V235

Для разлочки нам понадобится система в которой будут работать Flash Mode и P2K Mode по USB. Можно использовать Windows XP, Windows 7 (32-bit, 64-bit), а вот на современных Windows 10, Windows 11, Ubuntu 22.04 LTS могут быть проблемы с подключением. Поэтому я рекомендую воспользоваться виртуальными машинами со специально подготовленными образами, в которых уже установлены все необходимые драйвера и программы. Информацию по их использованию и установке можно найти в этой теме: Образы виртуальных машин для телефонов Motorola.

1.1. В любом случае, первым делом устанавливаем на ваш хостовый компьютер подходящие по битности драйвера:1.2. Скачиваем и устанавливаем официальную программу от Motorola для прошивки телефонов -- RSD Lite v3.8 и любую программу для редактирования SEEM-ячеек, я предпочитаю использовать известный всем незаменимый комбайн для работы с P2K-телефонами Motorola, P2K Tools VS последней версии:1.3. Скачиваем непосредственно сам набор файлов для разблокировки телефонов, распаковываем его в любое доступное место:1.4. Переводим телефон во Flash-режим по зажатию кнопок "*", "#", "Красная трубка" когда он выключен и в таком состоянии подключаем телефон к компьютеру или к виртуальной машине. Аккумулятор должен быть заряжен, желательно полностью.

1.5. Запускаем прошивальщик RSD Lite v3.8 и прошиваем в телефон патченную прошивку:
  • FW_L2_L6_V19x_R3511_47R_NoRSA_NoLock_L4c.shx -- Для Motorola SLVR L2, L6, V19x.
  • FW_V235_R3512_6CR_B_NoRSA_NoLock_EXL.shx -- Для Motorola V235.
1.6. Включаем телефон после прошивки, если он не включился автоматически и видим что SIM-Lock пока ещё остался на месте. Далее нам нужно залить несколько SEEM-файлов поочерёдно по обозначенным адресам с помощью любой программы в P2K-режиме:
  • 01C3_0001.seem
  • 01C4_0001.seem
  • 015C_0001.seem
  • 015D_0001.seem
Адреса и оффсеты по которым следует заливать SEEM-файлы явно обозначены в именах файлов.

Прикрепленное изображение

Лично мне удобно проливать подобные SEEM'ы с помощью программы P2K Tools VS.

1.7. Перезагружаем телефон. Теперь, если он снова попросит ввести Subsidy Password, забиваем "00000000" (все ноли) в поле ввода и радуемся разлоченному телефончику.

2. Подробная видеоинструкция на YouTube

Если вышеописанная инструкция показалась для вас сложной, я подготовил видео на YouTube с описанием всех шагов:
[video]https://www.youtube.com/watch?v=wWGjU3Kv7Dw[/video]
3. Как случайно не залочить телефон экспериментируя с прошивками?

Механизм установки SIM-Lock располагается в самом коде прошивки (CG1), но триггеры которые его активируют находятся во флексе (CG2) в файлах и SEEM-ячейках. К примеру, файлы "/a/mobile/system/generic_pds_init" и "/a/mobile/system/secure_pds_init" при первом включении телефона после прошивки перезаписывают некоторые ячейки в PDS и могут установить SIM-Lock.

Издавна существовал способ работающий по следующему принципу: перед любой прошивкой проливаем в телефон особый флекс, который сбрасывает пароль SIM-Lock на "00000000" и лочит эти SEEM'ы, после чего шьём подозрительную прошивку. Если в ней имеется SIM-Lock, то прошивка его установит, но не сможет изменить сброшенный пароль. Поэтому если запросит код, то просто вводим нолики и радуемся разблокированному телефону.Пролить перед прошивкой этот HS-файлик можно с помощью программ RSD Lite или Multi Flash Flex Tool в обычном P2K-режиме. Помните, что этот способ может обезопасить вас только перед проливкой лочёной прошивки, но уже не после того как вы её прошили без этого защитного метода.

4. Описание метода снятия SIM-Lock

Motorola решила обезопасить операторов сотовой связи, которые устанавливали подобные SIM-Lock'и и залочила возможность записывать в P2K-режиме через USB-шнурок некоторые SEEM'ы из PDS как раз для того, чтобы люди не могли переписать эти ячейки и избавиться от SIM-Lock'а. Но если пропатчить прошивку патчем где убрана проверка определённых SEEM-ячеек, которые заливаются по кабелю, то можно будет перезаписать их любой P2K-программой. К примеру, занулить их и навсегда забыть про SIM-Lock.

В любой P2K-прошивке имеется специальная таблица, которая регламентирует возможность или невозможность записи определённых PDS-ячеек в режиме P2K. Именно эту таблицу и требуется запатчить таким образом, чтобы SEEM'ы под номерами 01C3 (SEEM_GLOBAL_FEATURE_PROTECTED_STATE_NVM), 01C4 (SEEM_GLOBAL_FEATURE_PROTECTED_STATE_DEFAULT_NVM), 015C (SEEM_SUBSIDY_LOCK_GSM_SSCP), 015D (SEEM_SUBSIDY_LOCK_GSM_NWSCP) где хранится информация о залоченных SEEM-ячейках и SIM-Lock'е могли быть перезаписаны.

Таблица имеет следующий вид и структуру (схематично, в псевдокоде):

Код
{
   SEEM_SUBSIDY_LOCK_GSM_SSCP,                      READ_WRITE_NOT_ALLOWED,
   SEEM_SUBSIDY_LOCK_GSM_NWSCP,                     READ_WRITE_NOT_ALLOWED,
   SEEM_GLOBAL_FEATURE_PROTECTED_STATE_NVM,         READ_WRITE_NOT_ALLOWED,
   SEEM_GLOBAL_FEATURE_PROTECTED_STATE_DEFAULT_NVM, READ_WRITE_NOT_ALLOWED,
   SEEM_BT_ADDR,                                    READ_WRITE_ALLOWED,
   SEEM_SERVICE_PASSWORD,                           READ_WRITE_ALLOWED,
   ...
}

В бинарном представлении она выглядит так и ищется в CG1 по паттерну "00 00 00 00 00 00 00 00 01 5D 00 00 XX XX XX XX", где XX -- произвольный байт данных:

Прикрепленное изображение

В таблице идёт сначала адрес ячейки (выделен синим), а потом уже идёт информация о том, возможно ли перезаписать её в P2K-режиме (отмечена красным).

Первая проблема вылезает в попытках переноса патча с одной прошивки на другую и состоит в том, что значения отмеченные красным менялись от прошивки к прошивке при их компиляции ещё на заводах Motorola и нельзя сказать, к примеру, что значение "10 0C FA F5" на другой прошивке соответствует утверждению "READ_WRITE_NOT_ALLOWED". Оно будет справедливо лишь для текущей прошивки.

Вторая проблема вытекает из первой: какому именно значению в HEX будет соответствовать утверждение "READ_WRITE_ALLOWED" пока неизвестно. Или же известно?

На самом деле нужно лишь немного изучить бинарное представление таблицы и обратить внимание на SEEM-ячейки 0004 (UNKNOWN), 00AB (BT_ADDR), 01BB (SERVICE_PASSWORD) и другие, запись которых в P2K-режиме разрешена. А это значит что если перенести следующие за ними HEX-значения на нужные SEEM'ы, то они тоже станут доступны для записи! В примере с изображения выше значение "10 0C FC 1B" вставленное после SEEM'ов 01C3, 01C4, 015C, 015D уберёт эту защиту.

Именно это и происходит в патченной прошивке. После отключения этой защиты дальше просто дело техники -- занулить существующие значения в этих четырёх PDS-ячейках и телефон будет разблокирован!

Стоит заметить, что этот метод многоразовый, то есть вы можете много раз лочить телефон и снова убирать SIM-Lock этим способом. Но самое крутое в нём то, что этот метод разлочки должен быть максимально кроссплатформенным и работать на всех мобильных телефонах где используется программная платформа P2K независимо от того на каком железе (LCA, ULS, LTE, LTE2, Rainbow POG, Patriot, Agron и др.) они базируются. Единственным, но самым важным условием является возможность обхода RSA на конкретном телефоне или платформе и прямые руки для подготовки необходимой патч-прошивки по методике выше. К сожалению с новыми и некоторыми редкими P2K-телефонами на которых не обошли RSA скорее всего подобное не провернуть, но абсолютно все старые LTE и LTE2 телефоны похоже что могут быть разлочены без надобности выполнения процедуры TestPoint.

5. Авторы
  • Vilko и команда MotoFan.Ru: методики обхода RSA и BlowFish на различных телефонах.
  • L4c: автор данного метода программной разлочки.
  • EXL: портирование метода разлочки на Motorola V235 и Neptune LTE2.
  • Indepth6: тестирование работы метода на залоченном Motorola V235.
© 05-Nov-2022, специально для форума MotoFan.Ru.
Прикрепленный файл Subsidy_Lock_to_all_0.zip   ( 1.1 килобайт ) Кол-во скачиваний: 286
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 8.1.2023, 12:28


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Этот способ снятия SIM-Lock был успешно проверен на Neptune LTE2-телефоне Motorola V235, спасибо Indepth6.

Ранее было невозможно снять SIM-Lock на этом телефоне без процедуры Test Point.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 8.1.2023, 12:47


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Этот способ снятия SIM-Lock был успешно проверен на древнем телефоне Motorola C550 который работает на Neptune ULS SoC, за проверку спасибо c u b e. Ранее было невозможно снять SIM-Lock на этом телефоне без процедуры Test Point.

Что интересно, опробованный способ в теории должен сработать на таких перечисленных телефонах: Motorola T280, T280i, V60, V60i, V66, V66i, V70, V70i, C350 (без L, потому что C350L использует RSA), C450, C550, A820, A830, A835, T720, T720i, T722i, T725i и Siemens U10, U15. Возможно ещё каких-то других.

Процедура снятия SIM-Lock на подобных телефонах несколько усложнена, бинарные файлы прошивки в них зашифрованы алгоритмом BlowFish, но зато там нет RSA!

Уважаемый Vilko ещё в 2004 году написал на Assembler утилиты для взлома прошивок использующих BlowFish, но эти утилиты почему-то оставались неизвестны широкой публике. А ведь с их помощью на C350, C450 и C550 можно делать кастомные патченные прошивки. Кто знает, если бы они были чуточку известны, может тогда и для "народного телефона" Motorola C350 тоже появились бы кастомные монстрпаки...

Методика снятия аналогично изложенной выше.

1. Берётся любая прошивка для C550, затем она разбирается с помощью RSD Lite или Flash&Backup 3.
2. Кодовая группа CG1 декриптуется утилитой fl_decr.EXE, затем патчится аналогично тому, как это описано в статье выше.
3. Далее пропатченная кодовая группа CG1 криптуется обратно утилитой fl_crypt.EXE.
4. Далее либо собирается SHX-прошивка с этой криптованной и пропатченной кодовой группой, либо же эта CG1 подменяется во время прошивки RSD Lite или MFFT обычной прошивки на шаге "Erase phone memory" или любом другом, следующим за "Creating Image File...".
5. Ошибки checksums после прошивки подобной прошивки игнорируются, телефон должен включиться.
6. Далее проливаются ремонтные SEEMs как это указано в статье выше.

Всё, после перезагрузки телефон разблокируется.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 30.1.2023, 10:53


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Продолжение статьи в стартовом посте.

6. Определение наличия SIM-Lock в прошивках.

Прежде чем шить незнакомую но интересную прошивку, неплохо было бы убедиться в том, что она точно не содержит в себе SIM-Lock и если содержит, просто убрать его. У меня было немного времени, чтобы исследовать алгоритм установки SIM-Lock и вот что удалось выяснить.

Как было написано выше, при первом запуске телефона после прошивки операционная система внутри него проверяет наличие файликов /a/system/generic_pds_init и /a/system/secure_pds_init во флексе. В случае их наличия телефон загружает кусочки PDS оттуда собственно в сам PDS и потом удаляет эти файлы. В том случае, если при загрузке кусочков были какие-то ошибки, например, лок телефона уже был выставлен и SEEM'ы залочены, телефон хитро пишет ошибку типа "Flex Error: Phone Subsudy - Locked" в приветствие при включении, но файл данных из которого не удалось записать SEEM'ы в PDS не удаляет. В данном случае установка ошибки в приветствие это просто технический момент инициализации, а не SIM-Lock и чтобы избавиться от появления этого сообщения достаточно удалить вручную файлы /a/system/generic_pds_init и /a/system/secure_pds_init, стереть приветствие в настройках и перезагрузить телефон.

Сам SIM-Lock в файле прошивки находится во флексе в /a/system/secure_pds_init, этот файлик можно достать из флекса с помощью программ FlexParser04 или deflex, см. тему обсуждения здесь: Бинарный флекс. Парсеры . disassemble FLEX, но для удобства можно посмотреть на этот файл прямо внутри сырого CG2.smg в прошивке. Он без проблем ищется по паттерну "015B000100000000000000". Вот какие косвенные признаки того, что флекс содержит SIM-Lock имеются исходя из данного исследования, слева флекс содержащий SIM-Lock, а справа чистый флекс без SIM-Lock:

Прикрепленное изображение

1. Сразу после паттерна "015B000100000000000000" идут какие-то данные вместо нулевых FF-байт, как в чистом флексе.
2. В PDS SEEM 01C4_0001 записываются два байта 0808, в чистом флексе они выставлены в 0000.
3. В PDS SEEM 01C3_0001 записываются два байта 0808, в чистом флексе они выставлены в 0000.

Чтобы в телефон можно было безопасно прошить флекс с SIM-lock'ом, можно использовать простейший трюк, который когда-то давно описал Vilko здесь. Его идея до безобразия проста: в наглую HEX-редактором прямо в CG2.smg меняем имя файла secure_pds_init на любое своё, к примеру, nolock_pds_init и телефон не будет применять этот файл после прошивки флекса и первого включения. Имя этого файла находится чуть выше указанного паттерна, оно обозначено на скриншоте под номером "4". Точные паттерны строк:
  • secure_pds_init - 7300650063007500720065005F007000640073005F0069006E0069007400
  • generic_pds_init - 670065006E0065007200690063005F007000640073005F0069006E0069007400
Кроме secure_pds_init можно ещё изменить имя файла generic_pds_init, если вы параноик и не хотите, чтобы прошивка флекса "трогала" PDS лишний раз. Важно помнить, что строка с именем файла хранится в Unicode BE 16-bit, поэтому буква из ASCII занимает два байта один из которых 00.

Прикрепленное изображение

Патченную CG2.smg можно собрать обратно в SHX или SBF, либо же в том случае, когда телефон редкий, подменить оригинальную CG2.smg патченной в процессе прошивки телефона с помощью PST/MultiFlashFlexTool или RSD Lite.

Кстати, наличием файлов /a/system/generic_pds_init и /a/system/secure_pds_init во флексе при его распаковке можно подтвердить или опровергнуть заводскую подлинность прошивки. В слитых BackUp'ах с телефона этих файлов уже не будет.

ps.gif Паттерн для поиска имени флекса в CG2.smg - 55550100010001000000010101000000, парсинг адресации в CG0 (кроме CG2) от Osta: Изменение адресов код. групп.
Паттерн для поиска версии Java Pack, 4A 00 32 00 4D 00 45 00 50 00 43 00 4B, либо же файл J2MEPCK.

Паттерн для поиска модели телефона в CG2 флексе - 00 30 00 30 00 30 00 30 00 30 00 30 00 00.

7. Трюк для корректной распаковки SBF и SHX прошивок.

Не секрет, что многие прошивки редких телефонов Motorola не могут быть разобраны с помощью таких программ, как SHXCodec, SBF Tool, SBF-Recalc и Flash&Backup 3, но есть один трюк который возможно многие знают, но всё же я опубликую его явно ещё раз.

Что нам потребуется:

1. Любой телефон Motorola, который входит в режим Bootloader при нажатии кнопок "*", "#" и "Красная трубка".
2. Установленные драйвера для телефонов Motorola, к примеру, Motorola USB Driver x64 v3.7.0.
3. Установленный прошивальщик RSD Lite или PST/MultiFlashFlexTool, например, RSD Lite v3.8.

Трюк заключается в следующем:

1. Подключаем телефон Motorola в режиме Bootloader к ПК и ждём когда он определится в прошивальщике.
2. Выбираем SHX или SBF прошивку, которую хотим распаковать. Для любой модели телефона, а не только той что у вас имеется.
3. Нажимаем кнопку "Start".
4. Быстро отключаем ваш телефон Motorola от компьютера!!!
5. Прошивальщик корректно распакует прошивку и напишет ошибку в конце процесса, поскольку телефон ваш был отключен.
6. Теперь, не закрывая прошивальщик, переходим в директорию где лежит SBF или SHX прошивка.
7. Рядом с файлом прошивки будут находиться распакованные SMG-бинарники, которые можно использовать в различных целях, например, для определения наличия SIM-Lock в них. Если ваша версия RSD Lite высокая, к примеру 6.2.4, проверьте временную директорию по пути C:\Users\%USER%\AppData\Local\Motosftemp, там должны находиться распакованные файлы.
8. Скопируйте бинарные SMG-файлы в отдельную директорию и закройте прошивальщик. Оригинальные SMG-бинарники будут удалены после закрытия программы, поэтому нам необходимо скопировать их в другое место.

Теперь у вас есть корректно распакованные кодовые группы из которых вы можете извлечь нужные вам данные и получить полезную информацию. Стоит заметить, что некоторые бинарные файлы старых телефонов Motorola не используют RSA, а закриптованы алгоритмом Blowfish, поэтому вам могут потребоваться утилиты fl_decr и fl_crypt от Vilko для взаимодействия с такими файлами, скачать их можно по этой ссылке: Давайте помечтаем!!!!.

Приблизительный список подобных старых телефонов, использующих Blowfish-шифрование вместо RSA:
* Motorola: T280, T280i, V60, V60i, V66, V66i, V70, V70i, C350 (без L, C350L использует RSA), C450, C550, A820, A830, T720, T720i, T722i, T725i.
* Siemens: U10.

Аналогичным способом можно прошивать в нужный телефон патченные кодовые группы, просто быстро подменяя их в процессе прошивки. Этот способ, например, отлично подойдёт чтобы залить патченный флекс CG2.smg без SIM-Lock'а или патченную и закриптованную обратно Blowfish'ем прошивку CG1.smg для старых телефонов Motorola. Для телефонов, которые используют RSA это тоже работает, но CG1.smg и вспомогательные группы после изменения нужно патчить на обход RSA и заменять их уже скопом. В общем, этот механизм замены кодовых групп опробован на самых разных телефонах (C550, A760, E680, A780) и он успешно работает. Кодовые группы обычно подменяются сразу после прохождения шага "Creating Image File" прошивальщиком.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 22.8.2023, 20:04


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Этот способ снятия SIM-Lock был успешно проверен на Neptune LTE-телефоне Motorola V190, залоченным под Cingular. Спасибо RedillGMV за тест.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 25.1.2024, 19:13


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



По этой же методике был разлочен Neptune LTE аппарат Motorola RAZR V3. Единственное отличие состоит в том, что сперва на RAZR V3 нужно понизить бут с 08.xx до 07.D0 по методу этой темы: Слазим С Подписанного Бута V3, чтобы обойти RSA без проблем.

Прикрепленное изображение

Спасибо MC4f за тест.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 5.2.2024, 18:10


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Этот способ снятия SIM-Lock был успешно проверен на Rainbow POG-телефоне (M*CORE) Motorola E770v, спасибо большое Diokhan за эксперименты, он залочил специально свой телефон чтобы проверить этот метод и успешно снял SIM-Lock после.

Прикрепленное изображение

Процедура примерно следующая. Заливается стоковая прошивка, потом на самом аппарате снимается RSA, затем сливается с него CG1 и правится сабжевая таблица, после чего патченный CG1 заливается и далее проливаются обнуляющие SIM-Lock SEEM'ы.

Насколько я помню, ранее было невозможно снять SIM-Lock на этом телефоне без процедуры Test Point. Но простота доступа к точке на E770v позволяет провести эту процедуру быстро и максимально безболезнено.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 17.2.2024, 18:05


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4600



Способом выше разлочен Motorola RAZR V3i пользователя Bs0Dd.

Прикрепленное изображение

Для разлочки применялись зануленные SEEM'ы из стартового поста и пропатченная прошивка V3i_R4441D_G_08.01.03R_modded: https://firmware.center/projects/EXL/Motorola/Firmware/
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Программная разлочка Motorola P2K, Software way to remove SIM-lock (Subsidy Password)! · Ломаем и строим! · Forum
 

Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 17:01

Форум живёт: