novichok
15.02.2006, 16:22
Пара слов о взломе мобильников
А ЧТО У НЕЕ ВНУТРИ?
А в нутрии у нее, мирно лежащей в твоем кармане или опрометчиво оставляемой в чехле на поясе, весь набор полноценного компа: процессор, оперативка, флеш-память в качестве ПЗУ и куча всякой периферии для общения с окружающим миром – начиная с экрана и заканчивая радиочастью (мобила, как-никак). Естественно, это на словах все просто. В телефонах в качестве процессора используются специальные микроконтроллеры, основанные обычно на архитектуре 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, если нет. А там уже курсором поднимай контраст до нормальной видимости… Вот, в общем-то, и все!
А ЧТО У НЕЕ ВНУТРИ?
А в нутрии у нее, мирно лежащей в твоем кармане или опрометчиво оставляемой в чехле на поясе, весь набор полноценного компа: процессор, оперативка, флеш-память в качестве ПЗУ и куча всякой периферии для общения с окружающим миром – начиная с экрана и заканчивая радиочастью (мобила, как-никак). Естественно, это на словах все просто. В телефонах в качестве процессора используются специальные микроконтроллеры, основанные обычно на архитектуре 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, если нет. А там уже курсором поднимай контраст до нормальной видимости… Вот, в общем-то, и все!