Пара слов о взломе мобильников А ЧТО У НЕЕ ВНУТРИ? А в нутрии у нее, мирно лежащей в твоем кармане или опрометчиво оставляемой в чехле на поясе, весь набор полноценного компа: процессор, оперативка, флеш-память в качестве ПЗУ и куча всякой периферии для общения с окружающим миром – начиная с экрана и заканчивая радиочастью (мобила, как-никак). Естественно, это на словах все просто. В телефонах в качестве процессора используются специальные микроконтроллеры, основанные обычно на архитектуре ARM и заточенные специально для выполнения функций мобилы. Памяти обычно имеется порядка 512 Кб, флешки – где-то в среднем от 1 Мб до 16 Мб – телефонов много, и обо всех сразу не расскажешь. И именно поэтому я сразу ограничу сегодняшний круг исследований – мы попробуем расковырять мобильники фирмы Simens, как довольно распространенные и, кроме того, удобные для взлома и изучения. Хотя, конечно же, много интересного можно найти и в телефонах Nokia, Motorola, Sony... Но об этом – как-нибудь в другой раз. Что же наши подопытные? А все они, начиная с моделей х25 (т.е. С25 и S25) и заканчивая последними х55, основаны на семействе 16-битных микроконтроллеров Infineon C166 и чипсетах группы Gold (HGold в x25, EGold в х35, EGold + в х45 и т.п.). Сименс в этом плане кстати «оригинальничает» по сравнению с другими производителями: С166 – это никаким боком не ARM, не х86, а вообще совершенно самостоятельный RISC-процессор, но фишка в том, что Infineon – это «дочка» Simens, а своя рубашка к телу всегда ближе ;-). А теперь давай определимся с основными терминами, чтобы убрать все неясности. А если ты уже искушен и все знаешь, то можешь перечитать и удостовериться в своей правоте. С ЧЕГО НАЧИНАЕТСЯ ХАК Что такое прошивка телефона, я думаю объяснять тебе не нужно – не хуже меня знаешь, что это внутренний софт мобилы: его ОС и прикладные программы в одном лице. Прошивки – это действительно обычные программы, которые пишут на компах на С и С++ и компилируют под соответствующее железо – в нашем случае, под С166. Следующим важным термином является понятие «фулфлеш» (от full flash или же, как обычно говорят на зарубежных форумах, -fubu – от full backup) – полная копия содержимого флеш-памяти телефона со всем, что там есть – прошивкой, различными данными, содержимым внутреннего диска телефона и т.д. и т.п. Наличие фулфлеша от твоей мобилы гарантирует, что ты в дальнейшем точно сможешь восстановить ее после неудачных экспериментов, обычно заканчивающихся безмолвной и бездыханной трубкой. И стоит отметить, что подобные результаты наблюдаются процентах в 70 случаев первого более или менее низкоуровнего общения человека со своим телефоном ;-). Кроме всего прочего в фулфлеше содержаться и данные EEPROM – своеобразного CMOS’а телефона, где хранятся настройки аппарата (прошивки на конкретное железо), а также часть временных данных – текущая мелодия, логотип и прочие мелочи. Независимо от физического расположения, весь EEPROM (а его размер обычно около 64 Кб и выше) входит в состав фулфлеша, а тот, в зависимости от модели телефона и своего объема, соответствующим образом отражается в общем линейном адресном пространстве мобилы, которое для Сименсовского С166 составляет 16 Мб. Следует отметить, что настройки EEPROM’а – это, пожалуй, самая важная часть фулфлеша. Если все остальное можно без особого труда восстановить, то утеря оригинального EEPROM’а именно твоего аппарата почти стопроцентно гарантирует, что он станет в известной степени «инвалидом». Если ты запишешь к себе чужой EEPROM, потеряются калибровки передатчика телефона, батареи и т.п., что скорее всего, станет причиной различных глюков, типа плохо работающего (скажем, буквально день-два) аккумулятора. Так что будь осторожен и всегда делай бэкап! САГА О ШНУРКАХ Начнем мы со смены прошивки телефона. В каждом СЦ (сервис-центре, в смысле) для гарантийных аппаратов прошивку меняют бесплатно, а для негарантийных (и «серых», то есть несертифицированных и\или ввезенных неофициально) – за вознаграждение, которое иногда достигает чуть ли не 30 баксов. Но даже и гарантийным аппаратам зачастую не хотят менять прошивку обоснования причин. Ленивые, блин… Но это нам не помеха. Единственное, что требуется для смены прошивки любого Сименса в домашних условиях – кабель для его подключения к компу через COM- или USB-порт (через СОМ лучше с точки зрения совместимости). Кабель подойдет далеко не любой: требуются кабели с так называемым «внешним питанием». Суть в том, что все низкоуровневые операции производятся с выключенным телефоном (что логично), и для его «загрузки» нельзя использовать его же собственную батарею, как это делается обычно при закачке мелодий, например. В принципе, ты можешь не забивать всем этим голову, а просто пойти на рынок и купить за 300-400 рублей нужный шнурок, отдельно уточнив у продавца, подойдет ли он тебе «для прошивки» - все продавцы обычно в курсе и продают то, что нужно (хотя о манибэке лучше все же договориться). Тем же, кто хочет использовать «родные» кабели (например, из поставок телефонов S/ME45) или какую-нибудь экзотику, типа телефонных «стаканов», и способен держать в руках паяльник, стоит посетить соответствующие ресурсы Сети, где эти вопросы разобраны подробнее. С телефонами моделей А55\х55 сложнее – Сименс изменил там формат разъема и распиновку кабеля, так что старые «шнурки» не подходят. В остальном же – все то же самое. САМ СЕБЕ СЦ Разобравшись с кабелем, скачиваешь прошивку для телефона. Для всех Сименсов, начиная с х35, они распространяются в виде экзешника, который состоит из программы WinSwup и встроенного файла прошивки. Обычно прошивки обозначаются в виде xxyyzz, где xx – версия, yy – номер языкового блока интерфейса, zz – номер языкового блока Т9. Все эти номера отличаются для разных моделей аппаратов, но, естественно, тебе нужна последняя прошивка для твоего телефона с полной поддержкой русского языка! Обычно в Сети на соответствующих сайтах как раз лежит то, что тебе нужно. Разобраться со скачанной прошивкой проще простого: запускаешь, подключаешь работающий телефон, нажимаешь «Serial config», выбираешь COM-порт, к которому подключен кабель, и скорость 115200 (больше не получится, а меньше не рационально, хотя иногда бывает полезно в случае глюков), и гордо жмешь «Start». Теперь следишь за телефоном и, когда тот выключится, коротко жмешь на кнопку с красной трубкой. Мобила «схватиться» с программой, и пойдет процесс прошивки. Этого радостного события может не произойти, и WinSwup выдаст сообщение типа «Can’t connect to Mobile with BootstrapLoader on COM 1». Есть две причины такого поведения: либо ты не поймал момент, когда нужно нажать на «красную» кнопку (можно жать на нее и несколько раз подряд – главное, чтобы телефон не успел включиться), и тогда следует попробовать еще раз, либо у тебя не подходящий кабель. В последнем случае остается бежать на рынок или брать в руки паяльник. Если же все «схватилось» нормально, то дальше процесс пойдет автоматически и будет длиться минут 5-10. По его окончании остается включить телефон и наслаждаться исправленными глюками и появившимся фичам. И то и другое, кстати, бывает видно не вооруженным глазом (особенно, если апгрейдиться с какой-нибудь 5 прошивки до 30!). В принципе, процесс прошивки совершенно безопасен, а проблемы возникнут в случае, если зависнет винда, кончится батарея в телефоне (которую перед прошивкой следует зарядить по полной!), или злобный электрик отключит ток в районе. При таком варианте телефон, скорее всего, помрет. Не стоит этого бояться – опытные хакеры мобильников убивали своих питомцев по нескольку десятков раз ;-). Скорее всего, тебя спасет повторная прошивка выключенного аппарата с поставленной верхней галочкой «Skip» в WinSwup’е. Как обычно, нажимаем «Start» и давим на красную трубу. Если в предыдущий раз процесс прервался из-за сдохшей батареи, то, естественно, перед попыткой восстановления ее надо будет где-нибудь зарядить… Вообще же, софтверно (то есть, какими-либо манипуляциями с софтом телефона – будь то перепрошивка или копание в фулфлеше) убить аппарат невозможно: восстановить ты сможешь всегда, главное - не лениться делать бэкапы. Чуть сложнее пользователям телефонов серии х55, которые не только еще не успели обрести своих «восстановительных» комплектов софта, но и в них же Сименс усложнил низкоуровневые операции, добавив много геморроя обычным пользователям, да и крутым хакерам и анлокерам. ГАДКИЙ УТЕНОК Ну, с х55 моделями – это разговор особый, а сейчас мы с тобой, взяв в качестве объекта телефоны S45 и ME45, сделаем один из самых классных кряков. А будем мы апгрейдить эти девайсы до S45i, убив таким образом целую толпу зайцев: ты посмотришь, что реально может дать копание в телефоне, существенно улучшить свою трубку (а S/me45 сейчас и так очень популярные телефоны) и, возможно, найдешь новую сферу приложения своих крякерских сил. Суть проблемы в следующем. Выпустив в 2001 году новую серию телефонов, Сименс решил отказаться от опыта предыдущих лет и сделал «пуле-пыле-влаго-ударо-прочную» модель, основанную на не «бюджетном» варианте (помнишь С35 и М35?), а на телефоне бизнес-класса. Соответственно, МЕ45 – это полная копия S45, обладавшего на момент выпуска очень не плохими характеристиками. Данная политика пришлась пользователям по вкусу, и МЕ45 с прилавков просто сметали. Сименсу бы радоваться и давать маркетологам премии, но нет – взыграли непонятные чувства, и, обидевшись за менее популярный S45, решили сделать его «расширенный» вариант – S45i, оставив старое железо, но немного переписав софт и добавив фишечек. А что бы жизнь медом не казалась, запретили заливку в старые аппараты прошивки от нового. Вернее, залить-то ты можешь, но при попытке включения телефон только обиженно загудит и работать не захочет. С этого все и началось… Скажу сразу, дойчлянды продержались меньше полугода, и сейчас ты сможешь взглянуть на результат примерно месяца моей работы (это время включает изучение Asm’а С166 и непосредственно взлом прошивки). Полный список бонусов S45i ты найдешь в Сети, а в качестве главных плюсов могу выделить следующее: полноценный POP3/SMPT е-мыльный клиет на 5 аккаунтов, новая игра RaceAce (гоночки), громкая связь в диктофоне, а также безмерно желаемая всеми – разблокировка клавиатуры без нажатия кнопки «ОК» одним удержанием «решетки». ИНСТРУМЕНТ Итак, все извращения над телефоном делаются путем редактирования его фулфлеша, после чего исправленный вариант заливается в аппарат. И поэтому твоей главной привычкой должно стать сохранение бэкапа перед любыми действиями. Вообще, для манипуляции с флешем телефона умными и правильными людьми создаются специальные программы – флешеры, которые могут писать и читать его содержимое. Как именно они это делают - вопрос особый, а пока запомни несколько основных названий – UNIsiemens 4, Ksie 5.1, zSiemens, SieFlash, SM45Tools 1.2... Именно последней мы и воспользуемся – она предназначена специально для S/ME45 (с другими работать не будет!) и является наиболее удобной и функциональной, за что спасибо ее автору MikG. Интерфейс прост до безобразия: несколько вкладок с интуитивно понятным содержимым. В «Configuration» настраиваем СОМ-порт и скорость, как в WinSwup’е. «Read flash»/«Write flash» читают и пишут данные из/в флеш-память. Надо задавать начальный адрес и размер скачиваемого/закачиваемого куска. Всего в S/ME45 наличествует 6 Мб флеша (т.е. 600000h), и пишется он кусками по 64 Кб, поэтому «чисто конкретно» брать и писать 1 байт во флеш я бы не советовал… EEPROM’ы (а в S/ME45 их два) внутри флеша находятся по адресам 1F0000h и 5F0000h и имеют длину 10000h (т.е. 64 Кб) – лучше на всякий пожарный скачать и сохранить их отдельно, хотя они и входят в состав фулфлеша. Вкладка «IMEI» отвечает за разблокировку и смену номера IMEI аппарата – в нашей работе она нам не понадобиться, а подробно о разлочке я, возможно, расскажу как-нибудь в другой раз. После манипуляций с телефоном с помощью SM45Tools, лучше всего вытащить и снова вставить батарейку – сбросить так называемые «бутблоки». Прога и сама их сбрасывает, когда выходит, но иногда это нужно сделать вручную… Еще для апгрейда нам понадобиться: сама прошивка от S45i версии 040315, моя программа Siemens EEPROM tool v2.15, любой шестнадцатеричный редактор (скажем, WinHex), блок 68 EEPROM’а (не спрашивай пока, что это такое – долго объяснять; просто скачай по приведенной ссылке – блок этот представляет собой два файлика с расширениями bin и bid), а также прямые руки и работоспособное серое вещество. ШАГ ЗА ШАГОМ Итак, четкий порядок наших действий: 1) Считай и сохрани бэкап фулфлеша с помощью SM45Tools. Addr: 000000h, size: 600000h. Работает все так же, как и при прошивке – жмешь «Read from flash» и коротко давишь на красную трубку (кстати, не забывай переставлять батарейку после работы! А то другие программы телефон не увидят, и сам он включаться не будет!). Потом зайди во вкладку «Configuration» и обрати свой благосклонный взор на значения в рамочках «Flash One» и «Flash Two». Если там соответственно: ID:0089, Type: 88C2; ID: 0089, Type: 88C4 или ID: 0020, Type: 88CE; Flash Two ID: 0020, Type: 88BA, то все нормально и можешь смело апгрейдить дальше. Если же там наблюдается ID: 0089, Type: 88C4; ID: 0089, Type: 88C4, то я бы не рекомендовал апгрейдиться прямо сейчас. Ну, то есть, заапгрейдиться ты сможешь, но есть некоторые нюансы, связанные с типом флеша твоей мобилы (а именно его идентификатор мы и смотрели) – SM45Tools не сможет корректно сливать/заливать в нее первые два метра флеша. Решение этой проблемы можно найти на www.o45m.ru/soft8 (кусок под заголовком «Решение проблемы с флеша С489»), либо здесь чуть ниже. 2) Прошей телефон прошивкой S45i_040315. На удивленные вопросы WinSwup’а о модели телефона и версии прошивки отвечай положительно. 3) Скачай фулфлеш из телефона. Скопируй куда-нибудь на всякий случай, а второй экземпляр открой в WinHex и произведи замену следующих байтов (последовательность: адрес, где лежит; байт, который там лежит; байт, на который надо заменить): 0298AE2: DA CC 0298AE3: CD 00 0298AE4: DC CC 0298AE5: 59 00 02DB73A: 2D 0D 02CB102: 3D 0D 4) Залей исправленный фулфлеш в телефон. 5) Запусти Siemens EEPROM tool, выбери СОМ-порт, нажми «Init» и, как обычно, дави на красную трубу. Когда появятся данные о телефоне, а на его экране будет надпись «Service mode», нажми кнопку «Load» в левой части окна программы и открой файл с 68 блоком EEPROM’а. Теперь скопируй его из левого списка в правый «стрелкой» и нажми «Save selected». Он запишется в память телефона, и можно с чистой совестью закрыть программу. 6) Включай телефон. Все должно работать ?. Если телефон не включается: гудит и/или пишет «Wrong software» - значит, ты сделал что-то не так. Откатывайся на рабочий бэкап. Если телефон включается, загорается подсветка, но на экран ничего не выводится, значит нужно поправить контрастность. Просто «на ощупь» введи PIN, подожди, пока телефон загрузится и найдет сеть (пару раз пискнет), после чего жми правую софт-клавишу, чтобы выйти в меню, а потом добирайся до настройки контраста «по цифрам»: 9-1-2-6, если у тебя есть SIM-Menu, или 8-1-2-6, если нет. А там уже курсором поднимай контраст до нормальной видимости… Вот, в общем-то, и все!
KEEP IT SIMPLE Гонять туда-сюда фулфлеш ради шести байт – это, по меньшей мере, неэкономно. Правильней и быстрее было бы просто залить измененный кусок (сама прошивка-то у всех одинаковая!). В нашем случае он уже готов к употреблению (см. ссылки), и остается только загрузить его в телефон с помощью SM45Tools. Открываешь его, задаешь Addr: 290000h (размер выставиться автоматически), жмешь «Write to flash» и уже через полминуты имеешь патченую мобилу. Данный способ, кстати, как раз и рекомендуется людям с флешем С489 – все должно работать без проблем! Дальше вот что… E-mail клиент S45i, который ты, конечно же, захочешь попробовать, совершенно не понимает русских кодировок КОИ8 и Win1251. Выход – заменить шрифты телефона. Достигается эта благая цель залитием другого куска флеша по адресу B0000h (кстати, там и сами шрифты заменены на более симпатичные), после чего письма в КОИ8 будут читаться при среднем размере шрифта, а Win1251 – при маленьком (переключение «решеткой»). Вот только этот кусок нельзя заливать с помощью SM45Tools в мобилы с С489. Как решить эту проблему – см. указанную выше ссылку. Да! Чуть не забыл! При апгрейде удаляется все содержимое внутреннего диска телефона, так что его надо забэкапить отдельно, что бы потом залить через Data Exchenge Software. Главное, что теряется адресная книга (формат старой не совместим с S45i), и если ты не держишь контакты на сим-карте, то придется либо все перенабивать, либо опять же скачивать с компа. Для этих целей рекомендую обычный Outlook – сначала со старого телефона сливаешь все программой QuickSinc, а потом, после апгрейда, закачиваешь обратно с помощью XTNDConnect. Эту прогу надо использовать, так как QuickSinc, опять же, не работает с S45i. А чтобы не было проблем, перед закачкой в телефон замени у XTNDConnect’а файл «rstSiemens2.dll»: просто скачай патченый, найти такой же на диске (обычно валяется в дебрях Program Files) и замени. Все будет пучком! КАЖДОМУ ПО ПОТРЕБНОСТЯМ Ну вот, это и был пример того, что дает копание в прошивке телефона. Естественно, этим апгрейдом результаты процесса не исчерпываются. Можно (и нужно) рассказать о Нетмониторе, о включении смены частоты GSM 900/1800 (кстати, иногда очень помогает улучшить связь), о добавлении русского Т9 в телефоны С45/М(Т)50, о рисовании своей графики и шрифтов мобильника, о редактировании всех надписей и текстовых ресурсов и о многом другом ;-). Прогресс не останавливается, и люди постоянно придумывают что-нибудь новое, что можно сделать со своим телефоном. Если после прочтения этого материала ты купишь себе кабель для подключения мобилы к компу и попробуешь с ней что-нибудь сделать – я буду считать свою задачу выполненной. А кто знает – может, ты всерьез займешься взломом мобильников и уже через год-полтора сможешь зарабатывать по 500 баксов за каждую копию какой-нибудь своей проги (это средняя цена на комплекты для разлочки свежих версий Мобил, а вообще до нескольких тысяч за особо хорошие вещи доходит…). По-моему, не плохо ;-). Так что удачи и успешных взломов! АПГРЕЙД S/ME45 В S45i 1. Вся возможная информация об апгрейде S/ME45 в S45i. Очень рекомендуется к внимательному прочтению. http://www.o45m.ru/45-45i.html 2. Готовый к заливке в телефон патченый кусок флеша для апгрейда. http://www.o45m.ru/ionization/s45i-040315-290000-2dffff-all_fixed.rar 3. Кусок флеша для русификации e-mail клиента. http://www.o45m.ru/ionization/s45i-040315-b0000-dffff-new_font&rus_email.rar 4. Исправленный 68 блок EEPROM’а. http://www.o45m.ru/ionization/block68_eepromtool.rar 5. Siemens XTNDConnect – родная программа для синхронизации с Outlook’ом. http://o45m.ru/software/s45i_4_6_424.zip 6. Патченая dll’ка для нее. http://o45m.ru/program/rstSiemens2.rar СОФТ ДЛЯ ПРОШИВКИ И НИЗКОУРОВНЕВЫХ РАБОТ 1. FAQ и доки по прошивке Сименсов. Очень рекомендуется читать перед собственноручным осуществлением данного финта ушами . http://www.o45m.ru/index.html?/faq10.html, http://mr-8242.v-mirror.spb.ru/doc/fwch45.zip 2. Сами прошивки для всех возможных моделей Сименс. http://www.siemens-club.ru/hard-8.php 3. Набор программ, патчей и солюшенов для ломания и восстановления телефона ;-) и FAQ по этому делу. http://www.o45m.ru/soft8.html 4. Unisiemens 4.0. Универсальный (но не значит - лучший) флешер для всех моделей. Запускать файлом usimload.exe только на СОМ1. http://download.siemens-club.ru/files/unisiemens.rar 5. SM45Tools v 1.2. http://siemens-club.ru/hard-8.php 6. Siemens EEPROM tool. Если при запуске будет ругаться – скачай и установи второй файл. http://download.siemens-club.ru/files/siemens_eeprom_tool_215.rar; http://download.siemens-club.ru/files/ocxregister2.rar Автор : Skylord (c)