motofan logo
6 страниц V < 1 2 3 4 > »         
> 

Учимся Патчить Прошивку., Дисассемблируем ARM.

Arkasha18
сообщение 24.11.2005, 21:32 Закрепленное сообщение!



****

Группа: Администраторы
Сообщений: 242
Регистрация: 27.4.2004
Из: Санкт-Петербург
Пользователь №: 2

Рейтинг: 249.5



Всем привет.
И так будем учиться дисассемблировать прошивку. Тут все просто не чего сложного.

Я не буду объяснять как SHX разобрать, надеюсь все знают. Единственное условие… CG0(MemoryMap) должна быть слита с прошивкой, а то не чего не выйдет, т.е. один файл д.б.
--------------------------
ссылка на программу IDA Pro Advanced https://motofan.ru/soft/?action=view&id=246&parent=5
Запускаем IDA , выбираем файл прошивки (CG1), потом выбираем Processor type – ARMB, жмем ок.
Тут ставим галки на Create RAM section и Create ROM section.
Выставляем адреса:
RAM start address - 0x03FC0000
RAM size - 0x40000
ROM start address - 0x10080000
ROM size - 0x1F80000
Loading address - 0x10080000
Остальное оставьте так как есть.
Жмем Ок, и ждем.


По хорошему теперь еще оперативку будет правильно сделать, идем в меню:
Edit>segments>create>segment
Пишем:
Segment name – любое придумайте;
Start address - 0x12000000
End address - 0x12800000
Base – 0

Теперь переходи на сегмент ROM (жмем на Клаве ”g” пишем 10080000, должны перескочить на 10080000 адрес ).
Объявляем dword (жмем Alt-D, потом на кнопку Double word).
у меня это вылезло это
Код

ROM:10080000                 DCD 0x10BCD3D0

Появилось (оранжевым цветом).
Теперь жмем "O" (Буква латинская О ), должен появиться указатель на точку входа
у меня это вылезло это
Код

ROM:10080000                 DCD byte_10BCD3D0

Встаем на этот (byte_10BCD3D0) адрес курсором и жмем на Enter или просто двойной щелчок мышкой по этому адресу, вы перепрыгнете на адрес (10BCD3D0).

И так мы сейчас на 10BCD3D0.
Теперь сморим. ARM умеет работать в 2х режимах:
ARM - режим 32хразрядных опкодов и
THUMB - режим 16тиразрядных опкодов.
Для самой иды режим задается младшим битом адреса опкода.
т.е. если адрес например был бы 10A01D18 - то это был бы опкод в режиме ARM по адресу 10A01D18
а если адрес 10A01D19 то это опкод по адресу 10A01D18 в режиме THUMB
в ARM режиме набор команд более гибкий, но в THUMB за 1 цикл выполняется 2 команды - он быстрее.

Это мне так Vilko объяснял…я конечно же не Х.. не понял, так что буду говорить своими словами.
Нам сейчас надо задать ИДЕ режим в котором мы будем работать.
Мы стоим на адресе 10BCD3D0, если мы посмотрим на этот адрес в двоичной системе исчисления, то будет видно что это 000100000101111001101001111010000, так вот если последний байт – 0, то значит режим ARM, а если 1 – THUMB.
Теперь говорим идее в каком мы режиме будем работать:
Если THUMB то надо встать на один адрес выше, т.е если стояли например на 10BCD3CF этот адрес говорит что режим THUMB, значит встаем на один адрес выше (10BCD3CE) и
жмем (Alt+G) , выбираем ”T”,а в поле Value ставим 1 (режим THUMB).

А если мы бы определили что режим ARM, то на один адрес выше вставать не надо! Просто на этом же адресе жмем (Alt+G) , выбираем ”T”,а в поле Value ставим 0 (режим ARM).

И так…фух…устал уже (
У меня получилась такая картина:
Код

ROM:10BCD3CC                 DCB 0xE7; ч
ROM:10BCD3CD                 DCB 0xF9; •
ROM:10BCD3CE                 DCB    0;  
ROM:10BCD3CF                 DCB    0;  
ROM:10BCD3D0                 CODE32
ROM:10BCD3D0 byte_10BCD3D0   DCB 0xE3        ; DATA XREF: ROM:10080000 o
ROM:10BCD3D1                 DCB 0x21; !
ROM:10BCD3D2                 DCB 0xF0; Ё
ROM:10BCD3D3                 DCB 0xD1; T

У меня режим ARM !
Теперь встаем курсором на ROM:10BCD3D0 и жмем на Клаве ”c” (объявляем код). (кнопку С надо давить на адресе, около которого появилсяь надпись CODE16 или CODE32 в зависимости от режима )
Должен появиться АСМ примерно такого плана.
Код

M:10A01DA4; ---------------------------------------------------------------------------
ROM:10A01DA4                 CODE16
ROM:10A01DA4                 LDR     R1, =0x28880020; DATA XREF: ROM:10BCD424o
ROM:10A01DA6                 LDR     R0, =0x2201
ROM:10A01DA8                 PUSH    {R4,R5,R7,LR}
ROM:10A01DAA                 STMIA   R1!, {R0}
ROM:10A01DAC                 LDR     R0, =0x3011
ROM:10A01DAE                 MOV     R5, #0
ROM:10A01DB0                 STR     R0, [R1]
ROM:10A01DB2                 MOV     R0, #3
ROM:10A01DB4                 ADD     R1, #4
ROM:10A01DB6                 LSL     R0, R0, #0x11
ROM:10A01DB8                 STMIA   R1!, {R0,R5}
ROM:10A01DBA                 MOV     R0, #0

Собственно и все…дальше только остается объявлять код (вызов unk_address)…..и менять режим….режим меняется только после оператора BX.

Ссылка на литературу по ARM.
Краткий справочний по командам ARM. (Это от ARM9 в нашем ARM7 многих команд нет, учтите это)

P.S.
Задавайте вопросы, я понимаю что не чего не понятно, так что не стесняйтесь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KOPAY
сообщение 22.1.2006, 16:28


Новичок
*

Группа: Пользователи
Сообщений: 17
Регистрация: 11.4.2005
Пользователь №: 40 532
Модель телефона: E398

Рейтинг: 1



второе конечно же.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 23.1.2006, 9:19


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

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

Рейтинг: 921



Цитата(bad-rustamka @ Пятница, 20 Января 2006, 21:42)
Подскажите плз адрес точки входа в прошу 6fr, а то ИДА выдаёт полнейшую бедиберду, если делать по мануалу, написанному выше
*



Попробуй 10BE28BC
Скорее всего поможет.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 24.1.2006, 21:44


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

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

Рейтинг: 1116



KOPAY, ну, возможно и это. причем разными способами...
1 - проще, но менее аккуратно: в телефоне есть tci-команда MEMACC, дающая доступ к оперативке в процессе работы. а в оперативке есть таблицы задач, вектора прерываний и прочее. продолжать надо? ;)
2 - сложнее, но "правильнее": добавление патчем в обработчик TCI новой команды, реализующий выделение памяти, загрузку в оперативку и запуск там кода(опционально - добавление этого кода в список работающих процессов телефона).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vscz
сообщение 3.2.2006, 22:31


Интересующийся
**

Группа: Пользователи
Сообщений: 84
Регистрация: 23.11.2005
Из: Н.Новгород
Пользователь №: 59 390
Модель телефона: E398. вроде
Прошивка: MS 79R 1.5 Pro

Рейтинг: 3.5



Извините, а чем кроме айды чем ещё можно пользоваться. Я лично Хайвив люблю, лежит на этом сайте --> КрекЛаб
Vilko, если сможешь, перебей хайвив под мобилу, чтоб мог всё необходимое делать
(блин тупею, о чем прошу, ну и ладно :) )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Lezhik
сообщение 2.3.2006, 10:38


Интересующийся
**

Группа: Пользователи
Сообщений: 44
Регистрация: 31.8.2005
Пользователь №: 50 179
Модель телефона: e398
Прошивка: R373

Рейтинг: 3.5



господа, кто-нибудь пользует иду 4.51 ?
мож там какие лишние крыжики выставить/убрать надо ?
у меня адрес смещения (т.е. DWORD по адресу 10080000h) в любой прошивке (42-48) получается 11FE0000h :(
CG1 вместе с MemoryMap (одним файлом), вобщем, чего перечислять - всё изложенное в 1-ом посте, проделано.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 6.3.2006, 11:42


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Я тут кстати статейку одну нашёл, про дизасм прошивки. Там рассказывается на примере гнусмаса х100, но есть линки на полезные для нас скрипты к ИДЕ. Читать здесь
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Stigmata
сообщение 21.3.2006, 22:23


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 21.3.2006
Из: Беларусь, Минск
Пользователь №: 75 252
Модель телефона: V635
Прошивка: R474_G_08.48.6FR_Patched

Рейтинг: 0



Для прошивки 6FR V635 пробовал по совету Random'a точку входа 10BE28BC. Завтра напишу что вышло. Я занимаюсь исследование прошивки на мобилфане. Но там нет поддержки и мало толковых людей. Сегодня случайно наткнулся на этот форум и нашел много полезной информации. Кстати, скрипт который писали раньше подойдет для 6FR? С выравниванием в 32 бита, значит адрес начала например 1000, а конца 1004 или 1008?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 22.3.2006, 13:23


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Stigmata,
Лучше АРМ функции скриптом не искать, только хуже будет. А вот THUMB можно. Я когда скрипт запускал, об адресах не заботился, просто указал ему в качестве стартового начальный адрес флехи, а в качестве конечного - конечный флехи, и всё!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Stigmata
сообщение 23.3.2006, 4:15


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 21.3.2006
Из: Беларусь, Минск
Пользователь №: 75 252
Модель телефона: V635
Прошивка: R474_G_08.48.6FR_Patched

Рейтинг: 0



Я вот еще не много не понял насчет THUMB и ARM функций. Точнее их объявление. Вот смотрите, для примера есть опкод по адресу 10BE28BC (просто для примера), берем последний байт BC в двоичной системе это 1011 1100, значит опкод ARM. И объявляем этот адрес как ARM. Потом следующий опкод по адресу 10BE28BD, последний байт BD, двоичная система - 10111101. Значит Thumb. Но при объявлений Thumb надо перейти на один адрес вверх, то есть на 10BE28BC, а он уже у нас объявлен как ARM. То есть у меня получилось что весь код THUMB. Объясните пожалуйста как делать правильно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 23.3.2006, 8:26


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Заусти приложенный скрипт. В качестве начального адреса указывай 10080000, а в качестве конечного - 12000000, вроде в е398 так было :) Он сам найдёт все ТУМБ функции, а также некоторые АРМ функции ;)
з.ы. Скрипт для ИДЫ
Прикрепленный файл THUMB_Big_Endian.rar   ( 438 байт ) Кол-во скачиваний: 271
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Stigmata
сообщение 23.3.2006, 16:20


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 21.3.2006
Из: Беларусь, Минск
Пользователь №: 75 252
Модель телефона: V635
Прошивка: R474_G_08.48.6FR_Patched

Рейтинг: 0



bad-rustamka, Спасибо все получилось. Только для 6fr надо указывать конечный адрес не 12000000, а 11F80000. (0x10080000+0x1F00000=11F80000). Так, дальше. Прошивка вся дизассемблировалась. Есть один вопрос. В середине, и особенно в конце есть большие куски данных, которые не определены никак. Структура их такова:

Код

ROM:102898FE                 DCB 0x55; U
ROM:102898FF                 DCB 0x53; S
ROM:10289900                 DCB 0x42; B
ROM:10289901                 DCB 0x20
ROM:10289902                 DCB 0x52; R
ROM:10289903                 DCB 0x53; S
ROM:10289904                 DCB 0x32; 2
ROM:10289905                 DCB 0x33; 3
ROM:10289906                 DCB 0x32; 2
ROM:10289907                 DCB    0
ROM:10289908                 DCB 0x49; I
ROM:10289909                 DCB 0x52; R
ROM:1028990A                 DCB 0x44; D
ROM:1028990B                 DCB 0x41; A
ROM:1028990C                 DCB    0

То есть идет строка, потом завершающий ноль (я имею ввиду не \n, а байт 0). Как это все грамотно объявить как данные, чтобы потом можно было найти по cross reference (надеюсь все знают что такое перекрестная ссылка) где эти данные в коде используются.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Stigmata
сообщение 23.3.2006, 16:26


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 21.3.2006
Из: Беларусь, Минск
Пользователь №: 75 252
Модель телефона: V635
Прошивка: R474_G_08.48.6FR_Patched

Рейтинг: 0



Забыл одну вещь, в которой новички могут сделать ошибку. Пример:
Код

ROM:10289948                 DCB 0x53; S
ROM:10289949                 DCB 0x4D; M
ROM:1028994A                 DCB 0x41; A
ROM:1028994B                 DCB 0x52; R
ROM:1028994C                 DCB 0x54; T
ROM:1028994D                 DCB 0x20
ROM:1028994E                 DCB 0x41; A
ROM:1028994F                 DCB 0x55; U
ROM:10289950                 DCB 0x44; D
ROM:10289951                 DCB    0


Новички могут подумать, что строка заканчивается по адресу ROM:1028994D, а дальше идет еще одна, другая. На самом деле нет, просто 0x20 = пробел, а строка всегда завершается нулем (нулевым байтом)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 24.3.2006, 7:38


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Stiqmata,
А какой вопрос собсно? Про ссылки? Понимаешь ли, сейчас у тебя есть дизасм отнюдь не всей прошивки, очень много АРМ кода так просто не найдёшь. Так вот, если бы был код, который обращается к той строке, то она сама пометилась бы как данные для той процедурки ;) И ещё, у тебя эти строки отображаются в List of strings? Там есть параметры поиска строк, попробуй настроить, лучше будет ;)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Dr. Medic
сообщение 14.4.2006, 12:18


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 6.12.2005
Пользователь №: 61 026
Модель телефона: E398
Прошивка: R373_G_0E.30.42R

Рейтинг: 0



Вопрос не совсем в тему. Один мой знакомый на тел. с 650 дизасемблировал прошивку и вместо стандартного кодека вставил кодек ogg. Возможно ли вставить такой же в прошивку e 398?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lv333
сообщение 14.4.2006, 12:52


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

Группа: Пользователи
Сообщений: 656
Регистрация: 11.7.2005
Из: Украина, Киев
Пользователь №: 45 916
Модель телефона: Motorola Defy+
Прошивка: СМ 10

Рейтинг: 199.6



Цитата(Dr. Medic @ Пятница, 14 Апреля 2006, 15:18)
Вопрос не совсем в тему. Один мой знакомый на тел. с 650 дизасемблировал прошивку и вместо стандартного кодека вставил кодек ogg. Возможно ли вставить такой же в прошивку e 398?
*



Извини конечно, но помоему твой знакомый гонит :)
Для того что бы это зделать надо переписать прошивку заново по сути off_topic;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 15.4.2006, 15:48


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

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

Рейтинг: 921



Кодеки вообще в DSP находятся, так что твой знакомый говорит не правду.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Алекс75
сообщение 15.4.2006, 20:04


Мото-реаниматор
******

Группа: Почётные мотофаны
Сообщений: 1 188
Регистрация: 29.12.2004
Пользователь №: 30 882
Модель телефона: XT502
Прошивка: Android 2.2
Победитель конкурса 2008

Рейтинг: 763



Возможно вопрос немного не в тему.Но почему бы не начать с простого.Например звук и видео,а конкретнее их редактирование.Ведь размер например gain_table 000003E7 вероятно его исходник получить проще? huh.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 16.4.2006, 4:22


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Алекс75,
что ты хотел этим сказать? Типа найти место в прошивке, где идёт декодирование аудио\видео? Я над этим 2 месяца бьюсь, вроде нашёл, но ничего важного
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Алекс75
сообщение 16.4.2006, 16:07


Мото-реаниматор
******

Группа: Почётные мотофаны
Сообщений: 1 188
Регистрация: 29.12.2004
Пользователь №: 30 882
Модель телефона: XT502
Прошивка: Android 2.2
Победитель конкурса 2008

Рейтинг: 763



bad-rustamka,
Нет я имел ввиду не совсем это.Всем известно что данные файлы отвечают за настройки звука(gain_table) и настройки камеры(param_table) но на данный момент кроме как наугад,методом тыка ничего исправить нельзя.Правда уже кой какая информация есть,накопилась так сказать, но очень много пробелов.Вот я и имею ввиду что возможно проще будет получить исходный код в данных файлах?Там же наверняка есть не только код но и данные или в них только параметры и ничего более?Или для того что бы знать какой байт за что отвечает в данных файлах необходимо дисасемблить прошивку?
P.S.Поиск конечно рулит но как говорится лучше идти по протореной дороге)))Дайте линки на хорошие мануалы по диссасемблированию прошивы.

Сообщение отредактировал Алекс75 - 16.4.2006, 16:13
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bad-rustamka
сообщение 17.4.2006, 8:10


Мастер
****

Группа: Пользователи
Сообщений: 225
Регистрация: 22.3.2005
Из: Самара
Пользователь №: 39 309
Модель телефона: photon
Прошивка: cm10

Рейтинг: 88



Алекс75,
Ну конечно, чтобы точно знать, надо прошивку дизассемблировать. Хороший мануал - в этой теме, на первой странице. Ещё стучись ко мне в асю, может чем помогу. Я тут вроде пару скриптов выкладывал, они тоже помогут ;)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
..Strik3r..
сообщение 9.5.2006, 15:08


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

Группа: Пользователи
Сообщений: 529
Регистрация: 6.2.2006
Пользователь №: 69 186
Модель телефона: [MPx200]
Прошивка: WM5 [Rv1]

Рейтинг: 90.5



Добрый вечер всем и с праздником.
У меня проблема с Идой. Вобщем, имеется shx файл от прошивки 08r - включает в себя Ram downloader и SG1.
Запускаю IDA 4.9, выбираю любой тип файла, и потом открываю shx. Ида спрашивает - хотите ли вы, чтобы формат оперделился автоматически? Я говорю да. После чего открывается окно, в котором я выбираю тип процессора - ARMB и жму ОК. В следующем окне ставлю нужные галочки, и ввожу адреса из первого поста этой темы. жму ок - вылетает ошибка и ида закрывается. Прилагаю скрин. В чем дело?
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Dimka
сообщение 10.5.2006, 4:53


МотоКовырятель
******

Группа: Разработчики
Сообщений: 707
Регистрация: 21.3.2005
Из: Волгоград
Пользователь №: 39 255
Модель телефона: Moto X, Defy, ZN5, E2

Рейтинг: 1029



..Strik3r.., я хоть этим и не занимаюсь, но ведь очевидно, что дизасемблировать надо не shx, а бинарник! Через SHXCoDEC распакуй shx и полученный smg CG1 уже дизасемблируй.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
..Strik3r..
сообщение 10.5.2006, 8:47


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

Группа: Пользователи
Сообщений: 529
Регистрация: 6.2.2006
Пользователь №: 69 186
Модель телефона: [MPx200]
Прошивка: WM5 [Rv1]

Рейтинг: 90.5



Dimka, ты гений =)) Чето я ступил
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
..Strik3r..
сообщение 10.5.2006, 10:05


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

Группа: Пользователи
Сообщений: 529
Регистрация: 6.2.2006
Пользователь №: 69 186
Модель телефона: [MPx200]
Прошивка: WM5 [Rv1]

Рейтинг: 90.5



Вот еще вопрос.
Я не буду объяснять как SHX разобрать, надеюсь все знают. Единственное условие… CG0(MemoryMap) должна быть слита с прошивкой, а то не чего не выйдет, т.е. один файл д.б
1) CG0 - это же RAM Downloader?
2) Разбираю в СШХКодеке СШХ файл. Появляются СМГ файлы. СМГ фалы открываются IDA.. Но как объеденить SG1 и SG0 в 1 SMG? Или как собрать из них бин?

Не игнорируйте пожалуйста.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
3dway
сообщение 11.5.2006, 18:38


Новичок
*

Группа: Пользователи
Сообщений: 5
Регистрация: 25.9.2005
Из: Рязань
Пользователь №: 52 599
Модель телефона: e398
Прошивка: R373_G_0E.30.48R

Рейтинг: 0



Цитата
Разбираю в СШХКодеке СШХ файл. Появляются СМГ файлы. СМГ фалы открываются IDA.. Но как объеденить SG1 и SG0 в 1 SMG? Или как собрать из них бин

В shxcodec вверху не должна стоять галочка около separate. Если она не стоит,то тогда memory map сливается вместе с cg1, и такой файл можно дизасемблировать с помощью IDA.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
..Strik3r..
сообщение 11.5.2006, 18:52


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

Группа: Пользователи
Сообщений: 529
Регистрация: 6.2.2006
Пользователь №: 69 186
Модель телефона: [MPx200]
Прошивка: WM5 [Rv1]

Рейтинг: 90.5



3dway, спасибо что откликнулся =)) Но bad-rustamka, это сделал раньше =))
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SK8Azot
сообщение 13.5.2006, 17:38


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 8.12.2005
Пользователь №: 61 223
Модель телефона: E398GT
Прошивка: Mpx398_49R

Рейтинг: 1



Выложите пожалуйста заново прогу IDA или вышлите на майл ivan-xp@yandex.ru ато у меня не качается. :(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
eklim
сообщение 14.5.2006, 8:24


Интересующийся
**

Группа: Пользователи
Сообщений: 65
Регистрация: 9.11.2005
Из: Запорожье, Украина
Пользователь №: 57 669
Модель телефона: c380, V9, E8

Рейтинг: 20.5



Цитата(SK8Azot @ Суббота, 13 Май 2006, 20:38)
Выложите пожалуйста заново прогу IDA или вышлите на майл ivan-xp@yandex.ru ато у меня не качается. :(


http://cracklab.ru/
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 17.5.2006, 15:42


Опытный
***

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

Рейтинг: 10.5



Может кому сгодятся исходники сиих творений:
Flash-tools is a set of Free Software utilities that allow you to flash and acquire data logs from Motorola P2k handsets
http://flash-tools.jerryweb.org/

he library allows user space applications to access any USB device on Windows in a generic way without writing any line of kernel driver code
http://libusb-win32.sourceforge.net/
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 19.5.2006, 15:02


Опытный
***

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

Рейтинг: 10.5



Немного ссылок для "писателей":

http://www.geocities.com/SiliconValley/Hub.../arm/index.html
NARM - An ARM Assembler based on the NASM x86 assembler

http://www.heyrick.co.uk/assembler/index.html

http://homepage.ntlworld.com/g.mccaughan/g/software.html

http://www.raisonance.com/products/STR7.php
ARM STR7 (ARM7) RIDE, GNU C Compiler, GNU Assembler, GNU Linker, Simulator/Debugger, RFlasher

http://www.ecoscentric.com/ - free RTOS

http://www.vitanuova.com/solutions/embedded/index.html - Inferno is a small and powerful operating system, ideal for use in embedded devices.

http://www.freertos.org/ - FreeRTOSTM is a portable, open source, mini Real Time Kernel

http://www.armclub.org.uk/

http://rtos.com/page/product.php?id=2 - ThreadX is Express Logic's advanced Real-Time Operating System

http://bossos.tivi.net.pl/ - BossOS is a multitasking, priority based kernel for use
in embedded designs (for the ARM Processor Architecture ).

http://www.localcolorart.com/encyclopedia/ARM_family/

http://www.phoenix-rtos.org/

http://arm.convergencepromotions.com/catalog/m_acore.htm

http://www.hitex.com/download.html

http://www.armkits.com/downcenter/software.asp
http://www.armkits.com/Product/ide2005.asp

http://www.rowley.co.uk/crossworks/Downloads.htm

http://www.gnuarm.org/

http://armboot.sourceforge.net/

http://www.davidsharp.com/tarmac/

http://www.arm.linux.org.uk/

http://www.pinknoise.demon.co.uk/ARMinstrs/index.html

http://www.nohau.com/spec_sheets/specarm.html

http://www.lynuxworks.com/?ck=59

http://www.microcross.com/html/gnu_x-tools.html
http://www.microcross.com/html/visual_x-tools.html

http://www.debian.org/ports/arm/

http://www.ee.ic.ac.uk/pcheung/teaching/ee2_computing/

http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/

http://sourceforge.net/projects/devkitpro
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 22.5.2006, 11:11


Опытный
***

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

Рейтинг: 10.5



Нужон файл "pelf.exe" из ИДы старше 4.8! В 4.8 он глюкавый.
Не советуйте качнуть ИДу 4.9, уже есть 5.0.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 25.5.2006, 12:51


Опытный
***

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

Рейтинг: 10.5



Думаю, многие встречались с сигнатурами в ИДе.
Многие пораскопали вкусности в прошивке.
Так может пора шлепать сигнатуры и не маятся ...?
Есть даже 2 плагина: idb2pat и idb2sig.

Проши не так то и отличаются!
Можно же на новую положить сигнатуры и посмотеть отличия!

Да и описание API не помешает!?

Хотелось бы знать, какое реальное кол-во народа
МОЖЕТ и ХОЧЕТ переписать ПО?
Не затруднит ли вас написать сюда хоть строчку
и очертить ваш круг интересов?
Тип тела и прошивки большого значения не имеет.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Arkasha18
сообщение 25.5.2006, 19:20



****

Группа: Администраторы
Сообщений: 242
Регистрация: 27.4.2004
Из: Санкт-Петербург
Пользователь №: 2

Рейтинг: 249.5



KQ_44,
ТЯжеловато....не кажеться?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 26.5.2006, 15:48


Опытный
***

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

Рейтинг: 10.5



Arkasha18,
Дивные вы люди! Не попробовав уже боитесь!


Интересно! Что нужно, чтоб у вас перестали трястись поджилки?

Ладно! Раскажу детям сказку:
Переписать весь код действительно не просто, хотя бы потому, что некоторые процедуры подразумевают 100% знание протоколов GSM, GPRS и т.д. Но есть же базовые процедуры того же VRTXmc, работы с некоторым железом, с файловой системой которые вызываются постоянно. Может мегабайты кода мы и не выиграем, но уж поверте - можем выжать немного быстродействия.

Как пример - функция:
push {R4, LR}
mov R4,R1
mov R1,R4
BL (что-то там)
pop {R4}
pop {R3}
BX R3
Это не выдумка, а реальный кусок кода! Компилятор честно выполнил то, что от него хотели! Но нам то это зачем?
Можно же заменить:
BL (что-то там)

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

Хотя не спорю, просто переписать в виде сишного текста легче... :(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 26.5.2006, 19:39


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

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

Рейтинг: 1116



Цитата
Хотя не спорю, просто переписать в виде сишного текста легче...

увы, как раз после сишного кода и получается вышеприведенный тобой текст :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Arkasha18
сообщение 26.5.2006, 20:54



****

Группа: Администраторы
Сообщений: 242
Регистрация: 27.4.2004
Из: Санкт-Петербург
Пользователь №: 2

Рейтинг: 249.5



Я боюсь что таких людей маловато..которые действительно понимают ASM, но попробывать стоит конечно..
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KQ_44
сообщение 29.5.2006, 15:02


Опытный
***

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

Рейтинг: 10.5



Может кому пригодится скрипт под IDA для изготовления сигнатур.
Становишся курсором на процедуру и запускаеш скрипт.
Результат - файлик в той же директории что и обрабатываемый IDB с расширением .рат и названием процедуры в имени.
Из известных глюков: с некоторыми ИДовскими базами глючат ИДовские процедуры работы с массивами. Как результат - не помечаются изменяемые байты.

И еще, если у кого есть ЭЛЬФЫ, то попытка натравить на них прогу pelf.exe может дать не очень хороший результат. Причина: некорректная обработка длинных джампов в THUMB режиме. Его формат FXXXFYYY, где XXX и YYY - изменяемые байты. А этот глупый программ в этой комманде помечает изменяемыми только последние три байта. Как результат, полученная сигнатура глючит. Ниже, корректный вариант pelf.exe.
Прикрепленный файл ARMFunc2Pat.zip   ( 2.16 килобайт ) Кол-во скачиваний: 248
Прикрепленный файл pelf_un.zip   ( 57.8 килобайт ) Кол-во скачиваний: 225
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 30.5.2006, 17:01


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

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

Рейтинг: 1116



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


Опытный
***

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

Рейтинг: 10.5



2Vilko:
Я этот скрипт скомпилил из 2-х плагинов: idb2sig и idb2pat.
Моя там только оптимизация под скрипт,
по этому и никаких копирайтов и т.п.

И там внутрях 2 параметра:
минимальный размер обрабатываемой функции - в ИДе по дефолту 4, в плагинах было 10. Очень хитрый штук...
размер первой(основной) сигнатурной строки - в ИДе по дефолту 32, я взял тоже значение. Может стоит поднять до 64...?
Так с ними полезно поиграться, может кто найдет оптилальные размеры.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 2.6.2006, 7:27


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

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

Рейтинг: 1116



KQ_44,
наверно есть смысл выгружать сигнатуры в несколько проходов, увеличивая этот размер. тогда бОльший % попаданий будет...
хотя с другой стороны короткие процедурки все равно отсеятся - слишком часто "пересечения" на них...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся Патчить Прошивку., Дисассемблируем ARM. · Патчи и всё для них · Forum
 

6 страниц V < 1 2 3 4 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 31.7.2025, 1:12

Форум живёт: