IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8514 Откуда: Пермь
#561 [29.01.07, 20:10] Учимся писать патчи
Цель этой темы помочь разобраться начинающим (не только) патчеписателям в этом не легком деле. Задавайте свои вопросы. По возможности будем отвечать. Только не надо лить воду. Задаете конкретный вопрос, получаете конкретный ответ.
Итак немного информации:
1. Ниже прикреплены файлы:
- Формат VKP-патчей
- Краткая инструкция (пример) портирования патча от
Joker_XT - Вся графика телефона, если нужно знать код картинки (файлы
здесь )
- Исходник патча "Мигание фонаря при входящем" с комментариями
- Исходники патчей на управление гарнитурой v.4 для К750 и W800
ida_babeldr.rar - Теперь не нужно конвертировать прошивку в raw, не нужно выбирать вручную тип процессора и задавать адреса.
© den_po 2. Есть тема уже с картинками и обсуждениями (рекомендую для прочтения):
http://www.sony-ericsson.ru/forums2/index.php?showtopic=28929 3. Также есть кратенький пример от
den_po по портированию, он на первой странице этого топика:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=376&forum=8 4.
http://developers.sgh.ru - инфа по патчингу. Портал только открылся, но будет пополнятся. Специализируются на Самсунгах, но есть и общая для всех инфа.
http://binedit.sgh.ru - дизассемблер и не только от
AlexeyK . Также умеет работать с vkp патчами.
5. Русифицированная версия професионального HEX-редактора:
https://mobilefree.justdanpo.ru/mydownloads/showfile.php?lid=167 6. Информация для портеров и патчерописателей
Учет занятого места в прошивке 7. Тема где выкладывают
Исходники патчей 8. Мануал по
созданию исходника © Shadow Player (перевод от HierOS)
9. Мануал по портированию замейновых патчей от d1gger17
здесь 10. Статья "Как самому стать патчером" . Читаем обязательно! и + читаем доки от mnemo Мануал открытия прошивок А2 :
1.Кидаем ИмяПроши.mbn на
readDB3150.exe 2.Из папки ИмяПроши.out берем
phone_app.cxc 3.Открываем любимым хекс-редактором.
4.Отрезаем кусок от 0 до строки,содержащей повторяющуюся последовательность
18 F0 9F Е5 .Например на W760 R3DA026 это смещение
2000 .
5.Сохраняем как raw
6.Открываем уже своим любимым инстурментом
.
Народ! Давайте без флейма, пишем и задаем вопросы, только после того как прочтете все что выше выложено и даны ссылки на материал, и после того как сами уже попробовали и все детально обдумали! НЕ надо задавать вопросов, а с чего мне начать, ферштейн?
K700->W810->W850->W705 & W995 (cid81) ==========WMZ307721639637 WMR675285842893 Спасибо за пожертвования:Resp , ploik , BanditNN , AlexTin , polza , romanchenko , Ryabchik , Ax , [b]Desp
Спасибо сказали: E1kolyan, Va_st, senseless, Ma8ter, Kilo_Hz, MahmudS, Therion, vile, -BourNe-, DimaBV, MasterBoy, HotRabbit, mclaron, nitr, Oganyan-Arthur, bazk7i, -Sanek-, GaS, vodoo999, Danik, TahaSpawn, hossein_ir, LoDark, Alex_E, ELECTRO-NIC, HeMo, Se-MaG, anarkes, hi2all, Happy, CleverUser, KIBER-DEMON, Melodic_Death, plembo, UserX, MaxxxS, Sandre, SummerWood, Phoenix778, MAVER145, Nook, farid, a6b6, Neodzen, lexxx2345
joker777
Новичок
Регистрация: 19.11.07 Сообщений: 7 Репутация: 2 Откуда: moscow
#562 [03.03.08, 11:01] Re: Учимся писать патчи
сорь за тупой вопрос но все же.....Как по текстовым меткам выйти на нужную функцию?если можно-на примере.ну вот всмысле я перешел-вижу метки-эквалайзер,режим воспроизв. и т.д.
через них на функцию как выйти?
[ Редактировано joker777 в 3.3.08 11:43 ]
[ Редактировано joker777 в 3.3.08 11:52 ]
Virusmater
Patchmaster
Регистрация: 31.12.07 Сообщений: 114 Репутация: 20 Откуда: НиНо
#563 [13.03.08, 14:59] Re: Учимся писать патчи
Код:
include "x.inc" addr1 = 0x44F3CA3D addr2 = 0x45104D9D addr3 = 0x4520FF19 addr4 = 0x452A44C1 addr5 = 0x45102F85 addr6 = 0x452A6055 addr7 = 0x452A40F9 addr8 = 0x452A27ED patch = 0x45A9E140 org patch code16 push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] cmp R6, 0 bne loc_45CE030C mov R0, 1 strb R0, [R7] movl R0, 0x190 adr R1, sub_45CE0314 add R1, 1 bl sub_45CE0364 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE030C: add R6, 1 strb R6, [R7] pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 db 0xC0 ; А db 0x46 ; F ;------ Фун-ия ---- align 4 sub_45CE0314: push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] mov R1, 0 strb R1, [R7] ldr R0, _addr6 bl sub_45CE0360 cmp R0, 0 bne loc_45CE0338 ldr R0, _addr7 bl sub_45CE0360 cmp R0, 0 bne loc_45CE034A ldr R7, _addr8 blx R7 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0338: cmp R6, 1 beq loc_45CE0342 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0342: ldr R0, dword_45CE038C ldr R1, _addr5 blx R1 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE034A: cmp R6, 1 beq loc_45CE0354 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0354: mov R1, 0 ldr R2, _addr3 blx R2 pop {R2-R7,PC} ; End of function sub_45CE0314 ;------ Фун-ия ---- align 4 sub_45CE035C: ldr R1, _addr2 bx R1 ; End of function sub_45CE035C ;------ Фун-ия ---- align 4 sub_45CE0360: ldr R1, _addr4 bx R1 ; End of function sub_45CE0360 ;------ Фун-ия ---- align 4 sub_45CE0364: ldr R3, _addr1 bx R3 ; End of function sub_45CE0364 ; --------------------------------------------------------------------------- align 4 _addr1 dw addr1 _addr2 dw addr2 _addr3 dw addr3 _addr4 dw addr4 _addr5 dw addr5 _addr6 dw addr6 _addr7 dw addr7 _addr8 dw addr8 dword_45CE0388 dw 0x2018C409 align 4 dword_45CE038C dw 0x857
скомплил через этот исходник базу, добавил врезку от версии 3.5., но телефон на нажатия - ноль внимания.
все адреса из шапки найдены прально. думаю на раму... вопрос:
как ее искать и где править?
Добавлено 13.3.08 16:20 Так) Взял адрес из фрирам заменил
Код:
dword_45CE0388 dw 0x2018C409
на
Код:
dword_45CE0388 dw 0x201A5BF0
что дальш? тело опять 0 реакции на нажатие гарнитуры((
Zormax
Admin
Регистрация: 12.12.05 Сообщений: 5826 Репутация: 5274 Откуда: Nizhniy Novgorod
#564 [13.03.08, 16:39] Re: Учимся писать патчи
Virusmater Значит нашел не то. На практике бывает что код похож но не он, ищи такие же.
TOOKY T83 (1.3.1-L2), MK808B
Virusmater
Patchmaster
Регистрация: 31.12.07 Сообщений: 114 Репутация: 20 Откуда: НиНо
#565 [13.03.08, 19:18] Re: Учимся писать патчи
Млин, а из-за чего портированный патч занимает меньше портированого?
Joker XT
VIP Developer
Регистрация: 5.8.06 Сообщений: 1292 Репутация: 7582
#566 [13.03.08, 19:22] Re: Учимся писать патчи
Virusmater ЧТо?
SE C901 [R1GA028]
Virusmater
Patchmaster
Регистрация: 31.12.07 Сообщений: 114 Репутация: 20 Откуда: НиНо
#567 [13.03.08, 20:00] Re: Учимся писать патчи
хы, вот вот)) вощ вот исходник базы для w610 уже совсеми адресами(без врезок)
Код:
include "x.inc" Timer_Set = 0x452A27ED FreeBook = 0x452A6055 addr3 = 0x45102F85 addr4 = 0x452A40F9 UI_Event = 0x453CE055 addr6 = 0x44F3CA3D addr7 = 0x45104D9D addr8 = 0x4520FF19 patch = 0x45A9E140 org patch code16 push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] cmp R6, 0 bne loc_45CE030C mov R0, 1 strb R0, [R7] movl R0, 0x190 adr R1, sub_45CE0314 add R1, 1 bl sub_45CE0364 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE030C: add R6, 1 strb R6, [R7] pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 db 0xC0 ; А db 0x46 ; F ;------ Фун-ия ---- align 4 sub_45CE0314: push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] mov R1, 0 strb R1, [R7] ldr R0, _addr6 bl sub_45CE0360 cmp R0, 0 bne loc_45CE0338 ldr R0, _addr7 bl sub_45CE0360 cmp R0, 0 bne loc_45CE034A ldr R7, _addr8 blx R7 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0338: cmp R6, 1 beq loc_45CE0342 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0342: ldr R0, dword_45CE038C ldr R1, _UI_Event blx R1 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE034A: cmp R6, 1 beq loc_45CE0354 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0354: mov R1, 0 ldr R2, _addr3 blx R2 pop {R2-R7,PC} ; End of function sub_45CE0314 ;------ Фун-ия ---- align 4 sub_45CE035C: ldr R1, _FreeBook bx R1 ; End of function sub_45CE035C ;------ Фун-ия ---- align 4 sub_45CE0360: ldr R1, _addr4 bx R1 ; End of function sub_45CE0360 ;------ Фун-ия ---- align 4 sub_45CE0364: ldr R3, _Timer_Set bx R3 ; End of function sub_45CE0364 ; --------------------------------------------------------------------------- align 4 _Timer_Set dw Timer_Set _FreeBook dw FreeBook _addr3 dw addr3 _addr4 dw addr4 _UI_Event dw UI_Event _addr6 dw addr6 _addr7 dw addr7 _addr8 dw addr8 dword_45CE0388 dw 0x201A5BF0 align 4 dword_45CE038C dw 0x857
что в нем не так, посмотри плз, а то я уж не знаю че делть
Добавлено 13.3.08 20:43 вот вместе со врезкой
Код:
;Отредактировано с помощью AsmEditor (c)d1gger17 include "x.inc" Timer_Set = 0x452A27ED FreeBook = 0x452A6055 addr3 = 0x45102F85 addr4 = 0x452A40F9 UI_Event = 0x453CE055 addr6 = 0x44F3CA3D addr7 = 0x45104D9D addr8 = 0x4520FF19 patch = 0x45A9E140 vrezka = 0x459AF148 org vrezka DCD loc_45A9E140+1 org patch code16 push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] cmp R6, 0 bne loc_45CE030C mov R0, 1 strb R0, [R7] movl R0, 0x190 adr R1, sub_45CE0314 add R1, 1 bl sub_45CE0364 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE030C: add R6, 1 strb R6, [R7] pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 db 0xC0 ; А db 0x46 ; F ;------ Фун-ия ---- align 4 sub_45CE0314: push {R2-R7,LR} ldr R7, dword_45CE0388 ldrb R6, [R7] mov R1, 0 strb R1, [R7] ldr R0, _addr6 bl sub_45CE0360 cmp R0, 0 bne loc_45CE0338 ldr R0, _addr7 bl sub_45CE0360 cmp R0, 0 bne loc_45CE034A ldr R7, _addr8 blx R7 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0338: cmp R6, 1 beq loc_45CE0342 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0342: ldr R0, dword_45CE038C ldr R1, _UI_Event blx R1 pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE034A: cmp R6, 1 beq loc_45CE0354 bl sub_45CE035C pop {R2-R7,PC} ; --------------------------------------------------------------------------- align 4 loc_45CE0354: mov R1, 0 ldr R2, _addr3 blx R2 pop {R2-R7,PC} ; End of function sub_45CE0314 ;------ Фун-ия ---- align 4 sub_45CE035C: ldr R1, _FreeBook bx R1 ; End of function sub_45CE035C ;------ Фун-ия ---- align 4 sub_45CE0360: ldr R1, _addr4 bx R1 ; End of function sub_45CE0360 ;------ Фун-ия ---- align 4 sub_45CE0364: ldr R3, _Timer_Set bx R3 ; End of function sub_45CE0364 ; --------------------------------------------------------------------------- align 4 _Timer_Set dw Timer_Set _FreeBook dw FreeBook _addr3 dw addr3 _addr4 dw addr4 _UI_Event dw UI_Event _addr6 dw addr6 _addr7 dw addr7 _addr8 dw addr8 dword_45CE0388 dw 0x201A5BF0 align 4 dword_45CE038C dw 0x857
но выдет ошибку при компиляции
Код:
flat assembler for ARM version 1.66 garn.asm [15]: DCD loc_45A9E140+1 error: undefined symbol. cant open temp.bin
понимаю, что ошибка тумая, но поянть не могу, вродь все как в факе(по аналогии)
Код:
vrezka1 equ 0x44278324 org vrezka1 DCD loc_451D4AE4+1
Добавлено 13.3.08 20:49 адрес вродь кратный 4...
Zormax
Admin
Регистрация: 12.12.05 Сообщений: 5826 Репутация: 5274 Откуда: Nizhniy Novgorod
#568 [13.03.08, 21:04] Re: Учимся писать патчи
Virusmater Timer_Set = 0x452A27ED FreeBook = 0x452A6055 addr3 = 0x45102F85 addr4 = 0x452A40F9 UI_Event = 0x453CE055 addr6 = 0x44F3CA3D addr7 = 0x45104D9D addr8 = 0x4520FF19 patch = 0x45A9E140
Ты тока эти значения менял?
А в самом коде типа:
align 4
loc_45CE034A:
cmp R6, 1
beq loc_
45CE0354 bl sub_
45CE035C
TOOKY T83 (1.3.1-L2), MK808B
Virusmater
Patchmaster
Регистрация: 31.12.07 Сообщений: 114 Репутация: 20 Откуда: НиНо
#569 [13.03.08, 22:01] Re: Учимся писать патчи
Joker XT
VIP Developer
Регистрация: 5.8.06 Сообщений: 1292 Репутация: 7582
#570 [13.03.08, 22:31] Re: Учимся писать патчи
Ну прально, loc_45A9E140 не определена
SE C901 [R1GA028]
Virusmater
Patchmaster
Регистрация: 31.12.07 Сообщений: 114 Репутация: 20 Откуда: НиНо
#571 [13.03.08, 22:50] Re: Учимся писать патчи
ну а как ее....хм... определить?) Добавлено 13.3.08 23:05 мож написать, какой исходник должен получиться, исправленный?
Похожие темы
Тема Ответы Автор Просмотры Обновление Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 51289 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 630345 15.06.21, 04:11 патчи и редактор far manager 3 den_po 8542 25.04.21, 21:17 Aino и патчи, эльфы 1 khaker 5023 26.02.17, 19:37 Проблема патчинга с w380 (pnx5230) 3 ALexeY38 6360 15.08.15, 20:09 Запросы на платные патчи 586 Zormax 435744 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 83136 23.07.14, 10:57 Патчи для db2020 (Общие вопросы) 554 Zormax 419166 07.01.14, 05:16
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.