Smelter

Siemens Menu/Eeprom/Langpack/picTurEs/Ringtones explorer

Дослідник меню, EEPROM'ів, мовних пакетів, зображень і мелодій

English version here

Ця програма призначена для дослідження фулфлешу (ФФ) телефону. Вона витягує з ФФ інформацію про EEPROM'и, мовний пакет (langpack), меню, зображення, мелодії, файли та ін., після чого показує їх у зручному вигляді. Програма заточена під 55-у серію, але повинна нормально працювати і з ФФ інших телефонів. Перш за все вона призначена для тих, хто любить копатися у флеші, проте може бути корисна і для недосвідчених користувачів. Зупинімося докладніше на пунктах меню програми.

Інформація

У цьому текстовому полі відображається будь-яка інформація, яку системі вдалося витягнути з ФФ. Під час роботи з програмою вся нововиявлена інформація додається у це поле.

Списки

У цьому меню відображаються усі списки, які здатна побудувати програма. Списки, що знаходяться у першій групі, не вимагають жодної додаткової інформації (лише ФФ) і називаються «головними». Відкрити їх усі відразу можна за допомогою пункту «Відкрити головні списки». Створення решти списків вимагає введення додаткової інформації. Списки, які вже відкриті для даного ФФ, виділяються галочкою і залипанням відповідної кнопки на панелі інструментів. При натисненні правої кнопки миші з'являється контекстне меню. Якщо при цьому утримувати Shift, то з'явиться неконтекстне меню «Список».

Список «EEPROM»

Хай їм грець, тим EEPROM'ам! З них усе й почалося (SiemPROM). У цьому списку відображаються такі стовпчики: номер блоку, опис, адреса EIT-таблиці, версія, зміщення блоку у ФФ, розмір, ознака наявності додаткової інформації (*) і ознака видалення блоку (-). Додаткова інформація доступна для таких блоків EEPROM:

Зупинімося докладніше на деяких блоках:

71-й блок. Принцип роботи з 71-м блоком – такий же, як у Siemens Service Profiler. Розшифровка біт береться з секції «71» ini-файлу, яка повністю дублює ini-файл від SSP.

Таймаут Java-з'єднання. Якщо Ви використовуєте Java-GPRS мідлети (наприклад, uMessenger, Jimm, Bombus, Opera Mini), то якщо не користуватися телефоном (не натискати кнопки протягом певного часу) – відбувається таймаут і від'єднання від GPRS. Для збільшення таймауту і призначений цей пункт. Просто застосуйте за допомогою V_Klay ту латку, яку Вам запропонує програма. Працює на C55, S55, M55, SL55.

Ці та багато інших функцій (як і в багатьох інших списках) доступні після натиснення правої кнопки миші. Блоки можна завантажувати/вивантажувати на диск як поодинці, так і всі разом. При роботі з диском звернення завжди відбувається до підтеки \EEPROM тієї теки, де лежить ФФ. Галочка «Показувати видалені» впливає на те, чи відображуватимуться у списку видалені блоки. Корисний для пошуку своїх старих блоків, повернення до яких у деяких випадках може допомогти, якщо телефон почав глючити. Пункти спливаючого меню, які призводять до зміни вікон «Інформація» і «Латка», виділені тиком.

У підменю «Резервна копія» можна зберегти map-файл, log-файл і параметри акумулятора. Тут же можна подивитися IMEI. Користуватися отриманими файлами потрібно дуже обережно, оскільки ці файли істотно впливають на нормальну роботу телефону.

Список «Мовний пакет»

Тут усе просто: мовний пакет – він і є мовний пакет (МП). У цьому списку відображаються мовні рядки (повідомлення), знайдені програмою у ФФ, із зазначенням мови, номеру і розташування рядка у ФФ. У контекстному меню можна перемкнутися на бажану мову або обрати відображення рядків усіх мов. Під фіктивною мовою 99 виводяться текстові рядки, які лежать поза мовним пакетом, тобто ті рядки, які жорстко зашиті у прошивку.

Рядки мовного пакету можна редагувати, при цьому буде створено відповідну латку. Усі зміни записуються на старе місце, тому повинно виконуватися правило: «Розмір запакованого нового рядка повинен не перевищувати розміру запакованого старого», бо інакше програма не сприйме новий рядок. Якщо програма пише «LP-error» - це означає, що ви використовуєте символи, які не входять у словник мовного пакету (наприклад, намагаєтеся ввести англійські символи в українські повідомлення – в принципі це можливо, але далеко не завжди).

Для редагування усього мовного пакету потрібно виконати такі дії:

  1. Відкрити список «Мовний пакет».
  2. Мовний пакет –> Зберегти область мовного пакету. Одержаний файл перейменувати і заховати чимдалі - це наша резервна копія.
  3. Мовний пакет –> Зберегти мовний пакет.
  4. Одержаний файл редагуємо будь-яким Юнікод-редактором (наприклад, MS Word, Notepad2).
  5. Мовний пакет –> Завантажити мовний пакет.
  6. Якщо не було повідомлення про переповнення мовного пакету, йдемо у вікно «Інформація» і дивимося, чи не були обрізані якісь рядки.
  7. Якщо ці рядки не критичні, то їх обрізання можна проігнорувати. Якщо було переповнення мовного пакету – йдемо до пункту 4.
  8. Мовний пакет –> Зберегти область мовного пакету.
  9. Перемкнутися в телефоні на мову «Автоматична».
  10. Відкриваємо одержаний файл у V_Klay –> Флешер, адреса і розмір повинні виставитися автоматично.
  11. Записуємо цей файл у телефон. Радіємо.
  12. Якщо не радіємо, а засмучуємося – записуємо резервну копію із пункту 2.

- Smelter пакує мовний пакет х45-х75 (крім S75, SL75) десь на 10% гірше, ніж Siemens. Точніше – пакує ідеально, а от словники запакування будує не надто оптимальні.
- На x65 точний розмір мовного пакету не повинен перевищувати FF240 = 1045056 байт.

Список «Меню»

У цьому списку будуть відображені меню, знайдені програмою у ФФ. Найбільший інтерес представляє вміст стовпчика «Entry». Там можна побачити точки входу, необхідні для латок на заміну функціональності софт-клавіш телефону. Припустімо, у нас є така латка:

;S55v20 - Зміна функції "Стрілка ліворуч"
32499C: DA7106B8 DA74240C ; Explorer

Що в цьому разі відбувається? Виклик функції, що типово закріплена за стрілкою ліворуч (GPRS-Info), заміняється на виклик функції «Explorer». А якщо ми хочемо не Explorer, а, наприклад, Диктофон? Для цього треба дізнатися точку входу на елемент Диктофон. На S55v20 він знаходиться у меню 14.6, точка входу дорівнює 67AF82. Переставивши місцями останній і передостанній байт і дописавши спереду DA, ми отримаємо таку латку:

;S55v20 - Зміна функції "Стрілка ліворуч"
32499C: DA7106B8 DA6782AF ; Диктофон

Це просто, чи не так? Мова назви елементів меню змінюється одночасно з роботою з мовним пакетом, а тому, щоб пункти називалися не "String #000", а по-людськи, просто відкрийте вкладку «Мовний пакет», виберіть у контекстному меню бажану мову і поверніться до перегляду списку меню. Стовпчики «Handle» та «Items» вказують на початок заголовка меню і таблиці елементів відповідно, й можуть зацікавити лише досвідчених дослідників флешів. Ці ж стовпчики для елементів підменю містять номери повідомлень МП звичайним і збільшеним шрифтом.

Список «Зображення»

У цьому списку відображаються усі зображення, які містить ФФ. Вміст стовпчиків: номер PIT-таблиці, номер зображення у поточній PIT-таблиці, номер зображення при наскрізній нумерації, роздільна здатність по X, роздільна здатність по Y, біт на піксель, адреса зображення, його розмір, декомпресований розмір і адреса опису зображення. Декомпресований розмір вказує на те, скільки б займало зображення, якби його не було стиснено, і доступний, відповідно, лише для стиснених зображень. Завантаження зображень у ФФ з диску неможливе, а вивантаження відбувається до підтеки \BMP теки фулфлешу. У правому верхньому куті можна побачити саме зображення і його стислі характеристики. Пункт «Показати зображення» зберігає його на жорсткий диск і запускає зареєстрований у системі графічний редактор. Якщо програма знаходить додаткові зображення (поза PIT-областю), то вона показує їх під віртуальною PIT-таблицею №9.

Список «Мелодії»

Вміст стовпчиків цього списку: номер мелодії, тип мелодії, час звучання у секундах, код типу мелодії, зміщення, розмір, адреса опису мелодії і, власне, сама мелодія. Текстове представлення мелодії – це сукупність нот, розділених пропуском. Кожна нота описується так: частота (у герцах) і довжина (у мілісекундах). Мелодії коректно відтворюються лише під Win2000 і WinXP. Під Win98 та WinMe теоретично динамік повинен просто якось невиразно попискувати. Не знаю, не перевіряв. Для прослуховування мелодій потрібно увімкнути «Автовідтворення» за допомогою правої кнопки миші і переміщатися за списком. Або вимкнути «Автовідтворення» і прослуховувати кожну мелодію окремо. Завантаження/вивантаження мелодій відбувається до підтеки \Ringtone теки ФФ. Монофонія зберігається у форматі srt. Показуються всі мелодії, крім мелодій типу 01. Поліфонія (wav, mid) відтворюється таким чином: мелодія зберігається на диск і запускається стандартна програма системи для відтворення таких файлів. Монофонія відтворюється через системний динамік.

Список «Файли»

У цьому списку відображається вміст Flex Memory телефону (звичайно, якщо вона існує). Ця функція працює лише на x55 і новіших серіях. На 45-й серії формат файлової системи дещо інший. Під розміром теки розуміється сумарний обсяг усіх файлів, що знаходяться у ній, але без урахування вкладених тек. Оскільки розмір кластеру дорівнює 1К, то при відкритті файлу у WinHex (або HexWorkshop) коректно буде показано вміст лише тих файлів, обсяг яких не перевищує 1К. Файли розміром більше 1К в загальному випадку можуть бути розбиті (фрагментовані) на декілька несуміжних кластерів.

Список «Дамп»

У цьому списку відображається ФФ по блоках (64К), а кожен блок – у графічному вигляді. Це може бути корисно для пошуку вільного місця або закономірностей. Четвертий стовпчик – це середнє значення усіх байтів блоку. П'ятий – перший байт блоку. Останній стовпчик – опис вмісту блоку. Тут програма може інколи помилятися. Останній рядок (**) – це увесь ФФ загалом. У графічному відображенні він виглядає досить цікаво.

Список «Адресна книга»

x45-x55. При виборі цього списку потрібно відкрити файл 5F0x.adr, після чого буде створено список із відповідною інформацією, яку потім не важко перенести в MS Excel, а з нього через SDS – у телефон. Величина “x” в імені файлу залежить від моделі телефону. Взагалі, програма повинна розуміти адреси від будь-якої моделі. Якщо раніше було відкрито список «Файли» і в ньому був присутній файл 5F0x.adr, то при першому відкритті списку «Адресна книга» цей файл буде відкрито автоматично.

x65. На x65 адресна книга лежить не в одному файлі, а в декількох. Для відкриття всієї книги потрібно відкрити файл з ім'ям "00".

Список «Пошук байт»

При пошуку допускається задавання маски «??». Коми і пропуски в рядку пошуку ігноруються. У контекстному меню доступна функція «Зберегти як Стандартну Функцію», яка не лише внесе зміни в ini-файл, але й скопіює до буферу обміну відповідну команду для IDA. Параметр «Вирівнювання» керує тим, що послідовність шукатиметься лише за адресами, кратними цьому параметру.

Список «Пошук тексту»

При пошуку допускається задавання маски «?». Пошук відбувається у регістрозалежному режимі.

Латка

Будь-які зміни ФФ акумулюються у цьому полі. Після того, як Ви закінчили досліджувати свій ФФ, переходьте сюди і або зберігайте латку, або за допомогою «Інструменти – V_Klay» запускайте програму для її встановлення у телефон. Про наявність даних для латки свідчить індикатор в останньому полі рядка статусу.

Список

У цьому меню зібрано усі функції, які не залежать від конкретного списку, а є спільними для всіх. Так зроблено для того, щоб розвантажити контекстні меню у списках. Тут можна (крім усього іншого) запустити пошук за поточним списком (Ctrl-F), продовжити його (Ctrl-G), а також копіювати до буферу обміну вміст відповідного стовпчика поточного рядка списку (F1 ... F9). Пошук за списком ігнорує вміст стовпчиків із зміщеннями і розмірами.

MultiLanguage - багатомовна підтримка

Програма має гнучкий багатомовний інтерфейс. Мовні файли для програми лежать тут. Якщо Ви бажаєте додати Вашу мову до числа тих, які підтримує програма – завантажте мовні файли і за їх зразком створіть файл своєї мови. Потім перекладіть один із файлів документації Smelter_xx.htm на Вашу мову і разом із файлом мови надішліть мені. При редагуванні рядків мовного файлу не втрачайте початкові й кінцеві пропуски. Особливу увагу слід звернути на ці рядки:

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

Інструменти

Інструменти -» Підписувач мідлетів

Ця функціональність повністю повторює MidletSigner2 від Chaos'а, але працює на іншому двигуні і не використовує Java. Створення власного сертифікату та імпорт його до сховища у телефоні:
  1. Переконайтесь, що у Вас Windows 2000 або новіший.
  2. Встановіть на комп'ютері та телефоні реальні дату і час.
  3. Скопіюйте з телефону файл Config\Policy\manufacturer.sbp на комп'ютер. Цей крок можна не виконувати, тоді файл буде створено автоматично.
  4. Інструменти -> Підписувач мідлетів -> Створити сертифікат
  5. Вкажіть ім'я для сертифікату. що створюється.
  6. Вкажіть шлях до раніше збереженого файлу Config\Policy\manufacturer.sbp
  7. Скопіюйте отриманий der-файл у телефон удо теки \Config\Certificate Store
  8. Скопіюйте оновлений файл manufacturer.sbp у телефон до теки \Config\Policy (замінивши наявний)
Теперь телефон сприйме наш сертифікат як рідний :)
Підписування мідлетів:
  1. Встановіть дозволи, які бажаєте надати мідлету (ставлячи/знімаючи галочки у меню «Інструменти -> Підписувач мідлетів».
  2. Інструменти -> Підписувач мідлетів -> Підписати мідлет.
  3. Оберіть мідлет, який слід підписати.
  4. Вкажіть раніше створений сертифікат (на дві теки вище сертифікату повинен знаходитись його ключовий key-файл).
  5. Скопіюйте мідлет у телефон і насолоджуйтесь.
Зауваження від Chaos'а. Все-таки запити на підтвердження дій не дарма придумали. Не варто давати невідомим мідлетам повну свободу, щоб потім не дивуватись: «Хто це з мого телефону послав 500 SMS'ок?».

Декілька загальних зауважень

Подяки

Історія

О, ледь не забув ;). Саму програму можна завантажити тут: Smelter.

Обговорити програму можна на форумі (рос. мовою).
Якщо бажаєте бути в курсі всіх оновлень програми – раджу зайти за вищезазначеним посиланням і підписатися на отримання повідомлень.

Інші мої Siemens-проекти:
- LayoutMe - редактор розкладок клавіатури.
- FarDES - модуль для Far Manager, аналог DES.

Ви можете подякувати автору, переславши деяку суму грошей по системі WebMoney на гаманець Z464767006197

Пишіть листи: avkiev@ukr.net

ICQ: 226072

Щасти!