Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Разбираем и редактируем Nif-файлы


Рекомендуемые сообщения

Предлагаю желающим продолжить разбор формата "нокиевской" графики.

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

 

 

-= Структура NIF-иконок =-

В секции ANIM присутствуют нокиевские иконки (NIF-Nokia Image File) как минимум трех типов:

I.→ Иконки, состоящие из пикселей одного цвета;

II.→ Иконки, состоящие из пикселей нескольких цветов;

III.→ Иконки состоящие из набора I-го и/или II-го типа, анимированные иконки.

 

Самая простая структура у иконок I-го типа, ее и рассмотрим.

Для примера возьмем иконку из rm123_145_3005.43.ppm_e под номером 0005:

0005_Original_NIF.rar0005_NIF.bmp

Offset      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
00000000   02 00 00 00 0C 00 00 00  78 00 00 00 1F 00 16 00
00000010   AA 02 09 83 02 00 00 00  00 00 01 00 01 00 01 C5
00000020   00 00 00 00 00 00 00 01  FF FF FF E3 FF FF FF C7
00000030   9F 07 83 8E 3C E6 73 1A  7F CF E6 3C FF 9F CC 79
00000040   FF 3F 98 F3 FC F0 71 E7  F3 FE 63 CF CF FC C7 9F
00000050   3F F9 8F 3C FF F3 1E 79  FC E6 30 30 1C 1C 7F FF
00000060   FF F8 FF FF FF F1 FF FF  FF E3 FF FF FF C0 00 00
00000070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000080   7F FF FF F8 7F FF FF F8  7F FF FF F8 7F FF FF F8
00000090   7F FF FF F8 7F FF FF F8  7F FF FF F8 7F FF FF F8
000000A0   7F FF FF F8 7F FF FF F8  7F FF FF F8 7F FF FF F8
000000B0   7F FF FF F8 7F FF FF F8  7F FF FF F8 7F FF FF F8
000000C0   7F FF FF F8 7F FF FF F8  00 00 00 00 00 00 00 00

0x00 02 00 00 00 00 00 00 – идентификатор начала / заголовок NIF-файла;

0x08 78 - смещение относительно начала файла - начало маски иконки;

0x0С 1F 00 - 2 байта - размер иконки по горизонтали (ширина в пикселях);

0x0E 16 00 - 2 байта - размер иконки по вертикали (высота в пикселях);

0x10 AA 02 09 83 02 00 00 00 00 00 01 00 01 00 01 - 15 байт - их назначение пока неизвестно;

0x1F C5 - 1 байт - цвет пикселей данной иконки (необходимо разобраться как кодируется это значение, т.е. сопоставление с RGB);

0x20 - начало самого битмапа иконки, набор последовательно идущих друг за другом строк пикселей;

0x78 - значение этого смещения находится по смещению 0x08 - начало маски иконки.

 

Рассмотрим кодирование битмапа

1. Переведем из шестнадцатиричной системы в двоичную набор байт, которые находятся в диапазоне смещений 0x20...0x77

(0x20 - начало битмапа; 0x77 - окончание битмапа, т.к. 0x78 - начало маски).

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

Main_Menu_Vib_D600XEFC1.rar

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001
11111111 11111111 11111111 11100011 11111111 11111111 11111111 11000111
10011111 00000111 10000011 10001110 00111100 11100110 01110011 00011010
01111111 11001111 11100110 00111100 11111111 10011111 11001100 01111001
11111111 00111111 10011000 11110011 11111100 11110000 01110001 11100111
11110011 11111110 01100011 11001111 11001111 11111100 11000111 10011111
00111111 11111001 10001111 00111100 11111111 11110011 00011110 01111001
11111100 11100110 00110000 00110000 00011100 00011100 01111111 11111111
11111111 11111000 11111111 11111111 11111111 11110001 11111111 11111111
11111111 11100011 11111111 11111111 11111111 11000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

2. Исходя из значений ширины и высоты иконки (данные из смещений 0x0С х 0x0E: 1F 00 x 16 00 = 31 x 22 пикселя)

сгруппируем приведенные выше двоичные данные в 22 строки, в каждой строке 31 пиксель:

0000000000000000000000000000000
0000000000000000000000000000000
0111111111111111111111111111100
0111111111111111111111111111100
0111100111110000011110000011100
0111000111100111001100111001100
0110100111111111001111111001100
0111100111111111001111111001100
0111100111111111001111111001100
0111100111111110011110000011100
0111100111111100111111111001100
0111100111111001111111111001100
0111100111110011111111111001100
0111100111100111111111111001100
0111100111100111111100111001100
0110000001100000001110000011100
0111111111111111111111111111100
0111111111111111111111111111100
0111111111111111111111111111100
0111111111111111111111111111100
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000

3. Для наглядности отображения заменим значения 0 на и 1 на - получим искомую иконку:

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■□□□□■■□□□□□■■■■■□□□□■■■■■□□□■■

■□□□■■■□□□□■■□□□■■□□■■□□□■■□□■■

■□□■□■■□□□□□□□□□■■□□□□□□□■■□□■■

■□□□□■■□□□□□□□□□■■□□□□□□□■■□□■■

■□□□□■■□□□□□□□□□■■□□□□□□□■■□□■■

■□□□□■■□□□□□□□□■■□□□□■■■■■□□□■■

■□□□□■■□□□□□□□■■□□□□□□□□□■■□□■■

■□□□□■■□□□□□□■■□□□□□□□□□□■■□□■■

■□□□□■■□□□□□■■□□□□□□□□□□□■■□□■■

■□□□□■■□□□□■■□□□□□□□□□□□□■■□□■■

■□□□□■■□□□□■■□□□□□□□■■□□□■■□□■■

■□□■■■■■■□□■■■■■■■□□□■■■■■□□□■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■■■■■■■■■■■■■■■■■■■■■■

  • Like 8

Alcatel 310 -> Siemens C55 -> M65 - > M75 -> C75 - > NOKIA 6233 (The Best Of The Best)

Ссылка на комментарий
Поделиться на другие сайты

класс!

только у меня файл 0005 получился нетакой, несмотря на то, что телефон такой же...

□□□■■■■■■■■■■■■■■■■■■■■■■■■■■

□□□■■■■■■■■■■□□■■■■■■■■■■■■■■

□□□■■■■■■■■■■□□■■■■■■■■■■■■■■

□□□■■■■■■■■■■□□■■■■■■■■■■■■■■

□□□■■■■■■■■■■□□■■■■■■■■■■■■■■

□□□■■■□□□□■■■□□□□□□■■■■□□□□■■

□□□■■■■■■□□■■□□■■■□□■■□□■■■■■

□□□■■■■■■□□■■□□■■■□□■■□□■■■■■

□□□■■■■■■□□■■□□■■■□□■■□□■■■■■

□□□■■■□□□□□■■□□■■■□□■■□□■■■■■

□□□■■□□■■□□■■□□■■■□□■■□□■■■■■

□□□■■□□■■□□■■□□■■■□□■■□□■■■■■

□□□■■□□■■□□■■□□■■■□□■■□□■■■■■

□□□■■■□□□■□■■□□□□□□■■■■□□□□■■

□□□■■■■■■■■■■■■■■■■■■■■■■■■■■

□□□■■■■■■■■■■■■■■■■■■■■■■■■■■

□□□■■■■■■■■■■■■■■■■■■■■■■■■■■

□□□■■■■■■■■■■■■■■■■■■■■■■■■■■

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

□□□□

 

Скрытый текст
9A разработчик нокиа? ))

□□□□□□□□□□□□□□□□□□□□□□□□

□■■■■■■■■■■■■■■■■■■■■■■□

□■■■■■■■■■■■■■■■■■■■■■■□

□■■■■■■■■■■□□■■■■■■■■■■□

□■■■■■■■■■□□□□■■■■■■■■■□

□■■■■■■■■□□□□□□■■■■■■■■□

□■■■■■■■■□□□□□□■■■■■■■■□

□■■■■■■■■■□□□□■■■■■■■■■□

□■■■■■■■■■■□□■■■■■■■■■■□

□■■■■■■■□□□□□□□□■■■■■■■□

□■■■■■■□□□□□□□□□□■■■■■■□

□■■■■■□□□□□□□□□□□□■■■■■□

□■■■■□□□■□□□□□□■□□□■■■■□

□■■■■□□■■□□□□□□■■□□■■■■□

□■■■■■■■■□□□□□□■■■■■■■■□

□■■■■■■■■□□□□□□■■■■■■■■□

□■■■■■■■■□□□□□□■■■■■■■■□

□■■■■■■■■□□■■□□■■■■■■■■□

□■■■■■■■■□□■■□□■■■■■■■■□

□■■■■■■□□□□■■□□□□■■■■■■□

□■■■■■■□□□□■■□□□□■■■■■■□

□■■■■■■■■■■■■■■■■■■■■■■□

□■■■■■■■■■■■■■■■■■■■■■■□

□□□□□□□□□□□□□□□□□□□□□□□□

□□□□□□□□□□□□□□□□□□□□□□□□

□□□□□□□□

 

а с другими форматами чтото получается?

Ссылка на комментарий
Поделиться на другие сайты

класс!

только у меня файл 0005 получился нетакой, несмотря на то, что телефон такой же...

 

А ты какую прошивку брал?

Stranger GT использовал rm123_145_3005.43.ppm_e, на rm123_145_3005.60.ppm_e ета картинка другая.

У меня на 5.43 получилась такая как в 76 посте, а на 5.60 еще не пробовал

Samsung Jet S8000 (S8000MXEJA1) + 16GB Transcend MicroSDHC->Samsung Galaxy S2

 

Создание меню для s8000.

Ссылка на комментарий
Поделиться на другие сайты

А ты какую прошивку брал?

5.60. Вроде говорят, что PPM от разных прошивок взаимозаменяемы...

Анашел ли ктото значки антенны, GPRS? Вкаком они формате?

 

Скрытый текст
в картинке A2 можно рассмотреть стрелочку. первые 0x2F байт надо отбросить

000000000000000000000000

011111111111111111111110

011111111111111111111110

011111111111111111111110

011111111110111111111110

011111111100111111111110

011111111000111111111110

011111110000111111111110

011111100000111111111110

011111000000000000001110

011110000000000000001110

011100000000000000001110

011100000000000000001110

011110000000000000001110

011111000000000000001110

011111100000111111111110

011111110000111111111110

011111111000111111111110

011111111100111111111110

011111111110111111111110

011111111111111111111110

011111111111111111111110

011111111111111111111110

000000000000000000000000

Ссылка на комментарий
Поделиться на другие сайты

Вроде говорят, что PPM от разных прошивок взаимозаменяемы...

Насколько мне известно от 6233 совместимы две последние 5.60 и 5.43, другие вроде нет :al:

I love Nokiйa !!!

Ссылка на комментарий
Поделиться на другие сайты

Кстати на счет форматов. Как то говорили об этом с b_boychik и Falcon и собрав всю информацию обдумав и сгрупировав давно уже понял такую систему, но это теория. Чесно не помню кто больше всего там сообразил походу Falcon...ну наверное не столь важно, важнее содержание.

Теория

Почти в каждом файле если открыть его в Hex редакторе в начале имеется назвем его так идентификатор формата, например в JPG это что-то типа JFIF, PNG - %PNG, flv - flv, rar - rar и так далее если, что глянете сами открыв любой файл даже в Win Hex и посмотрев на первые байты...

 

Так же есть форматы в которых такого "идентификатора" не используется, к нашей платформе S40 больше всего из таких относятся

txt - текстовый

lst - текстовый но назначение не знаю...

nth - тема

jar - ява приложение

log - текстовый лог файл

bmk - закладка

 

И так допустим мы копируем на телефон скажем изображение jpg, предварительно переименовав расширение на mp3, что же делает телефон? Он читает из оглавления этот идентификатор и успешно распознает этот файл как jpg. Убираем расширение, снова все нормально, снова открывается. При этом если нажать "ИНФОРМАЦИЯ" будет написано формат: JPG, телефон прочитал идентификатор из оглавления и без потребности в расширении успешно распознал файл.

 

Будет логично подумать что в txt,lst,log и так далее так, как они текстовые (или как вернее сказать) нет такого идентификатора и когда мы закидываем на телефон такой файл, он читает расширение, успешно распознает файл из него потому, что идентификатора у нас нет, какая информация там содержится, такая нам и показывается и если бы он там был, то мы бы его видели всегда и моглибы стереть, а это было бы некорректно и могло бы исправиться например тем если бы структура нашего файла была такая как у doc (word) (его можно распаковывать и там содержатся отдельно и настройки и содержание и так далее). Хорошо, а теперь уберите расширение txt, вот теперь он не распознается телефоном, нет ни идентификатора, ни расширения, а возможно в прошивке определенные форматы запрограмированы для чтения только расширения так, как идентификатора там нет и в его чтении телефон не нуждается и наоборот с другими файлами.

 

Например пытался как то распознать наш неизвестный формат таким путем, ведь там нет идентификатора и распознается он из расширения. Мне по прозьбе хороший человек написал программу, которая брала бы файл, который вы ему даете и копировала его с заменой расширения это 26 англ букв в 3 степени потому что символов сначала взял трив расширении, это вышло ~17500. Вообщем просмотрели мы эти файлы, ничего не нашли, пролетели.

Потом решил, что возможно это расширение из 4 букв и Stranger_GT любезно помог с написанием такой программы вообщем вышло более 450 тысяч. Просматривал я их просматривал на телефоне естественно, дошел до ~62 тысяч и как то увидел в инете формат RTTTL что-то типа аналога MIDI и понял, что это бесполезно потому, что расширение 5 символов это около 12 млн. И это просто глупая трата времени и сил. Возможно если бы удалось угадать формат, то его на телефоне как и дугие можно было бы редактировать и это могло бы что-то принести и естественно малейший шанс, что это все таки не в компании придумали его и это просто нераспостраненный формат, по которому можно было бы легко найти мануал в инете

Ссылка на комментарий
Поделиться на другие сайты

AlexRk

есть идея создать отдельную тему, и собираться в конференции в джаббере

когда то выдрал еще и все значения расширений файлов, но уже утерял, как только еще найду скину

iсq: 360713877

jabber: bsod@xdsl.by

e-mail: 3ad@tut.by

hacked

Ссылка на комментарий
Поделиться на другие сайты

AlexRk

есть идея создать отдельную тему, и собираться в конференции в джаббере

когда то выдрал еще и все значения расширений файлов, но уже утерял, как только еще найду скину

Та они то есть и у меня их Stranger_GT проверял ничего не дало...(

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Кстати для кого-нить на будущее подтверждаю не все фейлы нашего неизвестного графического формата в ppm можно заменять. Только что заменил все на png 1x1 прозрачный и телефон вис при старте, так же возможна перезагрузка при попытке отображения замененных файлов такого типа

Ссылка на комментарий
Поделиться на другие сайты

Какие иконки ты расшифровал, или просто вычислил методом тыка?, и что то за иконка из за которой вышла обводка?

 

AlexRk,

Кстати все ваши патчи заметил на левом сайте (не оллнок)

Ссылка на комментарий
Поделиться на другие сайты

Какие иконки ты расшифровал, или просто вычислил методом тыка?, и что то за иконка из за которой вышла обводка?

 

AlexRk,

Кстати все ваши патчи заметил на левом сайте (не оллнок)

 

Завтра все расскажу...катострофически нет времени

Та я знаю...я уже таких немало ликвидировал, на одном не вышло сказали, что мне лицо набьют при том, что работы моиже :128::128::128:

Ссылка на комментарий
Поделиться на другие сайты

на одном не вышло сказали, что мне лицо набьют при том, что аботы моиже

Пусть лососнут тунца! Наше кунг-фу сильнее!!

 

Есть 2 типа телефонов - Nokia и ВсеОстальные...!

Ссылка на комментарий
Поделиться на другие сайты

Пусть лососнут тунца! Наше кунг-фу сильнее!!

:)

ps та то я не правильно начал разговаривать нужно было просто попросить удалить работы да и все

 

Какие иконки ты расшифровал, или просто вычислил методом тыка?, и что то за иконка из за которой вышла обводка?

 

AlexRk,

Кстати все ваши патчи заметил на левом сайте (не оллнок)

обводка это куча ресурсов прозрачных размером 1x1, а ресурсы нашего неизвестного формата просто заменял на прозрачные png 1x1, заменять вообще можно, но не все

Ссылка на комментарий
Поделиться на другие сайты

Кстати для кого-нить на будущее подтверждаю не все фейлы нашего неизвестного графического формата в ppm можно заменять. Только что заменил все на png 1x1 прозрачный и телефон вис при старте, так же возможна перезагрузка при попытке отображения замененных файлов такого типа

Да, ты прав.

Иконки неизвестного типа начинающиеся на 03 00 FA трогать нельзя

В 6233 я нашел таких 3 (батарея, индикатор уровня сигнала сети и еще что-то) после замены индикатора телефон работает (возможно с глюками, не проверял, но работает), а при замене батареки умирает.

Ссылка на комментарий
Поделиться на другие сайты

GLoom, а ты на 100% уверен что это иконка батареи? Мне кажется иконок батареи должно быть несколько, для разных уровней заряда, или там одна?

 

I love Nokiйa !!!

Ссылка на комментарий
Поделиться на другие сайты

GLoom, а ты на 100% уверен что это иконка батареи? Мне кажется иконок батареи должно быть несколько, для разных уровней заряда, или там одна?

несколько

Ссылка на комментарий
Поделиться на другие сайты

GLoom, а ты на 100% уверен что это иконка батареи?

да, я менял ее на иконку такого же типа (индикатор сети) в итоге вместо батарейки рисовалась одна палочка индикатора, а вместо сети ничего не было

 

Мне кажется иконок батареи должно быть несколько, для разных уровней заряда, или там одна?

Скорее всего одна, но одна содержит в себе 4 изображения для разных уровней заряда.

Ссылка на комментарий
Поделиться на другие сайты

GLoom, Их 2, одна для зарядки

Кстати кто знает какие файлы отвечают за два значка в плеере повтор и разброс для 6233 (5.60)?

Ссылка на комментарий
Поделиться на другие сайты

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

 

Вопрос ко всем, в частности к Stranger_GT. Как устроены картинки неизвестного формата (второй и третий варианты)? Маску иконки в этих файлах найти можно (так же как и уже расшифрованных картинках), а вот как кодируются сами пиксели непонятно. Говорят, предположительно RLE алгоритм. Знатоки, проверьте, пожалуйста

Ссылка на комментарий
Поделиться на другие сайты

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

 

Вопрос ко всем, в частности к Stranger_GT. Как устроены картинки неизвестного формата (второй и третий варианты)? Маску иконки в этих файлах найти можно (так же как и уже расшифрованных картинках), а вот как кодируются сами пиксели непонятно. Говорят, предположительно RLE алгоритм. Знатоки, проверьте, пожалуйста

Это он и хотел бы узнать) ооочень)

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Да я говорю не о плеере, а просто о его иконке в меню.

А графика пропадала и у меня. Просто пересобирал стандартную PPM, ничего не меняя :) Скрипты к NokiX'у глючные.

Ссылка на комментарий
Поделиться на другие сайты

Sid Meyer,

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

 

Обратно не вышло, поставил вместо авс так при включении его еще и часы начали пропадать... :|

 

Есть :shock:8)

Первая иконка отобразилась это разноцветный шарик инета :)

 

 

Ух ты нашел анимированую скрепку (скрепка-сообщение)

Шарик тот тоже анимированый но чето сам гад не всегда запускается...

__________...bmp

Ссылка на комментарий
Поделиться на другие сайты

Заменил зарядку батареи :132:8)post-97684-1486242349,7763_thumb.gif

Тел 6233 прошивка 5.60 за иконку зарядки отвечает файл 822.bin 8)

Нашел уровень сети, он состоит из 4-х или 5-ти кадров, это вообще анимированая палочка. Приблизительно выглядит гдето так: post-97684-1486242349,7885_thumb.gif

  • Like 3
Ссылка на комментарий
Поделиться на другие сайты

Тел 6233 прошивка 5.60 за иконку зарядки отвечает файл 822.bin

823.bin - индикатор батареи

824.bin - индикатор уровня сети

 

 

Вопрос ко всем, в частности к Stranger_GT. Как устроены картинки неизвестного формата (второй и третий варианты)? Маску иконки в этих файлах найти можно (так же как и уже расшифрованных картинках), а вот как кодируются сами пиксели непонятно. Говорят, предположительно RLE алгоритм. Знатоки, проверьте, пожалуйста

 

Да, возможно используется сжатие, так так индикатор батареи и индикатор уровня сети на вид имеют примерно одинаковые размеры ("габаритные"), а размер файла индикатора уровня сети намного меньше

 

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...