РЕВЕРСИНГ Д500

Версия для печати

Список форумов SAMSUNG-mobile.ru / Программирование для Samsung и реверсинг прошивок / РЕВЕРСИНГ Д500
На страницу 1, 2, 3, 4  След.
Показать: « Предыдущая тема :: Следующая тема »



SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
РЕВЕРСИНГ Д500 Цитировать | Ответить

Друзья, есть вопросы. Занимаюсь прошивкой для D500. В процессе этого начинается складываться впечатление, что все прошивки самсунга построены по одному принципу. Но я другие не ковырял, поэтому не уверен... Я начал этим заниматься практически с нуля(по долгу службы). Поэтому если какие-то вопросы покажутся совсем нелепыми, просьба камнями не закидывать... Я спрашивал(всем наверное известного) Hex'a на его xtinreversingforum. Он немного просветил меня(за что ему огромное спасибо), но видимо сильно занят. Поэтому решил спросить здесь. Надеюсь кто-нибудь найдет время и ответит хоть на некоторые из моих вопросв. Сразу скажу, что не требуется каких-то примеров кода и т.п. Все вопросы носят больше теоретический характер и касаются самого процесса работы телефона. Вопросов много, попробую их внятно сформулировать. Думаю, что ответы на них будет полезно услышать не только мне, но и многим новичкам. Еще раз скажу, что спрашиваю в контексте D500, но вероятно можно провести аналогию с другими телефонами.

1.Из телефона можно слить 512 блоков. Т.е. максимальный адрес примерно 12000000 + длина последнего блока(8 кбайт). Тогда откуда берутся такие адреса:
2C 49 LDR R1, =0x18CA4D00 ; Load from Memory.
Это что-то типа ОЗУ? Есть простой и внятный способ посмотреть эту область?

2.что такое mcc(например функции mcfn_mcc_*********). Ну т.е. я понимаю примерно что это за функции. А, так сазать, "научное" объяснение?

3. Вообще детский вопрос: что есть EEPROM? Это область памяти, где хранятся настройки телефона? Что-то вроде ПЗУ?
существуют различные функции типа ***write_eeprom*** и ***read_eeprom*** - через них сохраняются все настройки?

4. Вопрос из простого любопытства:
В D500 есть такая "переменная" mcc_proc. Может в других самсунгах тоже есть. Я так понял, что это что-то типа таблицы функций mcc. Вид у неё такой:
ROM:006519F3 00 DCB 0 ; mcc_proc
ROM:006519F4 CODE32
ROM:006519F4 7D 7D 40 10 DCD 0x10407D7D ; MCFN_MCC_ZERO_S
ROM:006519F8 BC 1E 65 10 DCD 0x10651EBC
ROM:006519FC C1 79 40 10 DCD 0x104079C1 ; MCFN_MCC_START
ROM:00651A00 C7 1E 65 10 DCD 0x10651EC7
ROM:00651A04 45 EA 7A 10 DCD 0x107AEA45 ; MCFN_MCC_DUMMY
ROM:00651A08 D1 1E 65 10 DCD 0x10651ED1
ROM:00651A0C 4D 74 40 10 DCD 0x1040744D ;MCFN_MCC_LONGFILTER
ROM:00651A10 DB 1E 65 10 DCD 0x10651EDB
ROM:00651A14 95 6B 40 10 DCD 0x10406B95 ; MCFN_MCC_EBUF
ROM:00651A18 EA 1E 65 10 DCD 0x10651EEA

Первый адрес - адрес функции. А каждый второй адрес:
ROM:00651EC7 4D DCB 0x4D ; M
ROM:00651EC8 43 DCB 0x43 ; C
ROM:00651EC9 43 DCB 0x43 ; C
ROM:00651ECA 5F DCB 0x5F ; _
ROM:00651ECB 53 DCB 0x53 ; S
ROM:00651ECC 54 DCB 0x54 ; T
ROM:00651ECD 41 DCB 0x41 ; A
ROM:00651ECE 52 DCB 0x52 ; R
ROM:00651ECF 54 DCB 0x54 ; T
ROM:00651ED0 00 DCB 0
ROM:00651ED1 4D DCB 0x4D ; M
ROM:00651ED2 43 DCB 0x43 ; C
ROM:00651ED3 43 DCB 0x43 ; C
ROM:00651ED4 5F DCB 0x5F
ROM:00651ED5 44 DCB 0x44 ; D
ROM:00651ED6 55 DCB 0x55 ; U
ROM:00651ED7 4D DCB 0x4D ; M
ROM:00651ED8 4D DCB 0x4D ; M
ROM:00651ED9 59 DCB 0x59 ; Y
ROM:00651EDA 00 DCB 0
Т.е. названия этих самых функций... Вопрос: для чего? Есть какая-то потребность в этом. Или это просто для удобства ковыряния?

5. В процессе работы нарвался на функцию mcfn_mcc_bs. Она в некоей облати памяти выбирает адрес, в зависимости от каких-то параметров. Эта область не именована в map-файле, но представляет что-то типа таблицы функций вида:

ROM:00D32DC0 61 30 F1 10 DCD 0x10F13061 ; cal0_1bs
ROM:00D32DC4 D5 72 F7 10 DCD 0x10F772D5 ; net0_1bs
ROM:00D32DC8 01 E9 82 10 DCD 0x1082E901 ; sec0_1bs
ROM:00D32DCC E1 52 BD 10 DCD 0x10BD52E1 ; ss0_1bs
ROM:00D32DD0 C5 63 28 11 DCD 0x112863C5 ; acc0_1bs
ROM:00D32DD4 81 31 B7 10 DCD 0x10B73181 ; dir0_1bs
ROM:00D32DD8 F1 8B 47 10 DCD 0x10478BF1 ; pap0_1bs
ROM:00D32DDC 59 7E 29 11 DCD 0x11297E59 ; cb0_1bs
ROM:00D32DE0 2D 47 2F 11 DCD 0x112F472D ; sms0_1bs
ROM:00D32DE4 7D 61 B7 10 DCD 0x10B7617D ; ed0_1bs

Т.е. идет наборами. Исть группа названий (cal,net,sec,ss и т.д.). А есть окончание bs. Помимо 1bs, есть еще окончания 2rp, 3ip, 4if, 5task, 6menu. Кто что может про них сказать. В каких ситуациях они используются? Если кто что знает о названиях:
cal0
net0
sec0
ss0
acc0
dir0
pap0
cb0
sms0
ed0
set0
aoc0
st0
int0
at0
wap0
srg0
org0
smtp0
mms0
java0
email0
camera0
camcorder0
mplayer0
bt0
syncmlm0
fbox0
messages0
поделитесь знаниями. Есть говорящие названия типа java0. А есть и нечего не значащие, типа srg0.

Ну и хватит пожалуй вопросов... для начала... Улыбка


07.10.2005 08:18

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ


stepan_v

Признанный телефонист


Рейтинг: 92% (150 / 13)



В форуме с: 08.2004
Сообщения: 845
Откуда: Великий Новгород
Вопрос ветеранам прошивок! Цитировать | Ответить

SiNoptik, смотри http://forum.samsung-mobile.ru:/viewtopic.php?p=216504#216504 ...
Там есть вложенный файлик, почитай его. Естественно, там много лишнего, да и не про D500, но так или иначе есть ответы почти на все твои вопросы ()... Если что не понятно - обращайся Wink

_________________
X100, X700 + 512 -=- Нет ничего невозможного!


07.10.2005 15:13

OfflineПрофайл | Отправить л/с | WWW


SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
Вопрос ветеранам прошивок! Цитировать | Ответить

Смотрел эту тему, но файлика не заметил. Спасибо, посмотрю. Рабочий день закончился уже, ухожу. Но ответы всё равно принимаются. Может еще что-нибудь узнаем. Помимо того, что в этом файле... Будет очень интересно узнать! Улыбка


07.10.2005 15:22

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ


Sobakator

Опытный телефонист


Рейтинг: 47% (16 / 18)



В форуме с: 08.2005
Сообщения: 131
Откуда: Ростов-на-Дону
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

SiNoptik писал(а):
Смотрел эту тему, но файлика не заметил. Спасибо, посмотрю. Рабочий день закончился уже, ухожу. Но ответы всё равно принимаются. Может еще что-нибудь узнаем. Помимо того, что в этом файле... Будет очень интересно узнать! Улыбка

вложенный файлик называется "Создание патча" от AlexeyK

_________________
Реверсерами не рождаются... - реверсерами становятся!!!!!!! Улыбка


08.10.2005 00:47

OfflineПрофайл | Отправить л/с | Отправить e-mail | WWW | ICQ


Абрам

Опытный телефонист


Рейтинг: 80% (94 / 23)



В форуме с: 11.2004
Сообщения: 271
Откуда: Беларусь, Минск
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

ПРЕДЛАГАЮ ИЗМЕНИТЬ ТЕМУ НА "РЕВЕРСИНГ Д500"

SiNoptik писал(а):

1.Из телефона можно слить 512 блоков. Т.е. максимальный адрес примерно 12000000 + длина последнего блока(8 кбайт). Тогда откуда берутся такие адреса:
2C 49 LDR R1, =0x18CA4D00 ; Load from Memory.
Это что-то типа ОЗУ? Есть простой и внятный способ посмотреть эту область?

Это ОЗУ. Начинается с 0x18000000. Способы просмотреть.... С этим труднее. Для Х100 я делал хак-патчем (выбрасывал на раб.стол), а на непатченном Д500... Скорее всего нет...

Цитата:

2.что такое mcc(например функции mcfn_mcc_*********). Ну т.е. я понимаю примерно что это за функции. А, так сазать, "научное" объяснение?

Тут я тебе прямо скажу- многие товарищи (даже не знаю кто первым так ЭТО назвал) называют это скриптами.... А вот у меня стойкое мнение уже давно назрело, что это МАКРОСЫ языка С ! Может я и не прав, но очень уж подозрительно все выглядит (избыточность кода, порой сомнительные процедурки и т.п.) Вобщем, они управляют всей мобилой(что запустить, какую менюшку открыть и т.п) считай- костяк прошивки.

Цитата:

3. Вообще детский вопрос: что есть EEPROM? Это область памяти, где хранятся настройки телефона? Что-то вроде ПЗУ?
существуют различные функции типа ***write_eeprom*** и ***read_eeprom*** - через них сохраняются все настройки?

На самом деле, детский вопрос Улыбка

Цитата:

4. Вопрос из простого любопытства:
В D500 есть такая "переменная" mcc_proc. Может в других самсунгах тоже есть. Я так понял, что это что-то типа таблицы функций mcc. Вид у неё такой:....
Т.е. названия этих самых функций... Вопрос: для чего? Есть какая-то потребность в этом. Или это просто для удобства ковыряния?

Все правильно, но кроме последнего Улыбка Для удобства ковыряния Самсунг бы выкладывала исходники прошивки Улыбка

А насчет названий mcc... Все было описано в ветке про Х100- тут никаких (почти) изменений нету...

_________________
Panasonic KX-TC1025-> Samsung X100-> Samsung D500


09.10.2005 13:43

OfflineПрофайл | Отправить л/с


AlexeyK

Признанный телефонист


Рейтинг: 93% (108 / 8)



В форуме с: 07.2004
Сообщения: 517
Откуда: г. Александров
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

Абрам писал(а):
Цитата:

2.что такое mcc(например функции mcfn_mcc_*********). Ну т.е. я понимаю примерно что это за функции. А, так сазать, "научное" объяснение?

Тут я тебе прямо скажу- многие товарищи (даже не знаю кто первым так ЭТО назвал) называют это скриптами.... А вот у меня стойкое мнение уже давно назрело, что это МАКРОСЫ языка С ! Может я и не прав, но очень уж подозрительно все выглядит (избыточность кода, порой сомнительные процедурки и т.п.) Вобщем, они управляют всей мобилой(что запустить, какую менюшку открыть и т.п) считай- костяк прошивки.


Скорее всего действительно макросы. от себя могу добавить, что большинство из них только заполняют разные структуры данных и запускают системные события. МСС оканчивающиеся на _S - это обработчики системных событий. Например в MCC_EDIT_START_S происходит обработка следующих событий
7019 - APPI_EDP_INIT_EDITOR_CNF (конфигурирование поля ввода)
701A - APPI_EDP_INIT_EDITOR_ERR (закрытие всех окон редактирования)
7053 - APPI_EDP_KEY_INFO_IND (ввод в буфер ввода EditString цифровых символов 1-9, 0, *, # по кодам 1-12 соответственно из gv_DigitValue при gv_KeyInfo=3)

А имена MCC вроде используются при трассировке

_________________
Patch & Hex редактор, ARM Debuger & Compiler: http://forum.samsung-mobile.ru/viewtopic.php?t=22518


09.10.2005 21:56

OfflineПрофайл | Отправить л/с | ICQ


AlexeyK

Признанный телефонист


Рейтинг: 93% (108 / 8)



В форуме с: 07.2004
Сообщения: 517
Откуда: г. Александров
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

SiNoptik писал(а):
3. Вообще детский вопрос: что есть EEPROM? Это область памяти, где хранятся настройки телефона? Что-то вроде ПЗУ?
существуют различные функции типа ***write_eeprom*** и ***read_eeprom*** - через них сохраняются все настройки?

насколько я понял эти функции работают напрмую с EEPROM, но фокус в том, что при сохранении данных туда, они записываются в разные области. Для чего это сделано можно только гадать, но это факт. Нет фиксированных адресов для хранения параметров. В прошивке для сохранения и загрузки параметров используются hfd2_30SaveBlockNameInRamImage и hfd2_31ReadBlockNameInRamImage, которые копируют блок EEPROM в оперативку а после изменения параметров записывают обратно. В R0 передаётся идентификатор блока

_________________
Patch & Hex редактор, ARM Debuger & Compiler: http://forum.samsung-mobile.ru/viewtopic.php?t=22518


09.10.2005 22:15

OfflineПрофайл | Отправить л/с | ICQ


Абрам

Опытный телефонист


Рейтинг: 80% (94 / 23)



В форуме с: 11.2004
Сообщения: 271
Откуда: Беларусь, Минск
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

И еще Улыбка В Д500 установлен LittleArm процессор. Что это значит? Ничего хорошего... Все адреса/ссылки на ресурсы представлены в обратном коде.... (Ужас подумать, но такой тип процессора установлен в С100 ). Честно говоря, но я думал (судя по скорости работы С100 и Х100), что такой тип процессора морально устарел... Видимо нет... В принципе, это тоже АРМ, но! То, что в Х100 было как 1234 в Д500 стало как 3412! И это только цветочки (структура ldrh)! Самое главное- ResMan не работает нормально с такими процессорами Грустный Вроде как Javer обещал к концу октября представить ResMan для LittleArm, но проблема в другом- визуально определить, что это-код, а зто- что-то другое, очень тяжело... И, кстати, это коснулось и mcc "скриптов". Теперь там (в Д500) адреса тоже перевернуты! И не только адреса! К примеру- в Х100, запустить 9-ю ветку 5-го скрипта (ну, к примеру): 1c05 0009 ,а в Д500: 1c05 0900. Без ста грамм не разберешься! Улыбка

_________________
Panasonic KX-TC1025-> Samsung X100-> Samsung D500


09.10.2005 22:20

OfflineПрофайл | Отправить л/с


AlexeyK

Признанный телефонист


Рейтинг: 93% (108 / 8)



В форуме с: 07.2004
Сообщения: 517
Откуда: г. Александров
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

Абрам, Улыбка привыкнешь. в самом деле разница не очень большая. Поддержка little endian в resman, насколько знаю, практически реализована. Между C100 и D500 целая пропасть, если в первом ARM7 (до 70 МГц), то во втором ARM9 (до 200 МГц плюс расширенный набор команд). Например, IDA 4.5 вообше отказалась местами реверсить код Улыбка

_________________
Patch & Hex редактор, ARM Debuger & Compiler: http://forum.samsung-mobile.ru/viewtopic.php?t=22518


09.10.2005 22:55

OfflineПрофайл | Отправить л/с | ICQ


SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

А я, по правде говоря, даже не удивился тому, что байты перевёрнуты. Подумал, что обычное дело. Наверное, если полезу в какой-нибудь с100, тоже буду страдать... Ангел А по поводу ответов... Отличные ответы! Спасибо. До некоторых вещей действительно очень сложно додуматься самому. Мне поначалу казалось, что эту прошивку создал какой-то внеземной разум... А по поводу EEPROM: действительно странно, что это так происходит. И не совсем понятно кому и зачем это нужно. Почему бы не записывать все эти данные в одно и тоже место. Ну, в крайнем случае, в 2 разных блока, чередуя их. Кстати, моя задача как раз и заключается в том, что бы найти место где происходит генерация адреса, по которому и будет сохранен блок с настройками. Длина такого блока для D500 равна 71B(вроде как). Может, кто-нибудь знает, как называется переменная, которая указывает на адрес начала такого блока? В частности, интересует процесс сохранения приветственного сообщения(greeting message)...


10.10.2005 07:28

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ


SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

AlexeyK, а более подробная информация об этом процессе есть? Т.е. как это происходит, когда. Где берется адрес этого блока? В какой переменной хранится? И т.е. при сохрании одного из параметров, входящиго в этот блок, автоматом происходит сохраниние всего блока параметров?


10.10.2005 12:37

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ


AlexeyK

Признанный телефонист


Рейтинг: 93% (108 / 8)



В форуме с: 07.2004
Сообщения: 517
Откуда: г. Александров
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

блок грузиться и сохраняется целиком. Чтоб узнать адреса надо реверсить эти функции, я пытался, но потом бросил это занятие. переменной не знаю, но в прошивке есть таблица по которой выбирается толи маска толи идентификатор блока. в Дампе флеш есть много идентификаторов которые передаются функциям в R0, коды типа 00000F01, 00000910.

_________________
Patch & Hex редактор, ARM Debuger & Compiler: http://forum.samsung-mobile.ru/viewtopic.php?t=22518


10.10.2005 16:11

OfflineПрофайл | Отправить л/с | ICQ


SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

AlexeyK, посмотри личное. Только не ругайся на меня сразу. Просто очень надо узнать!


12.10.2005 13:02

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ


mike00z
Forum Paparazzi

Модератор форума


Рейтинг: 58% (59 / 42)



В форуме с: 01.2005
Сообщения: 4735

Re: Вопрос ветеранам прошивок! Цитировать | Ответить

Абрам писал(а):
РЕВЕРСИНГ Д500

Сделано.


12.10.2005 17:40

OfflineПрофайл | Отправить л/с | Отправить e-mail


SiNoptik

Участник форума


Рейтинг: 100% (1 / 0)


В форуме с: 10.2005
Сообщения: 35
Откуда: Tomsk
Re: Вопрос ветеранам прошивок! Цитировать | Ответить

Ну как так! Что же это происходит! Куда всё делось! Модераторы! Можно всё вернуть обратно? Даже личные сообщения все пропали! Там столько инфы было важной...


20.10.2005 07:56

OfflineПрофайл | Отправить л/с | Отправить e-mail | ICQ

Список форумов SAMSUNG-mobile.ru / Программирование для Samsung и реверсинг прошивок
На страницу 1, 2, 3, 4  След.

Переход в другой форум
Страница 1 из 4
Форум Samung-mobile.ru — сотовые телефоны Samsung