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

Учимся Патчить Прошивку! C помощью проги Binedit, Нужен Мануальчик от наших ГУРУ

AlexKooper
сообщение 14.5.2007, 11:25


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Osta, а как ты узнал?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 14.5.2007, 11:56


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(AlexKooper @ Сегодня, 13:25)

Osta, а как ты узнал?
*


один из "стандартов" в иде
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 14.5.2007, 13:02


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Хорошо sad.gif А завтра мне понадобится узнать код 2001, как быть?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 14.5.2007, 13:05


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(AlexKooper @ Сегодня, 15:02)

2001
*


соответственно присваивание 1 :-)))))))))))))))))))))))))
вот это я точно знаю , а вообще я ж тебе кажись доки давал на иду ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 14.5.2007, 13:32


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Osta, доки хорошо, но быстренько посчитать программой было бы лучше smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 14.5.2007, 15:08


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ Сегодня, 14:39)

я все понимаю, но ответьте мне пожалуйста на один вопрос:
как дизассмеблировать код примерно такого вида:
0001234: 2000 (если я на 100% уверен что тут код, а не данные)

не используя дизасм полной патченой прошивки.
Хотелось бы так же просто, как делается калькулятором бинедита аддр+асм>код
*


ОЧ прсто:
1) создаёшь текстовый файл с расширением *.hex
2) вставляешь в него свой текстовый код, например, 2000
3) открываешь его в бинедите
4) переходишь на вкладку код
5) включаешь тумб режим декомпиляции (т.к. большинство патчей - это тумб код)
6) получаешь следующее:
00000000: 2000 MOV R0, #0x0 ;R0 = 0
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 15.5.2007, 5:06


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



RekGRpth, вот, что мне и требовалось!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
logotoy73
сообщение 16.5.2007, 17:26


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

Группа: Пользователи
Сообщений: 362
Регистрация: 10.1.2007
Из: Подмосковье
Пользователь №: 116 014
Модель телефона: RAZR MAXX, V3i, Defy+
Прошивка: VZV-16, 03.03R, 231


Настроение:
в процессе...



Рейтинг: 220



Цитата(RekGRpth @ 14.5.2007, 19:08) *

включаешь тумб режим декомпиляции (т.к. большинство патчей - это тумб код)


А какие патчи не в тумбе надо делать? Если не трудно напиши их названия.
И еще непонятны патчи где ты пишешь новые функции( особенно с LDR и STR, а также если добавляешь данные). Прошивки телефонов различаются в некоторых местах очень сильно и не всегда удаётся найти у себя такой же код. А с тем что загрузить или считать вообще завал. Сори но мозгов пока не хватает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 16.5.2007, 18:49


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Действительно, прошивки бывает различаются. Если бы создатели патчей давали развернутое описание вида:

;вот тут ничего не далаем пустая команда
;вот тут меняем условие
;вот тут меняем данные по такому принципу...

то 1) другим портировать было бы легче
2) самим потом вспомнить проще wink.gif

А то вот сижу и гадаю: зачем так сделано Mov r0 0 ;Mov r0 0? нопы поленились использовать или тайный смысл?

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


Мастер
****

Группа: Пользователи
Сообщений: 258
Регистрация: 26.9.2005
Из: Perm
Пользователь №: 52 732
Модель телефона: E398/V3x/C650/Z6
Прошивка: ---

Рейтинг: 140



AlexKooper,
хех=)
MOV R0, #0
причём тут нопы поленились использовать)))...
Просто заносит в регистр R0 значение 0....=)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 17.5.2007, 4:56


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



azt59, несколько раз подряд wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
GALL
сообщение 19.5.2007, 16:41


Гуру
******

Группа: Почётные мотофаны
Сообщений: 706
Регистрация: 25.12.2004
Из: Барнаул
Пользователь №: 29 674
Модель телефона: Iphone 4s
Прошивка: IOS 7.1.1
Победитель конкурса 2008

Рейтинг: 274



RekGRpth, Всё-таки хотелось бы поинтереснее пример с разбором полётов. Не понимаю одного: патчеры не хотят раскрывать свои ноу-хау?.Вот всё обсмотрел - одна вода....Вот меня поставил в тупик патч "Черный список". Всё правильно сделал, переходы делает так же всё на моей прошивке. Но не работает...Не понятно как происходит получение обычных данных из одного места прошивки в другое для обработки в функциях. В том же "черном списке" вместо текстовой информации вставлен код функций. Каша короче...

Добавлено позже (19.5.2007, 16:46):
Не понятно ещё, как BinEdit формирует код, т.е. как данные отделяет от команд. В IDA всё понятно - запустил скриптик и он всё распихает. Может для BinEdit тоже нужен какой-нибудь скрипт?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
logotoy73
сообщение 19.5.2007, 18:08


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

Группа: Пользователи
Сообщений: 362
Регистрация: 10.1.2007
Из: Подмосковье
Пользователь №: 116 014
Модель телефона: RAZR MAXX, V3i, Defy+
Прошивка: VZV-16, 03.03R, 231


Настроение:
в процессе...



Рейтинг: 220



RekGRpth твоя позиция "чтоб не на халяву' понятна. Но нам портерам на другие проши нужно больше информации. Как находить некоторые значения нужно бы расписать по подробнее( как например хистори для зарядки от USB).

Сообщение отредактировал logotoy73 - 19.5.2007, 18:49
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 7.7.2007, 9:41


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Может, подскажет кто, как сделать чтоб при загрузке сг1 в бинедит адреса не с нуля шли, а с 10080000 (это для R373). А то переходы по абсолютным адресам кривые выходят....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Мачо
сообщение 7.7.2007, 10:05


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

Группа: Легенды MotoFan.Ru
Сообщений: 456
Регистрация: 26.7.2004
Из: Киров
Пользователь №: 8 569
Модель телефона: Е398 (умер), E6
Прошивка: Dream A Reality 2.0
Финалист Конкурса 2010

Рейтинг: 1410



В бин эдит открыть свойства
и вставить это
Bin ID="R373_G_0E.30.49R" adr="0x98F828" base="0x0" TYPE_ARM="BigEndian"
SaveDataBin Enable="Y"
RemapBlok Start="0x0" Len="0xDCE000" Goto="0x10080000"
RAM_Area Start="0x12000000" Len="0x800000"

Потом нажать сохранить, и применить.

Название прошивки должно быть таким
R373_G_0E.30.49R.bin
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 9.7.2007, 13:17


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Тогда следующий вопрос.
Вот написал я некий патч (кстати работоспособный), каждую команду перехода вручную вычислял.... долго. Особенно обидно когда приходится данные раздвигать/дополнять, смещая код по адресам... Можно ли как-то автоматизировать процесс, чтоб писать ассемблерные команды и метки, а бинедит компилировал?

Код
1060484E 46C0       NOP
10604850 4778       BX PC
10604852 46C0       NOP
10604854 E59FC000   LDR R12, 0x1060485C
10604858 E12FFF1C   BX R12
1060485C 10CF2001   новый адрес обработчика+1

далее забиваем нопами или FF
сюда вернем управление с кодом в R5
10604880                 B       loc_10604954   ; универс функция в R0 код типа музыки, можно перенести



сам код расположим тут

(00C72000)
10CF2000:  46C0 46C0  nop nop
10CF2004:  497E       LDR     R1 0x10cf2200; mid                                                
10CF2006:  1C20       ADD     R0, R4, #0
10CF2008:  F000F9FA   BL      0x10CF2400;подпрограмма 1
10CF200C:  2800       CMP     R0, #0
10CF200E:  D011       BEQ     metka1
10CF2010:  497C       LDR     R1 0x10CF2204; MID
10CF2012:  1C20       ADD     R0, R4, #0
10CF2014:  F000F9F4   BL      0x10CF2400;подпрограмма 1
10CF2018:  2800       CMP     R0, #0
10CF201A:  D00B       BEQ     metka1
10CF201C:  497A       LDR     R1 0x10CF2208; midi
10CF201E:  1C20       ADD     R0, R4, #0
10CF2020:  F000F9EE   BL      0x10CF2400;подпрограмма 1
10CF2024:  2800       CMP     R0, #0
10CF2026:  D005       BEQ     metka1
10CF2028:  4978       LDR     R1 0x10CF220C; MIDI
10CF202A:  1C20       ADD     R0, R4, #0
10CF202C:  F000F9E8   BL      0x10CF2400;подпрограмма 1
10CF2030:  2800       CMP     R0, #0
10CF2032:  D109       BNE     10CF2048 metka22;если не 0 то переход к следующему
10CF2034: metka1
10CF2034:  250E       MOV     R5, #0xE       ;код миди
10CF2036:; надо попасть на адрес ROM:10604880
10CF2036:  46C0       NOP
10CF2038:  4778       BX PC
10CF203A:  46C0       NOP
10CF203C:  E59FC000   LDR R12, 0x10604881
10CF2040:  E12FFF1C   BX R12
10CF2044:  10604881  
;обработка Bas
10CF2048: metka22
10CF2048:  4971       LDR     R1 0x10cf2210
10CF204A:  1C20       ADD     R0, R4, #0
10CF204C:  F000F9D8   BL      0x10CF2400;подпрограмма 1
10CF2050:  2800       CMP     R0, #0
10CF2052:  D005       BEQ     metka11
10CF2054:  496F       LDR     R1 0x10cf2214            
10CF2056:  1C20       ADD     R0, R4, #0                
10CF2058:  F000F9D2   BL      0x10CF2400;подпрограмма 1
10CF205C:  2800       CMP     R0, #0                    
10CF205E:  D101       BNE     10CF2064 metka222
          metka11
10CF2060:  2511       MOV     R5, #0x11       ;код bas
10CF2062:;надо попасть на адрес ROM:10604880
10CF2062:  E7E8       b 0x10cf2036;перепроверить код
;обработка mix
10CF2064: metka222
10CF2064:  496C       LDR     R1 0x10cf2218
10CF2066:  1C20       ADD     R0, R4, #0
10CF2068:  F000F9CA   BL      0x10CF2400;подпрограмма 1
10CF206C:  2800       CMP     R0, #0
10CF206E:  D005       BEQ     0x10CF207C :metka111
10CF2070:  496A       LDR     R1 0x10cf221C            ;перепроверить
10CF2072:  1C20       ADD     R0, R4, #0                
10CF2074:  F000F9C4   BL      0x10CF2400;подпрограмма 1
10CF2078:  2800       CMP     R0, #0                    
10CF207A:  D101       BNE     10CF2080 metka2


10CF207C: metka1111
10CF207C:  2510       MOV     R5, #0x10       ;код mix
10CF207E:;надо попасть на адрес ROM:10604880
10CF207E:  E7DA       b 0x10cf2036;перепроверить код

7
10CF2080:  надо попасть на адрес ROM:10604882
10CF2080: metka2
10CF2080:  4778       BX PC              
10CF2082:  46C0       NOP
10CF2084:  E59FC000   LDR R12, 0x10604883
10CF2088:  E12FFF1C   BX R12            
10CF209C:  10604883                      

а тут вспомогательные данные
(00C72200)
10CF2200:  100DC1F0;mid
10CF2204:  100DC1FA;MID
10CF2208:  100DC204;midi
10CF220C:  100DC210;MIDI
10CF2210:  10CF2302;bas
10CF2214:  10CF230C;BAS
10CF2218:  10CF2316;mix
10CF221C:  10CF2320;MIX
;strings
10CF2300:  002E
10CF2302:  0062006100730000;bas
10CF230A:  002E
10CF230C:  0042004100530000;BAS
10CF2314:  002E
10CF2316:  006D006900780000;mix
10CF231E:  002E
10CF2320:  004D004900580000;MIX
10CF2328:  002E

: подпрограмма1
10CF2400:  B530               PUSH    {R4,R5,LR}
10CF2402:  1C04               ADD     R4, R0, #0
10CF2404:  1C0D               ADD     R5, R1, #0
10CF2406:  F000F823           BL      подпрограмма2
10СF240A:  1C02               ADD     R2, R0, #0
10CF240C:  E005               B       0x10CF241A metka3
10CF240E: metka4
10CF240E:  3402               ADD     R4, #2
10CF2410:  1C20               ADD     R0, R4, #0
10CF2412:  F000F81D           BL      подпрограмма2
10CF2416:  1C02               ADD     R2, R0, #0
10CF2418:  3502               ADD     R5, #2
10CF241A: metka3
10CF241A:  1C28               ADD     R0, R5, #0
10CF241C:  F000F818           BL      подпрограмма2
10CF2420:  4282               CMP     R2, R0
10CF2422:  D103               BNE     10CF242C metka5
10CF2424:  2A00               CMP     R2, #0
10CF2426:  D001               BEQ     10CF242C metka5
10CF2428:  2800               CMP     R0, #0
10CF242A:  D1F0               BNE     10CF240E metka4
10CF242C:  metka5
10CF242C:  BC30               POP     {R4,R5}
10CF242E:  BC08               POP     {R3}
10CF2430:  1A10               SUB     R0, R2, R0
10CF2432:  4718               BX      R3

: подпрограмма2
10CF2450: 7801  LDRB    R1, [R0]
10CF2452: 7840  LDRB    R0, [R0,#1]
10CF2454: 0209  LSL     R1, R1, #8     ; R1=R1<<8
10CF2456: 4308  ORR     R0, R1         ; R0=R0 or R1
10CF2458: 4770  BX      LR              


Сообщение отредактировал AlexKooper - 9.7.2007, 13:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 9.7.2007, 14:15


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ 9.7.2007, 19:17) *

Тогда следующий вопрос.
Вот написал я некий патч (кстати работоспособный), каждую команду перехода вручную вычислял.... долго. Особенно обидно когда приходится данные раздвигать/дополнять, смещая код по адресам... Можно ли как-то автоматизировать процесс, чтоб писать ассемблерные команды и метки, а бинедит компилировал?

Честно говоря, не понял вопрос, я КАК, по твоему, делаю?! Вручную что-ли?! Беру исходник и компилю в бинедите, как ты и хочешь. В чём же проблема?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
~Gangs2er~
сообщение 9.7.2007, 16:57


MotoSkinner
****

Группа: Разработчики
Сообщений: 248
Регистрация: 4.8.2006
Из: Екатеринбург
Пользователь №: 93 787
Модель телефона: (M) E398
Прошивка: У вас такой нету))

Рейтинг: 217.5



Может кто нить напишит мануал, начиная с: вот открыл я 49 ю прошивку, и ... Просьба написать про порт патчей, и написание собственых патчей!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 10.7.2007, 13:27


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Цитата(RekGRpth @ 9.7.2007, 18:15) *

Честно говоря, не понял вопрос, я КАК, по твоему, делаю?! Вручную что-ли?! Беру исходник и компилю в бинедите, как ты и хочешь. В чём же проблема?

Так я и говорю - я делаю ВРУЧНУЮ, и меня это не устраивает - тупое кодирование в машинные коды отнимает 90% времени, это если нигде по адресам не ошибешься...
А если ошибешься то еще больше тупой работы...
Вот если бы кто расписал простой пример: как в бинедите скомпилировать хотя бы такой текст:

1060484E: - важный момент, вручную указать начало кода
NOP
BX PC
NOP
LDR R12, переменная1
BX R12
переменная1 - эту переменную пусть ассемблер сам определит, где ей лежать


10CF2050: - вручную указать
CMP R0, #0
BEQ metka11 - указать условное имя метки
LDR R1 0x10cf2214
ADD R0, R4, #0
BL 0x10CF2400;
CMP R0, #0
metka11 - пусть ассемблер сам определит, какой адрес у метки
MOV R5, #0x11

Что важно: нужно иметь возможность самому задать адрес, откуда начинается код, адрес где лежит часть данных, а в то же время чтоб все остальное считалось автоматом - и адреса промежуточных данных (переменная1), и все коды команд.

Собственно, подойдет любой пример такой же сложности... Мне лишь бы начать - дальше проще, методом тыка разберусь или спрошу если что-то именно непонятно.
А сейчас непонятно основное: как начать.

Сообщение отредактировал AlexKooper - 10.7.2007, 13:30
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 10.7.2007, 13:44


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ 10.7.2007, 19:27) *

Так я и говорю - я делаю ВРУЧНУЮ, и меня это не устраивает - тупое кодирование в машинные коды отнимает 90% времени, это если нигде по адресам не ошибешься...
А если ошибешься то еще больше тупой работы...
Вот если бы кто расписал простой пример: как в бинедите скомпилировать хотя бы такой текст:

Что важно: нужно иметь возможность самому задать адрес, откуда начинается код, адрес где лежит часть данных, а в то же время чтоб все остальное считалось автоматом - и адреса промежуточных данных (переменная1), и все коды команд.

Собственно, подойдет любой пример такой же сложности... Мне лишь бы начать - дальше проще, методом тыка разберусь или спрошу если что-то именно непонятно.
А сейчас непонятно основное: как начать.

Ну ты хоть одни мои сырцы смотрел?
Вот для твоего примера:

.start 0x1060484E;: - важный момент, вручную указать начало кода
NOP
BX PC
NOP
LDR R12, =переменная1
BX R12
.data
;переменная1 - эту переменную пусть ассемблер сам определит, где ей лежать
.start 0x10CF2050: - вручную указать
CMP R0, #0
BEQ metka11; - указать условное имя метки
LDR R1, =0x10cf2214
ADD R0, R4, #0
BL 0x10CF2400;
CMP R0, #0
metka11:; - пусть ассемблер сам определит, какой адрес у метки
MOV R5, #0x11
...

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 10.7.2007, 13:52


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



неа, не смотрел.
1. а где сырцы есть (ладно, пищу по форуму)?
2. куда текстовый asm файл пихать, что нажимать чтоб код получить? Повторяюсь конечно, но...

Сообщение отредактировал AlexKooper - 10.7.2007, 13:54
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 11.7.2007, 1:41


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ Вчера, 19:52)

неа, не смотрел.
1. а где сырцы есть (ладно, пищу по форуму)?
2. куда текстовый asm файл пихать, что нажимать чтоб код получить? Повторяюсь конечно, но...
*


1 - в моей темке
2 - просто открой асм-файл в бинедите, поставь в настройках компилировать в smp и нажми F9. Всё!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 11.7.2007, 12:51


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(RekGRpth @ Сегодня, 3:41)

2 - просто открой асм-файл в бинедите, поставь в настройках компилировать в smp и нажми F9. Всё!
*


содержание 1.asm
Код

.start 0x1060484E;: - важный момент, вручную указать начало кода
MOV     R0, #0x3D

открыл , настройки поставил, нажал F9, получил файл 1.smp с содержанием:
Код
...
  <nord offset="0x1060484E" to="3D20" />
...


а по-идее должно быть 20 3D .. где моя ошибка ?

и CMP R2, #0x1F тоже перевернул в to="1F2A" :-(


таак.. ошибку понял : нужно ещё обязательно нажать кнопку Тип получаемого кода

Сообщение отредактировал Osta - 11.7.2007, 12:58
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 12.7.2007, 5:48


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(Osta @ 11.7.2007, 18:51) *

содержание 1.asm
Код

.start 0x1060484E;: - важный момент, вручную указать начало кода
MOV     R0, #0x3D

открыл , настройки поставил, нажал F9, получил файл 1.smp с содержанием:
Код
...
  <nord offset="0x1060484E" to="3D20" />
...


а по-идее должно быть 20 3D .. где моя ошибка ?

и CMP R2, #0x1F тоже перевернул в to="1F2A" :-(
таак.. ошибку понял : нужно ещё обязательно нажать кнопку Тип получаемого кода

biggrin.gif это он твою прошу распознал как LittleEndian, а нужно было be-файле поставить BigEndian!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 17.7.2007, 13:32


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



А когда надо данные положить по определенному адресу, это так записывается?

.start 0x103C60E8
.hex 0000003B 24000000 103C667A 00003E00 00000001 120000D3

какие еще могут быть форматы? надо обязательно на dword разбивать или нет?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 18.7.2007, 7:20


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ Вчера, 19:32)

А когда надо данные положить по определенному адресу, это так записывается?

.start 0x103C60E8
.hex 0000003B 24000000 103C667A 00003E00 00000001 120000D3

какие еще могут быть форматы? надо обязательно на dword разбивать или нет?
*


1) так можно
2) это не DWORD, а просто WORD! (в ARM'e кой-чё по-другому smile.gif)
3) разбивать не обязательно
4) лучше так:
DCD 0x0000003B
DCD 0x24000000
...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 18.7.2007, 13:38


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



не понял... вот запись
.start 0x103C60E8
.hex 103C667A
это же dword? какие там тонкости arm?
а вариант
DCD 0x0000003B
DCD 0x24000000
как в asm-файле оформляется? просто вставить в любое место?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 19.7.2007, 11:26


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



Цитата(AlexKooper @ Вчера, 19:38)

не понял... вот запись
.start 0x103C60E8
.hex 103C667A
это же dword? какие там тонкости arm?
а вариант
DCD 0x0000003B
DCD 0x24000000
как в asm-файле оформляется? просто вставить в любое место?
*


1) 4 байта в ARM'e - это WORD, 2 байта - HALF-WORD, 1 байт - BYTE smile.gif
2) ну не в любое, а там где надо wink.gif Посмотри мои сырцы - там этого навалом
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 22.8.2007, 9:31


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Такой вопрос - сбилась какая-то настройка бинедита, и теперь компилятор в режиме калькулятора считает код наизнанку - на примере кода bl 0xХХХХ вместо FabcFdef пишет bcFaefFd

Как вернуть?

Сообщение отредактировал AlexKooper - 22.8.2007, 9:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 22.8.2007, 9:54


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



это значит, у тебя LittleEndian - а в нём как раз код наоборот идёт. Поставь BigEndian
А ваще, зачем тебе калькулятор?! Я например им не пользуюсь - компилер бинедита сам всё считает!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 22.8.2007, 10:02


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Я не умею пользоваться компилятором. А калькулятором научился smile.gif
Тем более реально считать приходится 3-4 перехода на патч, что быстре сделать в калькуляторе, чем набивать асм код

Сообщение отредактировал AlexKooper - 22.8.2007, 10:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RekGRpth
сообщение 22.8.2007, 10:05


Начинающий патчер
****

Группа: Пользователи
Сообщений: 234
Регистрация: 6.11.2006
Пользователь №: 106 009
Модель телефона: RoverPC N6
Прошивка: WM 6.1

Рейтинг: 359.5



А набивать весь код вовсе и не обязательно: можно из бинедита через буфер скопировать и удалить столбик с адресами
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fry_razrv3
сообщение 27.8.2007, 17:32


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

Группа: Пользователи
Сообщений: 41
Регистрация: 16.6.2007
Пользователь №: 138 419
Модель телефона: RAZRV3r
Прошивка: R4515.G.08.BD.44R

Рейтинг: 0



у вас учат патчить? тогда научите как мне создать патч для своей платформы когда на других он уже существует, winhex есть ,нужен ли binedit или ida и дайте рабочую ссылку и если не трудно где и что и как менять biggrin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 28.8.2007, 5:37


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



fry_razrv3, давай на твоем примере сделаем урок "как портировать определенный патч - с примерами и описанием"?
с какой прошивки на какую и какой патч?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Moto-Roker
сообщение 28.8.2007, 16:40


Мастер
****

Группа: Пользователи
Сообщений: 174
Регистрация: 11.2.2007
Пользователь №: 121 727
Модель телефона: HZ
Прошивка: HZ

Рейтинг: 15



AlexKooper,
а давай лутче с меня. biggrin.gif
портировать требуеться с прошивки R4441D_G_08.01.03R на мою R452D_G_08.01.0AR.
патч псевдо-плейлист, или часы в статус строке, как те удобнее.

PS/ прости за наглость.

Сообщение отредактировал Moto-Roker - 28.8.2007, 16:41
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 28.8.2007, 19:07


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Псевдоплейлист конечно удобнее smile.gif
Возьмем за основу мою версию 5.0 для 49R
Я прикладываю сообщение как начать портировать патч, с вашей стороны жду ответных действий типа "нашел указанную паттерну Х раз"

В зависимости от Х будут дальнейшие указания

Сообщение отредактировал AlexKooper - 28.8.2007, 19:08
Прикрепленный файл 1111.txt   ( 9.39 килобайт ) Кол-во скачиваний: 236
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
GALL
сообщение 29.8.2007, 4:51


Гуру
******

Группа: Почётные мотофаны
Сообщений: 706
Регистрация: 25.12.2004
Из: Барнаул
Пользователь №: 29 674
Модель телефона: Iphone 4s
Прошивка: IOS 7.1.1
Победитель конкурса 2008

Рейтинг: 274



Пользуясь своим методом портирования, я не нашел в прошивке для L7e похожих кодовых и строковых комбинаций для псевдо-плейлиста.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 29.8.2007, 5:17


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Moto-Roker, пересчет смещений очень просто выполняется:
Смещение сг1 для любой прошивки можно посмотреть в FB3 - чтение кодовых групп. У них есть стартовый адрес, для 373 платформы это 10080000 а для 4513 4515 платформы - 10092000 и т.п.
К этому смещению нужно прибавить смещение, указанно в патче (оно указано относительно начала сг1)
Сделать это можно в калькуляторе винды, предварительно включив инженерный вид и переключив его на hex-операции.
Просто суммируете смещение патча со смещение сг1.

GALL, какая платформа у л7е?

Сообщение отредактировал AlexKooper - 29.8.2007, 5:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Moto-Roker
сообщение 29.8.2007, 6:02


Мастер
****

Группа: Пользователи
Сообщений: 174
Регистрация: 11.2.2007
Пользователь №: 121 727
Модель телефона: HZ
Прошивка: HZ

Рейтинг: 15



AlexKooper,
R452D
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 29.8.2007, 12:06


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Хорошо, продолжаем портирование!
Для пересчетов смещений рекомендую выпросить у хавермани прогу HexCal.exe, она автоматом прибавляет-вычитает смещение 1008000 или другое заданное.

Сообщение отредактировал AlexKooper - 29.8.2007, 15:06
Прикрепленный файл 2222.txt   ( 26.54 килобайт ) Кол-во скачиваний: 254
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся Патчить Прошивку! C помощью проги Binedit, Нужен Мануальчик от наших ГУРУ · Патчи и всё для них · Forum
 

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

 



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

Форум живёт: