Сейчас на форуме: asfa, _MBK_, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Nec прошивка с чего начать?
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2008 12:09 · Поправил: Temi4
· Личное сообщение · #1

Здраствуйте. Я новичек в плане дизасм, асемблированием занимался.
Есть прошивка от Nec телефона в папке с ней куча файлов. файлы с прошивкой имеют расширение hex
Прошивку можно скачать --> здесь <-- http://necus.us/request103.html
Помогите пожалуйста разобраться с чего начать и как ее правильно дизасемблировать IDA'ой
Заранее благодарен.



Ранг: 9.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 24 мая 2008 15:59
· Личное сообщение · #2

Надо обязательно поменять тип процессора на ARM processor: ARM710a, а также ROM start adress и Loading adress. Но адреса загрузки прошивки зависят от линейки телефонов, надо смотреть конкретно



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2008 16:21 · Поправил: Temi4
· Личное сообщение · #3

В программе для каждого файла имеется текстовик. Видимо для программы закачки необходимо
вот примерно такое содержание:

[CPU]
ID=1 # CPU ID : 0->FF(HEX)
ADDRESS=E9 # CPU Address : 0->FF(HEX)

[RAM_IPLF]
IPL_STATUS=1 # 1:Main CPU 0:Sub CPU (DEC)
NAME= # RAM-IPLF Name : (ASCII) If Main CPU Then Nothing.
START_ADDRESS=C100000 # Start Address : 0->FFFFFFFF(HEX)
END_ADDRESS=C1FFFFF # End Address : 0->FFFFFFFF(HEX)
FILE=a_ram_iplf_0106.hex # Load File Name : (ASCII)

[PROGRAM]
TYPE=0 # Program Type : 0->FF(HEX)
START_ADDRESS=20000 # Start Address : 0->FFFFFFFF(HEX)
END_ADDRESS=1DFFFFF # End Address : 0->FFFFFFFF(HEX)
FILE=HEX_A025_43_04_bb_root.hex
SEL_STS=1 # Load Program Select Flag : 0=NotSelect,1=Select (DEC)
PAD_DATA=FF # Padding Data : 1->FF(HEX)

[FMEMORY]
NAME=28F128SK18 # Device Name : (ASCII)
WRITE_MAX_SIZE=16 # Write MAX Size [KByte] :1->16(DEC)
WRITE_MIN_SIZE=256 # Write MIN Size [Byte] : 0->1024(DEC)

А как имея прошивку посмотреть эти адреса??
Хочу всему научиться (Простите меня ламера, но все когда начинают и учаться, а хороший совет некогда не повредит.)



Ранг: 9.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 24 мая 2008 16:30
· Личное сообщение · #4

Судя по этому в телефоне прошивка начинается с 20000h и заканчивается 1DFFFFFh. Остальное отводится под "служебное" пространство
Загружай прошу в Иду, ставь ARM processor: ARM710a, ROM start adress = 20000, Loading adress = 20000
Если эти адреса не найдет, то можеш их не ставит

А для чего ты хочеш прошивку дизасемблировать?



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2008 16:41 · Поправил: Temi4
· Личное сообщение · #5

Дизасемблировать чтобы сделать руссификацию
Но еще и с кодом надо будет разбираться
mozaxaka спасибо огромное за помощь
Прости ты не против если я тебе в аську стукну?
может когда что спросить или посоветовать



Ранг: 9.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 24 мая 2008 17:00
· Личное сообщение · #6

Temi4, русификация в прошивке не хранится! На это есть отдельный языковой пакет. По крайней мере у SonyEricssonов. Даже если начать переводить в телефоне не будет русского шрифта , и начнется огромное смешение адресов. Так что с этим можно забить

Но можеш для начала посматреть "слова" в любом hex-редакторе, если найдеш, то еше не все потеряно
З.Ы: пока в аське меня не будет, может потом



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2008 19:24 · Поправил: Temi4
· Личное сообщение · #7

mozaxaka ну все равно языковой пакет - это часть прошивки вопрос только как его выделить и еще как бы проблема что с расширением hex 2 файла один маленький другой большой в каком из них что хранится вопрос интересный
А как с помощью hex искать "слова" они же не просто так написаны а в том же hex формате

вот кстати часть hex'а
3A 30 32 30 30 30 30 30 34 30 30 30 32 46 38 0D :020000040002F8.
0A 3A 31 30 30 30 30 30 30 30 31 30 33 35 30 30 .:10000000103500
45 41 36 37 33 36 30 30 45 41 43 30 33 36 30 30 EA673600EAC03600
45 41 36 38 33 36 30 30 45 41 44 32 0D 0A 3A EA683600EAD2..:

странно и вся прошивка так выглядит Набор значений точка точка двоеточие

Слов типо sms - 73 6D 73 не нашлось

Про Sony Erricsson много написано как патчи делать , читал но новичку сложно разобраться



Ранг: 33.7 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 мая 2008 21:06 · Поправил: Leatherfase
· Личное сообщение · #8

temi4,насколько я знаю,реверсить прошивку можно зная телефон и его внутренности на 100%.Где нибудь ошибешся в результате получиш полный труп после прошивки.



Ранг: 9.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 24 мая 2008 21:19
· Личное сообщение · #9

Значит это чистый код, данных там не будет. Языковой пакет будет хранится в другом месте.
Даже если теоретически посмтреть, чтобы заменить sms на "сообшения" будет лишние 6 байтов, все последуешее будет затираться предыдушим



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2008 22:33 · Поправил: Temi4
· Личное сообщение · #10

Leatherfase спасибо, а как начинать реверсить?
mozaxaka спасибо, но в прошивке полюбому есть свободное место куда можно поставить язык, а в прошивке чисто ссылку сделать на этот участок. Разве нет?



Ранг: 33.7 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 25 мая 2008 09:15
· Личное сообщение · #11

Temi4,начинай с чтения информации,спроси людей как и что здесь http://www.mobile-files.ru/ .



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 мая 2008 19:59 · Поправил: Temi4
· Личное сообщение · #12

Leatherfase а там меня еще куда нить пошлют ( ) Может все таки кому нить интересна эта тема еще и кто нить мне поможет и разбереться вместе со мной.

Или хотя бы будет помогать советами, скажет с чего начинатьь как и что разбирать...



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 мая 2008 20:16
· Личное сообщение · #13

Вот ту файлик есть для реверсинга наверно самое то подойдет
Там много инфы о прошивке

33a5_25.05.2008_CRACKLAB.rU.tgz - ACPU.TXT



Ранг: 9.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 26 мая 2008 13:06
· Личное сообщение · #14

Как писал Leatherfase, надо достать из телефона все другие файлы и уже в них искать что то покожее на яз. пакет, иначе тел можно убить Но такие шас вроде все плантые



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 мая 2008 15:58
· Личное сообщение · #15

mozaxaka спасибо Буду сам тогда разбираться. Может хоть ссылки на все возможные статьи по моему вопросу добавите, ну как бы я и сам поищу, но иной раз все не откопаешь...
если будут возникать вопросы или какие то успехи буду писать.
Да еще а нет случайно универсальной проги для сливания фулФлеша? чтобы самому указать адреса для слива? Ведь фулФлешь будет сто пудов бинарный? А тоя сомневаюсь в бинарности той прошивки которая у меня есть. - интересно какова вероятность (у новичка знающего совсем немного) на успех



Ранг: 13.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 25 июня 2008 00:24
· Личное сообщение · #16

Хм... увидел топик..хоть и старый но все же...

вот кстати часть hex'а
3A 30 32 30 30 30 30 30 34 30 30 30 32 46 38 0D :020000040002F8.
0A 3A 31 30 30 30 30 30 30 30 31 30 33 35 30 30 .:10000000103500
45 41 36 37 33 36 30 30 45 41 43 30 33 36 30 30 EA673600EAC03600
45 41 36 38 33 36 30 30 45 41 44 32 0D 0A 3A EA683600EAD2..:
Это что то наподобие S3 моторолловского формата прошивки... т.е. сначал адреса а потом данные...
Таким образом прошивку надо еще конвертануть в бинарик (т.к это не он) чтобы искать языковые ресурсы
Как проверить что правильно конвертанул?
В начала прошивки должны быть что то вроде векторов прерывания, вроде...




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 25 июня 2008 22:35
· Личное сообщение · #17

RusEm, кста, это похоже на S-Record, но закодировано чуть по другому... По едее, там должен быть chechecksum или в каждой записи или для всего образа. Вектора, кста, на разных архетиктурах в разных местах. На PowerPC яддрах это exception handlers и они в самом верху ажресного пространства.

Думаю что надо писать script/loader для IDA или конвертор в bin image.



Ранг: 13.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 26 июня 2008 01:04 · Поправил: RusEm
· Личное сообщение · #18

s0larian пишет:
Думаю что надо писать script/loader для IDA или конвертор в bin image.

Не спорю.... насчет NEC не скажу не сталкивался... я в основном занимаюсь самсунгами, сименсамии и китайскими телефонами.... но можно и NEC покопать... тем более для русификации
Ася в профиле, постучи если интересно

а S-record это и есть S3 ))))
Кстати если проц арм7 то вектора в начале вроде должны ))



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 октября 2008 20:55
· Личное сообщение · #19

Может с помощью проги FullFlash попробовать слить?? Там же сразу бинарник должен быть. Разве нет?



Ранг: 29.0 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 07 октября 2008 14:47
· Личное сообщение · #20

Насчет "Надо обязательно поменять тип процессора на ARM processor: ARM710a" немного поторопились:
проц в новых телефонах ставят арм9 как минимум, или даже 11 ветка. у них различие в расширенных коммандах обработки( может быть скажем DSP или еще ченить) бери повыше линейку, как правило, старшая модель поддерживает команды младщей. и посмотри в инете на каком арме конкретно твой тел.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2008 10:52
· Личное сообщение · #21

Temi4 пишет:
Может с помощью проги FullFlash попробовать слить?? Там же сразу бинарник должен быть. Разве нет?

Если хочешь разбираться с кодом, однозначно надо иметь образ Флеши. Для Nokia, Motorola, такие программы есть - должна быть и для твоего NECа.
Чтобы разобраться с кодом - прочти вначале вот это (см. аттач). Сам с него начал
Чтобы полностью понимать работу команд - грузи полный Technical Reference Manual c www.arm.com.
Если знаешь где в адресном пространстве находится твоя флеша - нет проблем - грузи с этого адреса. Если не знаешь, попробуй загрузить с нулевого и дизассемблируй код как ARM - если увидишь 8 джампов подряд - ты попал на самое начало - таблицу векторов.
Начинай всегда с поиска ARM команд. В HEX редакторе они выглядят как аккуратные столбцы вида:

xx xx xx Ex xx xx xx Ex (например, для Motorola Т190, little-endian)
или
Ex xx xx xx Ex xx xx xx (например, для Nokia 3310, big-endian)

Еще учти, что бывают big-endian и little-endian процессоры (см. пример выше). Так что если код не дизассемблируется, попробуй поменять endianess.

По началу понимать команды ARM довольно трудно. Рекомендую отладчик от Phytona: www.phyton.ru/files/cm-arm/cm-arm.exe. Он позволяет грузануть бинарник, шагать с любого места, менять регистры, память и т.д. Правда, я не смог заставить его нормально работать с big-endian кодом.

Вот вкратце все. Сам недавно патчил прошивку для Nokia 3310 v6.33 - не хотела на плату от 3410 садится


b08f_16.10.2008_CRACKLAB.rU.tgz - Disassembling_ARM.pdf


 eXeL@B —› Вопросы новичков —› Nec прошивка с чего начать?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати