motofan logo
> 

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

Arkasha18
сообщение 24.11.2005, 21:32



****

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

Рейтинг: 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.
Задавайте вопросы, я понимаю что не чего не понятно, так что не стесняйтесь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
Arkasha18   Учимся Патчить Прошивку.   24.11.2005, 21:32
hobbit19   Arkasha18 Выставляем адреса: RAM start address - 0...   24.11.2005, 21:38
Arkasha18   hobbit19, Да. т.к. начало у всех одинаковое (ROM...   24.11.2005, 21:41
Inlined   Самое плохое это то, что IDA в общем-то плохо умее...   25.11.2005, 12:30
Vilko   Inlined, никто и не обещал, что будет легко и что...   25.11.2005, 13:59
Arkasha18   Добавляю: Можно так же ориентироваться на примеры ...   25.11.2005, 14:11
Inlined   Vilko, это и ежу понятно, что легко не будет. э...   25.11.2005, 16:03
Vilko   нет, этот метод скорее все-таки больше навредит, ...   25.11.2005, 16:25
hobbit19   Vilko а вобще какая достоверность кода будет после...   25.11.2005, 20:42
Vilko   как и обещал - скриптик, ищущий все потенциальные ...   26.11.2005, 8:28
Arkasha18   Vilko, Круто :) Ща испробую.   26.11.2005, 13:24
Trog   у меня вылезло вот такое ROM:10080000 ...   29.11.2005, 9:31
Vilko   не. не совсем правильно. ты видишь адрес 1022564F...   29.11.2005, 9:47
Trog   разобрался.. есть неточность в инструкции.. кнопк...   29.11.2005, 10:18
Vilko   Trog, дык ты ж координатор :) поправь :))   29.11.2005, 10:29
Trog   а как дадбше анализировать и править код?? наприме...   29.11.2005, 16:59
Vilko   Trog, а дальше - анализировать код, пытатся понят...   30.11.2005, 7:21
Trog   ну эт понятно.. ну вот ты написал в теме Ковырнём ...   30.11.2005, 7:33
GregF   Для знающих Инглыш пару ссылок: ;) http://www.ar...   8.12.2005, 6:57
KOPAY   ребят, такой вопрос, открыл в иде файл прошивки, п...   8.12.2005, 14:54
GregF   Небольшая добавка: Архитектура процессора ARM (вн...   9.12.2005, 0:45
KOPAY   при чём тут? ведь 10080000 - это начало уже? и у м...   9.12.2005, 14:43
KOPAY   объясните мне, что же я не так делаю? сначала откр...   9.12.2005, 15:20
Arkasha18   KOPAY, Возъми другую прошивку (не 42, 43 и не 44)...   9.12.2005, 16:02
UNLM-Trojan   Подскажите plz... Можно этими манипуляциями поправ...   10.12.2005, 13:20
demanishe   а другой адрес IDA есть?   26.12.2005, 6:58
FatumNNM   demanishe, я отсуда скачал: ftp://213.148.6.195/So...   1.1.2006, 0:23
HolodovAlexey   Извините за оффтоп... <_< А что этим можно ...   2.1.2006, 17:45
aligatro   Будем патчить проши для поддержки разных форматов...   3.1.2006, 2:38
Exebyte   Когда ещё в придачу и прошу пропатчить для приём...   14.1.2006, 19:46
forpost   нашел тут интересную статейку http://xtin.km.ru/vi...   16.1.2006, 15:54
Sinensis   Вот нарыл еще док: Описание ARM на русском: http:/...   16.1.2006, 19:33
0vZ   Вот линки по реверсингу самсунгов на ARM7 (нам тож...   17.1.2006, 7:08
bad-rustamka   Подскажите плз адрес точки входа в прошу 6fr, а то...   20.1.2006, 18:42
KOPAY   да, скажите пожалуйста 2 Exebyte писал патчи на с...   21.1.2006, 9:49
KOPAY   ребят, способен ли кто-нибудь из нас написать прог...   21.1.2006, 16:19
Vilko   KOPAY, выполняла - легко. а "прозванивала...   22.1.2006, 12:53
KOPAY   я это и имел ввиду. т.е. в процессе работы телефо...   22.1.2006, 13:12
Vilko   KOPAY, есть много разных способов запуска. ты име...   22.1.2006, 16:09
KOPAY   второе конечно же.   22.1.2006, 16:28
Random   Попробуй 10BE28BC Скорее всего поможет.   23.1.2006, 9:19
Vilko   KOPAY, ну, возможно и это. причем разными способам...   24.1.2006, 21:44
Vscz   Извините, а чем кроме айды чем ещё можно пользоват...   3.2.2006, 22:31
Lezhik   господа, кто-нибудь пользует иду 4.51 ? мож там ка...   2.3.2006, 10:38
bad-rustamka   Я тут кстати статейку одну нашёл, про дизасм проши...   6.3.2006, 11:42
Stigmata   Для прошивки 6FR V635 пробовал по совету Random...   21.3.2006, 22:23
bad-rustamka   Stigmata, Лучше АРМ функции скриптом не искать, то...   22.3.2006, 13:23
Stigmata   Я вот еще не много не понял насчет THUMB и ARM фун...   23.3.2006, 4:15
bad-rustamka   Заусти приложенный скрипт. В качестве начального а...   23.3.2006, 8:26
Stigmata   bad-rustamka, Спасибо все получилось. Только для 6...   23.3.2006, 16:20
Stigmata   Забыл одну вещь, в которой новички могут сделать о...   23.3.2006, 16:26
bad-rustamka   Stiqmata, А какой вопрос собсно? Про ссылки? Поним...   24.3.2006, 7:38
Dr. Medic   Вопрос не совсем в тему. Один мой знакомый на тел....   14.4.2006, 12:18
lv333   Извини конечно, но помоему твой знакомый гонит ...   14.4.2006, 12:52
Random   Кодеки вообще в DSP находятся, так что твой знаком...   15.4.2006, 15:48
Алекс75   Возможно вопрос немного не в тему.Но почему бы не ...   15.4.2006, 20:04
bad-rustamka   Алекс75, что ты хотел этим сказать? Типа найти мес...   16.4.2006, 4:22
Алекс75   bad-rustamka, Нет я имел ввиду не совсем это.Всем...   16.4.2006, 16:07
bad-rustamka   Алекс75, Ну конечно, чтобы точно знать, надо проши...   17.4.2006, 8:10
..Strik3r..   Добрый вечер всем и с праздником. У меня проблем...   9.5.2006, 15:08
Dimka   ..Strik3r.., я хоть этим и не занимаюсь, но ведь о...   10.5.2006, 4:53
..Strik3r..   Dimka, ты гений =)) Чето я ступил   10.5.2006, 8:47
..Strik3r..   Вот еще вопрос. Я не буду объяснять как SHX разоб...   10.5.2006, 10:05
3dway   В shxcodec вверху не должна стоять галочка около...   11.5.2006, 18:38
..Strik3r..   3dway, спасибо что откликнулся =)) Но bad-rustamka...   11.5.2006, 18:52
SK8Azot   Выложите пожалуйста заново прогу IDA или вышлите н...   13.5.2006, 17:38
eklim   http://cracklab.ru/   14.5.2006, 8:24
KQ_44   Может кому сгодятся исходники сиих творений: Flash...   17.5.2006, 15:42
KQ_44   Немного ссылок для "писателей": http://...   19.5.2006, 15:02
KQ_44   Нужон файл "pelf.exe" из ИДы старше 4.8...   22.5.2006, 11:11
KQ_44   Думаю, многие встречались с сигнатурами в ИДе. Мно...   25.5.2006, 12:51
Arkasha18   KQ_44, ТЯжеловато....не кажеться?   25.5.2006, 19:20
KQ_44   Arkasha18, Дивные вы люди! Не попробовав уже ...   26.5.2006, 15:48
Vilko   увы, как раз после сишного кода и получается выше...   26.5.2006, 19:39
Arkasha18   Я боюсь что таких людей маловато..которые действит...   26.5.2006, 20:54
KQ_44   Может кому пригодится скрипт под IDA для изготовле...   29.5.2006, 15:02
Vilko   KQ_44, хороший скриптик... :) я такой начал в сво...   30.5.2006, 17:01
KQ_44   2Vilko: Я этот скрипт скомпилил из 2-х плагинов: i...   31.5.2006, 13:11
Vilko   KQ_44, наверно есть смысл выгружать сигнатуры в н...   2.6.2006, 7:27
KQ_44   Vilko, Согласен!   2.6.2006, 13:29
arnoldus   KQ_44 ты говорил о дисплее не можешь подробнее ра...   6.6.2006, 19:39
KQ_44   arnoldus, Извини, немного подзабыл. Это по поводу ...   8.6.2006, 15:14
arnoldus   да, про него   10.6.2006, 11:49
KQ_44   arnoldus, Хорошо, я гляну и сегодня/завтра скажу.   13.6.2006, 10:29
KQ_44   arnoldus, Извини, не досмотрел. Уж очень все в пр...   15.6.2006, 11:53
arnoldus   да, кинь все что относится к этому, а опрос железа...   1.7.2006, 13:55
KQ_44   arnoldus, Извини, просто упустил момент, когда по...   12.7.2006, 15:04
NeOXiN   Ребята, а где взять справочник по ассемблерным ком...   17.7.2006, 12:17
lonely_poet   Кому интересно, даю прямой линк на BinEdit   17.8.2006, 13:59
arnoldus   KQ_44 пиши в асю   31.8.2006, 17:35
Rahanz   1. а никто не находил координат часов (цифровых на...   22.9.2006, 15:42
mutacipa   Помогите пожалуйста! Вот решил разковырять про...   2.1.2007, 23:46
GandjaFuzz   mutacipa, скачай скрипт на 1-ой странице запусти ...   3.1.2007, 0:51
mutacipa   GandjaFuzz, так я делал как написано! В нача...   3.1.2007, 11:42
~Gangs2er~   А инуструкшн по этой проге кто нить дайте!...   3.1.2007, 15:55
~Gangs2er~   ХМ! ужо не надо вот если кому надо ссылочку ин...   3.1.2007, 17:35
dzhek   А что даст нам эта деассамблириация или как там пр...   3.1.2007, 18:13
~Gangs2er~   dzhek, читай тему с первой страницы и вниикай...   3.1.2007, 18:48
Алекс75   Кстати поделитесь ссылками на полезные ресурсы по ...   3.2.2007, 20:59
3 страниц V  1 2 3 >

Учимся Патчить Прошивку., Дисассемблируем ARM. · Патчи и всё для них · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.4.2024, 16:15

Форум живёт: