motofan logo
22 страниц V « < 13 14 15 16 17 > »         
> 

Ковырнём Прошивку ..., Hex Workshop 4.0, Hiew etc...

puper
сообщение 4.4.2005, 15:21


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



RandomX
Цитата
Я сам и то лучше сделал, быстрее раз в 20, если надо - могу выложить


Да и я сам лучше сделал. Неясно только почему Part1 (если от нуля считать)
на 200 больше чем вычленяет прошивальщик ( в моём случае P2KFlash). В нём эти 200 байт идут отдельным файлом...

А свою прогу всё равно выкладывай.


Цитата
разложить это число
" 11823145941916446514690314500050400455024662194481817715418438557041820322734289
09890011957946150980589602953959112751256719731495098993655713709032459045266537
82569107413713350676232517817181096197654912904839291926811339932095007870787885
454476302964474574702429307332034331743839073902303658693917468638573 "


Это что-ли десятичное число? или HEX из S-Record
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 4.4.2005, 18:12


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(puper @ Понедельник, 4 Апреля 2005, 18:21)
RandomX
А свою прогу всё равно выкладывай.
*



Ну кстати действительно я не знаю почему P2kFlash делит эти 200 байт отдельно.
Может быть он просто "знает" это. Что такую-то кодовую группу надо поделить на части :)
Ну тут конечно, еще есть над чем подумать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 5.4.2005, 12:05


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
1. Инфа типа datashеet-ов на MC13777 и DSP56360.
2. А можно поподробнее о назначении RSA в С650?
Или абсолютный адрес любой процедуры алгоритма.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 5.4.2005, 12:22


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(KQ_44 @ Вторник, 5 Апреля 2005, 16:05)
Vilko:
1. Инфа типа datashеet-ов на MC13777 и DSP56360.
2. А можно поподробнее о назначении RSA в С650?
    Или абсолютный адрес любой процедуры алгоритма.
*


Даташит есть только часть описания его usb, и тот раздавать не могу, обещал...

а насчет абсолютных адресов, это пожалуйста:
3584 - процедура самого rsa алгоритма,входные данные:
R0 - указатель на (де)шифруемые данные
R1 - указатель на N ключа (в прошивке встроенный N - по 52A0)
R2 - размер данных
R3 - указатель на E или D ключа (встроенный E - по 529C)
(понятия N, E и D смотри в описании RSA алгоритма)

37CE - процедура расшифровки хеша и сравнение расшифрованных данных с реальным хешем (т.е. проверка целостности обл. памяти)

2380 - процедура собсно проверки блока подписей. (основная точка входа при проверке подписи прошивки)
указатель на блок подписей передается в переменной памяти по адресу 03FC2C08

назначение RSA в 650 и подобных аппаратах - исключительно проверка целостности и неизмененности прошивки, т.е. проверка цифровой подписи прошивки.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 6.4.2005, 11:58


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
Благодарствую!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 6.4.2005, 13:29


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Я доделал свою программку немного.
Теперь работает пересчет контрольной суммы на весь файл.
Таким образом можно сделать как достаточно безобидные вещи (я, например попробовал сменить дату выпуска прошивки на 1987 год :) ) так и не очень - у меня получилось заменить один ленгпак на другой.
Но! В заголовке пока что я ничего не изменял, тут еще надо поковырять, поэтому прошивать такой прошивкой возможно опасно для телефона!
Прикрепленный файл RandomSHX_002.zip   ( 176.44 килобайт ) Кол-во скачиваний: 262
Прикрепленный файл RandomSHX_002.zip   ( 176.44 килобайт ) Кол-во скачиваний: 262
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
4inut
сообщение 8.4.2005, 15:21


МотоОФФтопперрр
******

Группа: Пользователи
Сообщений: 815
Регистрация: 6.10.2004
Из: Россия \ Москва \ Юзао
Пользователь №: 15 540
Модель телефона: c650
Прошивка: 2FR

Рейтинг: 65



2Randomx
я правильно понял, мона разбить прошу на бины, чтото изменить, собрать в архив, рога подсчитает чек сумм и тел запуститься??
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 8.4.2005, 19:12


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(4inut @ Пятница, 8 Апреля 2005, 18:21)
2Randomx
я правильно понял, мона разбить прошу на бины, чтото изменить, собрать в архив, рога подсчитает чек сумм и тел запуститься??
*



Вообщем теоретически - в выложенной версии лучше так не делать.
Я сейчас работаю как раз над этим.
Новую версию я скоро выложу.
Она разбивает на части таким образом, каким это описано в header'е файла.
И собирает почти также. Единственное - пока никак не пойму каким же образом ведется подсчет контрольных сумм на уаждый бинарник из комплекта. Потому как для первого и последнего подситывается правильно, а для других - нет.
Но вот если надо просто исключить из прошивки, скажем, флекс (типа, а зачем заменять свой родной на новый, который все равно опять превратишь в свой бывший до прошивки) - это пожалуйста.
И все чексумы она подситает и прошится теоретически должна нормально. Вообщем, кое-что доделаю - и выложу.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
puper
сообщение 8.4.2005, 19:31


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



Ну а кто эту RSA подпись проверяет? Прошивальщик? Загрузчик? Сам ап-т при включении? Все прошивальщики которые мне попадались - это потомки PST. Может его поковырять?
И откуда взялось это число (см. выше). В HEXe оно длиной 128 байт = 1024 бита
- разложить на простые множители нет шансов. Может есть шанс обойти эту проверку....
И что этим числом подписывается
(вся прошивка - ?? не реально??) crc прошивки или её часть или какой другой там хэш?
И какой в С650 и V220 - проц - тот ли, что и в С350?
И RandomX расскажи где CRC бинариков, чтоб самому не искать , а то я уже
без злости не могу на эти файлы смотреть.... И ещё уйма вопросов..
Люди, помогите чайнику кипучему (мне) - делитесь кто-что знает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
puper
сообщение 8.4.2005, 20:03


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



И ещё - откуда это число (в смысле модуль RSA) вообще взялось. Оно одинаково для всех
Моторол? Или нет. Как мне его отыскать на V220?
Тут выше знающие люди обменивались абсолютными адресами? Это адреса в прошивке?
Какая там блин адресация? В SHX S3 запсиь содержит 32-битный адрес. Что это за адрес?
Абсолютный? Оnосительный? (если да, то от чего?)? Строка S7, завершающая кодовую группу, то ж по описанию содержит какой-то адрес. Так у меня только самый последний S7 c адресом, а все предыдущие с нулями.
Короче, вопросов много....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 9.4.2005, 5:07


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(puper @ Пятница, 8 Апреля 2005, 22:31)
Ну а кто эту RSA подпись проверяет? Прошивальщик? Загрузчик? Сам ап-т при включении? Все прошивальщики которые мне попадались - это потомки PST. Может его поковырять?
И откуда взялось это число (см. выше). В HEXe оно длиной 128 байт = 1024 бита
- разложить на простые множители нет шансов. Может есть шанс обойти эту проверку....
И что этим числом подписывается
(вся прошивка - ?? не реально??) crc прошивки или её часть или какой другой там хэш?
И какой в С650 и V220 - проц - тот ли, что и в С350?
И RandomX расскажи где CRC бинариков, чтоб самому не искать , а то я уже
без злости не могу на эти файлы смотреть.... И ещё уйма вопросов..
Люди, помогите чайнику кипучему (мне) - делитесь кто-что знает.
*



Вот описание заголовка SHX

все числа записываются как-бы в обратном порядке, т.е если число 03FD0000 - то в заголовке оно 0000FD03

Формат описания содержимых бинарников.
Начинается со смещения
000003B0 dword Количество N файлов в прошивке
Далее идут описания
1) RAMDLD - RAM Downloader
2) пустота длиной в один элемент (7*dword) - скорее всего это для Boot'a
3) CG0 - Code Group 0
...
N+1) CG[N-2] - Code Group N-2

Формат описания бинарника
dword Адрес, с которого записывается бинарник
dword Адрес, до которого записывается бинарник
далее идут первые 16 байт из бинарника

word Контрольная сумма
далее неизвестные word (в оcновном это нули)
возможно 8 - конец описания
2 - сдвоенный файл
хотя это просто предположение

Пока я не понял тольео последние 2 значения.
Если счиатть чексум для загрузцика RAM все получается нормально.
И для последнего файла тоже.
А вот для других - не совпадает.

По файлу.
s3 - это строки с 32-битным адресом (как я понимаю в памяти телефона)
s0 - это начало файла.
s7 - это конец файла.
они не меняются, кроме последнего s7 - там записывается чексум на весь файл
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 9.4.2005, 18:03


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Вот новая версия моей программки.
Изменения я уже пояснил выше.

Прикрепленный файл RandomSHX_005.zip   ( 182.11 килобайт ) Кол-во скачиваний: 269


Замечание: После удаления из заголовка любого элемента список не обновляется (над интерфейсом не работал еще) поэтому если удаяете что-либо не удаляйте это по несколько раз, потому что программа пока не проверяет, удален этот элемент или нет, и уменьшает номер количества файлов в прошивке - это проиведет к сбою.
Лучше сделать так - после удаления заново считывать заголовок (Header) чтобы ничего не напутать.
Позже, я конечно, сделаю нормальный интерфейс, но пока делать лучше так.
Прикрепленный файл RandomSHX_005.zip   ( 182.11 килобайт ) Кол-во скачиваний: 269
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
puper
сообщение 10.4.2005, 6:16


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



Randomx, вот твоя прога последней сборки уже отделяет 200 байт от самого большого бинарика.
Ты уже разобрался, что это? или вырезал их чисто механически?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 10.4.2005, 6:47


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(puper @ Воскресенье, 10 Апреля 2005, 9:16)
Randomx, вот твоя прога последней сборки уже отделяет 200 байт от самого большого бинарика.
Ты уже разобрался, что это? или вырезал их чисто механически?
*



Разобрался конечно. Все подобные нюансы описаны в заголовке файла.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 10.4.2005, 13:11


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Сегодня проделал эксперимент - удалил из проши 2FR все кроме легпака и RAMDLD и попробовал прошить.
Телефон лолго думал а потом выдал ошибу с чексумом.
После чего при включении запускался только boot loader и писалось service requiered.
Попмогла только прошивка полной нормальной версии прошивки.
Т.е. делаем вывод - т.к. чексум на ленгпак я не менял, то значит он зависит от количества файлов в прошивке.
Короче, есть над чем подумать :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
puper
сообщение 10.4.2005, 13:50


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



Цитата
Телефон лолго думал а потом выдал ошибу с чексумом.

А когда он долго думал и ругнулся, до прошивания или по окончании/рестарте?
То есть был ли сам процесс прошивания?
А прошиваьлщик на твою самодельную прошу не ругался?
Мне кажется что вся инфа в RAMDLD, то есть там сидит проверка этой RSA подписи. Хочу его посмотеть в IDA Pro, только не уверен что за проц - AMR ли?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 10.4.2005, 16:31


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(puper @ Воскресенье, 10 Апреля 2005, 16:50)
А когда он долго думал и ругнулся, до прошивания или по окончании/рестарте?
То есть был ли сам процесс прошивания?
А прошиваьлщик на твою самодельную прошу не ругался?
Мне кажется что вся инфа в RAMDLD, то есть там сидит проверка этой RSA подписи. Хочу его посмотеть в IDA Pro, только не уверен что за проц -  AMR ли?
*



Вообщем как было: прошивание запустилось.
Думаю - ну все, работает.
Ан, нет!
Кроче подозрительно долго он пршивал я когда fullflash заливал было быстрее раза в 4. А потом выдал ошибку:

15:02:21, April 10, 2005
Line: 3729
ERROR: Phone[0000]: Error Code Group 4 contains no Subscriber Unit checksum.
File: Y:\test_dev_usb\flash\code\flashdll\PST_FP_FlashThread.cpp

15:02:21, April 10, 2005
Line: 3729
ERROR: Phone[0000]: *********Flash FAILED!!!*********
File: Y:\test_dev_usb\flash\code\flashdll\PST_FP_FlashThread.cpp

И телефон престал включатся, точнее запускался только boot loader и писал, что обычно пишет + "service req'd"

При повторной попытке прошить уже нормальным ленгпаком выдало следующее.

15:04:04, April 10, 2005
Line: 3729
ERROR: Phone[0000]: Error Erasing Subscriber Unit. Error 0x0
File: Y:\test_dev_usb\flash\code\flashdll\PST_FP_FlashThread.cpp

15:04:04, April 10, 2005
Line: 3729
ERROR: Phone[0000]: *********Flash FAILED!!!*********
File: Y:\test_dev_usb\flash\code\flashdll\PST_FP_FlashThread.cpp

А при прошивки нормальной 2FR все пошло.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 11.4.2005, 6:11


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



puper
подпись проверяет начальный(встроенный в чип) загрузчик телефона при каждом включении аппарата, до того, как передать управление прошивке в флешке.
число это - это обычная N-составляющая RSA ключа, взялось из того самого встроенного загрузчика. да, длина его 1024 бита, разложить шансы его не велики, но почему не попытатся... :)
подписывается этим ключем SHA-1 хэш прошивки. хэшируется ВСЯ кодовая часть прошивки, так что обмануть загрузчик не получится. SHA1 хэш считается АППАРАТНО, так что происходит это весьма быстро(программно было-бы нереально просчитывать всю прошивку - слишком долго).
проц во всех моторах сейчас одинаковый - ARM7 (да и практически во всех других телефонах тоже).
различается остальное железо - периферия этого проца...

Randomx,
если ты хочешь менять состав прошивки - тебе надо еще править файл загрузчика(первый бинарник).
по смещению F8 в нем находится "карта бинарников", т.е. кодовых групп, идущих с этим загрузчиком.
это 16 записей(для 16ти код.групп) длиной по 2 dword'а (8 байт) на запись.
суть этой карты - какие диапазоны адресов флешки нужно стирать прошивать и прошивать этим загрузчиком.

поэтому у тебя телефон и не включился при убирании из прошивки всего, кроме лэнга - загрузчик-то остался старым и благополучно стер все, что прописано в его "карте", а новых блоков для этих адресов ты не залил в тело. :)


200 байт, отделяемых от "самого большого файла" - на самом деле от файла с начальным адресом 10080000 - это "карта памяти" телефона.
зачем ее отделяет в отдельный файл pst - непонятно, на практике это совершенно не нужно, ибо эта карта неотделимая часть прошивки и так-же закрыта сертификатом, т.е. менять ее нельзя.
при разбиении shx на бинарники нет смысла отделять эту часть в отдельный файл - только будет вносить дополнительную путаницу.

номера "кодовых групп" - фиксированы, т.е. загрузчик будет всегда CG0,
прошивка - CG1
флекс - CG2
код DSP - CG3
лэнг - CG4
загрузчик прошивки(бывает толлько в fullflash) CG5
PDS(зона безопасноси, бывает только в image/repair) CG6
DRM (пакет графики) CG15
подпись прошивки CG18


т.е. номер кодовой группы соответствует ее типу.

Советы и замечания по поводу проги:
1 - как я уже упоминал - не стоит отделять 200 байт карты памяти от CG1(самой прошивки), или во всяком случае сделать это "опциональным" - при распаковке shx "для изучения" это будет только мешать.
2 - включать в имена извлеченных файлов их начальный адрес - было бы очень удобно.
3 - на большом shx (R364_G_0B.D1.1AR_B_LP0003_DRM0001_GMIV180001AA0B7_image.shx, длина 33,8 Мб) прога распаковала только заголовок shx и сказала "ок", остальные файлы не распаковываются.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 11.4.2005, 15:59


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Народ сломал 512-битный RSA ключ за 7 месяцев - но их там было 1500 машин.
Я пытался слегка поиграться с ключом, посмотрел кучу алгоритмов факторизации.
Разобрался еще не во всех, но в большинстве это в том или ином виде тупое последовательное деление.

Если будете искать проги для работы с большими числами - пользуйте Pari,
UBASIC глючный, при вычислении корня из этого числа безбожно соврал.

Не думаю, что нам удасться разложить это число, разве что случайно.
Хотя есть интересные идеи:
1. Последнее число 3 можно получить умножая 1*3 или 7*9.
2. При выборе простых множителей для RSA рекомендуют выбирать числа близкого порядка.
3. Для малых простых чисел при последовательном делении их произведения
встречаются остатки от деления, которые лежат на одной прямой.
Ее наклон - 1.
А точка пересечения на 1 меньше разности этих простых чисел.
Для любопытства, проделал аналогичные вычисления с интересующим числом.
Нашел эту разность. Она на 2 порядка (153) меньше, чем корень из числа (155).
Когда искал сами числа, то там по ходу надо извлекать корень - а шиш!
(Не бейте меня ногами! Просто мне было интересно хоть немного
понять математику простых чисел. Жаль не хватает профессионального математического образования.)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 11.4.2005, 17:09


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(KQ_44 @ Понедельник, 11 Апреля 2005, 18:59)
Народ сломал 512-битный RSA ключ за 7 месяцев - но их там было 1500 машин.
Я пытался слегка поиграться с ключом, посмотрел кучу алгоритмов факторизации.
Разобрался еще не во всех, но в большинстве это в том или ином виде тупое последовательное деление.

Если будете искать проги для работы с большими числами - пользуйте Pari,
UBASIC глючный, при вычислении корня из этого числа безбожно соврал.

Не думаю, что нам удасться разложить это число, разве что случайно.
Хотя есть интересные идеи:
1. Последнее число 3 можно получить умножая 1*3 или 7*9.
2. При выборе простых множителей для RSA рекомендуют выбирать числа близкого порядка.
3. Для малых простых чисел при последовательном делении их произведения
встречаются остатки от деления, которые лежат на одной прямой.
Ее наклон - 1.
А точка пересечения на 1 меньше разности этих простых чисел.
Для любопытства, проделал аналогичные вычисления с интересующим числом.
Нашел эту разность. Она на 2 порядка (153) меньше, чем корень из числа (155).
Когда искал сами числа, то там по ходу надо извлекать корень - а шиш!
(Не бейте меня ногами! Просто мне было интересно хоть немного
понять математику простых чисел. Жаль не хватает профессионального математического образования.)
*



Лично мне хорощо запомнилось как в универе профессор (уж не знаю точно каких наук, вел мат. анализ) сказал, что нахождение простого числа самая сложная (ну или одна из самых сложных) операций (как раз применительно копьютерной безопасности). Найти эти числа практически невозможно. Если бы было иначе - не использовали бы.
Конечно, если вы сможетt соединть сотню тысяч компов в одну упряжку, то все может быть :) Хотя еще неизвестно, что проще - сделать такой суперкомпьютер, или сделать свой телефон :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 11.4.2005, 17:22


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(Vilko @ Понедельник, 11 Апреля 2005, 9:11)
Randomx,
если ты хочешь менять состав прошивки - тебе надо еще править файл загрузчика(первый бинарник).

Советы и замечания по поводу проги:
1 - как я уже упоминал - не стоит отделять 200 байт карты памяти от CG1(самой прошивки), или во всяком случае сделать это "опциональным" - при распаковке shx "для изучения" это будет только мешать.
2 - включать в имена извлеченных файлов их начальный адрес - было бы очень удобно.
3 - на большом shx (R364_G_0B.D1.1AR_B_LP0003_DRM0001_GMIV180001AA0B7_image.shx, длина 33,8 Мб) прога распаковала только заголовок shx и сказала "ок", остальные файлы не распаковываются.
*



Я так понимаю там указан сначала начальный адрес, а потом конечный? Че-т он только конечный из RAMDLD не совпадает с реальным.
Кстати, все же лучше называть загрузчик RAMDLD, а не CG0, поскольку PST его так обзывает, а ему наверно лучше видно :)

1) Лучше всеже опционально это сделать, ведь в заголовке четко прописано что CG0 - именно такой, 200 байт.

2) Наверное, лучше я сделаю, чтоб на выходе создавался списко, с адресами файлов, и прочей инфой.

3) Я даже незнаю, может там header битый или там как-то указана инфа не так. Ты его отдельно выложи, я помотрю, а то всю прошиву качать неохота :)
Вообще я и 2FR fullflash, и 27R reflash, и 0FR langpack, и 23R fullflash распаковывал без проблем.

Сообщение отредактировал Randomx - 11.4.2005, 19:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
pahan_tver
сообщение 11.4.2005, 18:09


Мастер Ритма
*****

Группа: Почётные мотофаны
Сообщений: 483
Регистрация: 15.6.2004
Пользователь №: 6 222
Модель телефона: Moto Z4 XT1980-3
Прошивка: 10 amazon alexa

Рейтинг: 400



off_topic;
Randomx,
Может ты знаешь это... Чтобы процитировать часть поста, достаточно выделить фразу и нажать на имя автора. Тогда цитата добавится в окно ответа в самом низу страницы.
А то получается, что цитата больше ответа
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 11.4.2005, 19:19


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(pahan_tver @ Понедельник, 11 Апреля 2005, 21:09)
off_topic;
Randomx,
Может ты знаешь это... Чтобы процитировать часть поста, достаточно выделить фразу и нажать на имя автора. Тогда цитата добавится в окно ответа в самом низу страницы.
А то получается, что цитата больше ответа
*



Не знал, кстати :)
Только я все равно так и не понял че сделать нужно, ну да ладно :)

Теперь по делу.
Один вопрос отменяется, чето я сразу не подумал, что стирать то всю память надо :)
Вот что я понял из загрузчика

Упорядочено по адресу:

DSP код: 10040000-1007FFFF (262144 байт) CG3
Прошивка: 10080000-1091FFFF (9043968 байт) CG1
Графика: 10920000-109DFFFF (786432 байт) CG15
Лэнгпак: 109E0000-10B1F7FF (1308672 байт) CG4
Подпись: 10B1F800-10B1FFFF (2048 байт) CG18
Флекс: 10B20000-10FFFFFF (5111808 байт) CG2

Итого 16515072 байт

Вообщем флекс как-бы особняком стоит.
И его полный размер 5 метров.
Вот вопрос к Vilko, а возможно ли получить доступ к "зарытым" файлам? Получается мы не видим 1.5 мегов. Они, как я понимаю лежат в папочках типа /a/motorola/ (нашел упоминания этой папки в прошивке)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
JenFA
сообщение 11.4.2005, 20:19


Ветеран
*****

Группа: Пользователи
Сообщений: 538
Регистрация: 10.7.2004
Из: Одесса
Пользователь №: 7 633
Модель телефона: C650
Прошивка: 31R

Рейтинг: 134.5



Цитата(Randomx @ Понедельник, 11 Апреля 2005, 21:19)
/a/motorola/
*



Это как-бы псевдоним /a/mobile/, если залить файл в /a/motorola/, то он окажется в /a/mobile/, правда, на чтение не работает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
pahan_tver
сообщение 11.4.2005, 20:57


Мастер Ритма
*****

Группа: Почётные мотофаны
Сообщений: 483
Регистрация: 15.6.2004
Пользователь №: 6 222
Модель телефона: Moto Z4 XT1980-3
Прошивка: 10 amazon alexa

Рейтинг: 400



off_topic;
Randomx,
Внизу страницы есть поле "Быстрый ответ". Отвечать будем оттуда. Например, хочу я процитировать твой пост №584. Но только пару строк. Выделяю их, жму на твой ник (слева от текста сообщения над аватаром). Далее смотрю в поле "Быстрый ответ". Там появилось:

"[ quote=Randomx,Понедельник, 11 Апреля 2005, 22:19 ]
Не знал, кстати
Только я все равно так и не понял че сделать нужно, ну да ладно [ /quote ] "


Это будет цитата. Потом пишу свой текст и жму "Отправить". Всё, пост добавлен.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 12.4.2005, 6:17


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата
Упорядочено по адресу:

DSP код: 10040000-1007FFFF (262144 байт) CG3
Прошивка: 10080000-1091FFFF (9043968 байт) CG1
Графика: 10920000-109DFFFF (786432 байт) CG15
Лэнгпак: 109E0000-10B1F7FF (1308672 байт) CG4
Подпись: 10B1F800-10B1FFFF (2048 байт) CG18
Флекс: 10B20000-10FFFFFF (5111808 байт) CG2

Итого 16515072 байт

Вообщем флекс как-бы особняком стоит.
И его полный размер 5 метров.
Вот вопрос к Vilko, а возможно ли получить доступ к "зарытым" файлам? Получается мы не видим 1.5 мегов. Они, как я понимаю лежат в папочках типа /a/motorola/ (нашел упоминания этой папки в прошивке)

тогда уж добавлю:

загрузчик 10000000-1000FFFF - CG5 (не начальный, встроенный в чип, а тот, что в обычном флеш-режиме запускается)
зона безопасности 10010000-1001FFFF - CG6
panic данные 10020000-1003FFFF (в прошивку не заливаются, появляются в процессе работы. неправильной. :) )

а почему флекс особняком? вполне нормально, сразу после подписи идет....
просто он идет в конце, ибо если размер флешки больше, теоретически его можно увеличить.

а с чего ты взял, что есть какие-то "закрытые файлы"и мы их не видим? и не видим 1,5 мега?
просто флекс - это не только файлы, но еще и симы, которые тоже место занимают.
да к тому-же флекс - это та-же файл-система(или база данных, что по сути одно и то-же) и кроме полезных данных место тратится еще и на оглавление/индексы.
да еще есть такая штука, как фрагментация. тоже место жрет... теоретически, если слить/затереть все файлы в теле, а потом влить заново - места станет чуть больше... фрагментация уменьшится.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 12.4.2005, 7:14


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Цитата(Vilko @ Вторник, 12 Апреля 2005, 9:17)
а с чего ты взял, что есть какие-то "закрытые файлы"и мы их не видим? и не видим 1,5 мега?
просто флекс - это не только файлы, но еще и симы, которые тоже место занимают.
*



Ну в принципе правильно.
Я так просто прикинул, максимум люди освобождают 3.5 метра.
А флекс 5. Вот и подумал, а куда остальное то? :)

Вот еще интересно, почему у них адресация c 10000000 начинается.
Как будто еще есть где-то FFFFFFF памяти :)

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

puper: Неплохо! Осталось еще запаковщик с такой же скоростью сделать :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 12.4.2005, 7:27


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(Randomx @ Вторник, 12 Апреля 2005, 11:14)
Ну в принципе правильно.
Я так просто прикинул, максимум люди освобождают 3.5 метра.
А флекс 5. Вот и подумал, а куда остальное то?  :)

Вот еще интересно, почему у них адресация c 10000000 начинается.
Как будто еще есть где-то FFFFFFF памяти :)

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

puper: Неплохо! Осталось еще запаковщик с такой же скоростью сделать :)
*


есть еще 00000000-001С0000 - это встроенный загрузчик.
03FC0000-03FFFFFF - это быстрый RAM (оперативка, встроенная в чип)
а 10000000 как база выбран просто для удобства - круглое число, адресация проще. :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 12.4.2005, 14:54


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
00000000-001С0000 - только ли загрузщик???
В прошивке есть враперы на эту область.

QUOTE+Vilko:
На сайте ARM есть описание модуля обработки прерываний.
Так там в области FFFFFXXX-FFFFFFFF лежит таслица смещений.
Кто-то ранее говорил, что RadioComm нашел в этой области данные.

"Графика: 10920000-109DFFFF (786432 байт) CG15" - что понимается под графикой?
Шрифты? Или встроенная графика?

Во флексе действительно есть фрагментация. И кроме того очень много занимают заголовки.
Там ведь файл не лежит сплошняком, а побит на куски по несколько сотен байт (по сколько сейчас не помню).
Сверху иногда 2 заголовка, и снизу иногда 2 заголовка.


Randomx:
Профессора, они конечно умные люди. Но дуракам иногда везет!!!
Как говорит мой босс-академик дано жить своим умом.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 13.4.2005, 13:15


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



KQ_44,
00000000-001C0000 - там начаьный загрузчик, blank-флеш-загрузчик, все низкоуровневые процедуры, осуществляющие rsa и 3des шифрование и sha-1 хеширование и много чеего еще по мелочи... нечто типа bios :)

насчет прерываний... в arm7 релизе они вроде в начале памяти лежат. 40h байт начиная с 00000000

"графика" - это пакет гифов, используемых в меню телефона... тех самых, что на ранних моделях прямо в файлах валялись.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 13.4.2005, 14:21


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
Извини, не правильно сформулировал.
IRQ - это общее железное прерывание.
Поскольку информация о том как разделяются INTx в NEPTUNE нет, остается только надеяться на обломизм Motorol-ы.
Под ARM предложили железный обработчик множественного IRQ и у них смещения для разних INT-ов лежат в последних адресах памяти.

Проверить это не могу, супруга отрицательно относится к моим экспериментам с ее мобилой.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 14.4.2005, 7:01


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(KQ_44 @ Среда, 13 Апреля 2005, 18:21)
Vilko:
Извини, не правильно сформулировал.
IRQ - это общее железное прерывание.
Поскольку информация о том как разделяются INTx в NEPTUNE нет, остается только надеяться на обломизм Motorol-ы.
Под ARM предложили железный обработчик множественного IRQ и у них смещения для разних INT-ов лежат в последних адресах памяти.

Проверить это не могу, супруга отрицательно относится к моим экспериментам с ее мобилой.
*


уже проверял...
1 - память по верхним адресам похоже не читается.
2 - не нашел ни одного обращения к подобным адресам в прошивке/загрузчике. хотя казалось быпрерывания одними из первых инитятся.
3 - цитата из доки по арм:
Address - Exception - Mode on entry
0x00000000 - Reset - - Supervisor
0x00000004 - Undefined instruction- Undefined
0x00000008 - Software interrupt - Supervisor
0x0000000C - Abort (prefetch) - Abort
0x00000010 - Abort (data) - Abort
0x00000014 - Reserved - Reserved
0x00000018 - IRQ - IRQ
0x0000001C - FIQ - FIQ

соответственно по прерыванию IRQ/FIQ управление передается на адреса 18/1С и оттуда jmp - на обработчик.
насколько я знаю, аппаратная обработка многовекторного IRQ в arm, используемом в neptune не реализована.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 14.4.2005, 14:16


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
Ссылок на эту область я тоже не наше.
Спасибо за цитату, я это уже видел.
Тогда может знаеш:
1. Каким образом при вызове IRQ/FIQ определяется INT его вызвавший?
2. По смещению 0х18 находится код LDR PC, =0x3Fчто-то-там.
Причем из найденых мной ссылок на этот адрес туда грузят или 0хВЕХХ или 0хFEXX и в 0x3Fчто-то-там+4 - адрес. Что-то осмысленного из этого не получается (ни в ARM ни в Thumb)! Как происходит переход от 0х18 к телу обработчика прерывания?

Vilko:
Какова версия Intel FDI?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 14.4.2005, 14:49


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(KQ_44 @ Четверг, 14 Апреля 2005, 18:16)
1. Каким образом при вызове IRQ/FIQ определяется INT его вызвавший?
2. По смещению 0х18 находится код LDR PC, =0x3Fчто-то-там.
Причем из найденых мной ссылок на этот адрес туда грузят или 0хВЕХХ или 0хFEXX и в 0x3Fчто-то-там+4  - адрес. Что-то осмысленного из этого не получается (ни в ARM ни в Thumb)! Как происходит переход от 0х18 к телу обработчика прерывания?

Vilko:
Какова версия Intel FDI?
*


1 - в чипсете neptune есть свой irq контроллер, базовый адрес - 29890000
номер вызывающего снимается обработчиком IRQ с регистра base+40 (+44 для FIQ) и дальше по таблице - передается выполнение.
2 - по смещению 18 находится LDR PC, 03FC3604, где в свою очередь находится LDR PC, .... адрес уже в прошивке.
совершенно нормальный код... у меня это E5 9F F0 28 ...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
puper
сообщение 14.4.2005, 20:35


MotoSHXCoder
****

Группа: Разработчики
Сообщений: 253
Регистрация: 16.3.2005
Из: Брест
Пользователь №: 38 940
Модель телефона: nokia :)

Рейтинг: 153.5



Тут заговорили про прерывния...
У меня мысль какая-то не совсем чёткая, но выскажу - во время прошивки прерывания в теле скорее всего запрещены, если в это время вшить куда-то код и установить на него прерыание, так чтобы он (interrup handler) корректировал стэк и возврат из прерывния происходил уже в другое место... смысл - обойти это долбаную проверку подписи ...
Или
Цитата
1 - в чипсете neptune есть свой irq контроллер, базовый адрес - 29890000
этот чипсет заберёт при включении прерывания на себя и на время проверки не даёт процу дышать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 15.4.2005, 5:53


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(puper @ Пятница, 15 Апреля 2005, 0:35)
Тут заговорили про прерывния...
У меня мысль какая-то не совсем чёткая, но выскажу - во время прошивки прерывания в теле скорее всего запрещены, если в это время вшить куда-то код и установить на него прерыание, так чтобы он (interrup handler) корректировал стэк и  возврат из прерывния происходил уже в другое место... смысл - обойти это долбаную проверку подписи ...
Или  этот чипсет заберёт при включении прерывания на себя и на время проверки не даёт процу дышать?
*


в флеш-режиме контроллер irq вообще выключен.
его инициализирует уже сама прошивка, далеко после проверки подписи.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 15.4.2005, 14:47


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
Во! А говорил ничего типа не знаю, окромя USB!
И откуда столько информации нагреб?

А у меня по 03FC3604 муть!

Надеюсь, еще не затеррорезировал вопросами?
Если нет, то насколько я понимаю, программа в CPU ROM для загрузки прошивки предназначена для загрузки прошивки в чистую флешку?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 15.4.2005, 17:51


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



KQ_44,
по IRQ - это найденная копанием и эксперементально проверенная инфа.
такой у меня еще много - почти все железо опознано... :)

программа в ROM для загрузки прошивки, так-же как и загрузчик по адресу 10000000 - предназначены всего-лишь для загрузки программы прошивки (она-же ramdld, она-же CG0)в оперативку по адресу от 03FD0000 по 03FEFFFF и запуска ее там. все остальное - стирание флешки, прошивка нового кода - делает уже загруженная программа.

hobbit19,
почитай, что такое RSA. вопросы отпадут...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
4inut
сообщение 15.4.2005, 19:41


МотоОФФтопперрр
******

Группа: Пользователи
Сообщений: 815
Регистрация: 6.10.2004
Из: Россия \ Москва \ Юзао
Пользователь №: 15 540
Модель телефона: c650
Прошивка: 2FR

Рейтинг: 65



2Vilko,
а ты знаешь по каким адресам в прошивке моторолы с650 находиться Java Virtual Machine
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 16.4.2005, 12:27


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 2.3.2005
Из: Киев
Пользователь №: 37 969
Модель телефона: C650=>E1

Рейтинг: 10.5



Vilko:
Ну Маньяк, Маньяк!

Я знаю что делает процедура в ROM. Просто несколько странно наличие 2 процедур, выполняющих аналогичную функцию (хотя по несколько раз процедуры сравнения строк и копирования блоков встречаются).
Меня просто интересовали условия, при которых вызывается процедура в ROM.

Насколько я понимаю, кусок кода проганяется через алгоритм вычисления хеша и полученный хеш шифруется RSA. На каком этапе ломать хеш?

Еще одна мысль. В описании мотороловских процов встречаются упоминания о ПОДМЕНЕ ROM.
Насколько я смог понять, при проблемах с кодом в ROM некий блок в ROM можно подменить кодом из флеша.
Не встречалось ли тебе что-то это-го типа в процесе реверсинга?
Может имеет смысл сравнить ROM нескольких фонов?

puper:
Клиента на Asm-е я то напишу. Да и описания алгоритмов наличиствуют (NumberFieldSieve тоже).
Не в этом проблема. Делать это тупо влоб, набирая огромное кол-во машин нестоит.
Надо найти максимум всего для упрощения этого процесса.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ковырнём Прошивку ..., Hex Workshop 4.0, Hiew etc... · Патчи и всё для них · Forum
 

22 страниц V « < 13 14 15 16 17 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6.8.2025, 21:33

Форум живёт: