IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8514 Откуда: Пермь
#1271 [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
PRO100light
Patcher
Регистрация: 28.6.08 Сообщений: 827 Репутация: 1403 Откуда: DP.UA
#1272 [23.08.09, 23:59] Re: Учимся писать патчи
den_po , хм... ну там вроде у меня получается как "-"... ну вот:
Код:
var_28 = -0x28 var_18 = -0x18 LDR R0, [SP,0x2C+var_18] STR R0, [SP,0x2C+var_28]
это будет:
Код:
var_28 = -0x28 var_18 = -0x18 LDR R0, [SP,0x14] STR R0, [SP,0x04]
У меня вроде так все гуд компилит... Правильно?
K810i R8BA024 orange
RU lenovo p770 + miui 5
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1273 [24.08.09, 00:02] Re: Учимся писать патчи
promt is better than google translate
UserX
Новичок
Регистрация: 11.1.08 Сообщений: 20 Репутация: 151 Откуда: 57 [Rus]
#1274 [28.08.09, 14:09] Re: Учимся писать патчи
У меня проблемка, портил патч
Патч: ;K790 R8BF003 ;Отображение имени из телефонной книги вместо номера при просмотре SMS ;(c) Sic
на k800 r8bf003, получил исходник:
Тут:
Код:
;========Адреса======================== include "x.inc" addr1 = 0x451F99B4 eto = 0x451F9A70 addr2 = 0x451FBE20 addr3 = 0x45CEF401 addr4 = 0x45494DCC addr5 = 0x45CEF465 rama = 0x45CEF400 patch1 = 0x45838444 patch2 = 0x44F94F85 patch3 = 0x44F945F1 patch4 = 0x44F95E45 patch5 = 0x44F96011 patch6 = 0x44F95BBD patch7 = 0x45446ED5 patch8 = 0x4467A69C patch9 = 0x4533E4A1 patch10 = 0x44EE9535 patch11 = 0x45446DC5 ;========Первый кусок================== org addr1 CODE16 B eto ;========Второй кусок================== org addr2 LDR R0, off_450B97A4 B loc_450B97A8 off_450B97A4 DCD addr3 loc_450B97A8: BLX R0 ;========Третий кусок================== org addr4 LDR R3, off_45350EC4 B loc_45350EC8 off_45350EC4 DCD addr5 loc_45350EC8: BLX R3 ;========Четвертый кусок================= org rama CODE16 LDR R0, [SP,0xB4] ADD R0, 0x20 LDR R0, [R0,0x20] CMP R0, 0 BNE loc_45CEF410 MOV R7, LR ADD R7, 0x3A MOV LR, R7 loc_45CEF410: PUSH {R0-R7,LR} ADD R4, R0, 0 LDRH R0, [R4,2] CMP R0, 0x20 BNE locret_45CEF462 LDR R0, dword_45CEF4E4 ADD R1, R4, 0 MOV R2, 0 LDR R7, dword_45CEF4E8 BLX R7 BMI locret_45CEF462 SUB SP, SP, 0x12C MOV R0, 0 PUSH {R0} LDR R0, dword_45CEF4E4 ADD R1, R4, 0 MOV R2, 4 MOVL R3, 0x180 LDR R7, dword_45CEF4EC BLX R7 ADD SP, SP, 4 ADD R6, R0, 0 MOV R1, SP MOV R2, 0xFF LDR R7, dword_45CEF4F0 BLX R7 ADD R0, R6, 0 LDR R7, dword_45CEF4F8 BLX R7 MOV R5, 0 MOV R6, SP loc_45CEF450: LDRH R7, [R6,R5] CMP R7, 0x3C BCS loc_45CEF45C STRH R7, [R4,R5] ADD R5, 2 B loc_45CEF450 ; --------------------------------------------------------------------------- loc_45CEF45C: MOV R7, 0 STRH R7, [R4,R5] ADD SP, SP, 0x12C locret_45CEF462: POP {R0-R7,PC} ; --------------------------------------------------------------------------- LDR R3, [SP,0x1C] ADD R1, R0, 0 LDR R0, [SP,0x20] MOV R2, 0x10 LDRSH R2, [R6,R2] PUSH {R0-R7,LR} SUB SP, SP, 0x12C ADD R0, R1, 0 MOV R1, SP MOV R2, 0x80 LDR R7, dword_45CEF4FC BLX R7 MOV R0, SP LDR R7, dword_45CEF500 BLX R7 ADD R4, R0, 0 CMP R0, 7 BHI loc_45CEF48C MOV R1, SP B loc_45CEF492 ; --------------------------------------------------------------------------- loc_45CEF48C: SUB R0, 7 MOV R1, SP ADD R1, R1, R0 loc_45CEF492: MOV R0, SP ADD R2, R4, 0 ADD R3, R4, 0 LDR R7, dword_45CEF504 BLX R7 MOV R0, SP MOV R1, 1 MOV R2, 0 LDR R7, dword_45CEF508 BLX R7 LDR R1, dword_45CEF50C CMP R0, R1 BEQ loc_45CEF4DE ADD R6, R0, 0 MOV R1, SP MOV R2, 0x80 LDR R7, dword_45CEF510 BLX R7 MOV R1, SP MOV R0, 0 PUSH {R0} LDR R0, dword_45CEF4E4 MOV R2, 2 MOVL R3, 0x180 LDR R7, dword_45CEF4EC BLX R7 ADD SP, SP, 4 LSL R2, R4, 1 ADD R1, R5, 0 ADD R5, R0, 0 LDR R7, dword_45CEF4F4 BLX R7 ADD R0, R5, 0 LDR R7, dword_45CEF4F8 BLX R7 ADD R0, R6, 0 STR R0, [SP,0x130] loc_45CEF4DE: ADD SP, SP, 0x12C POP {R0-R7,PC} ; --------------------------------------------------------------------------- align 4 dword_45CEF4E4 DCD patch1 ; DATA XREF: ROM:45CEF41Ar ; ROM:45CEF42Cr ... ; "/tpa/temp" align 4 dword_45CEF4E8 DCD patch2 ; DATA XREF: ROM:45CEF420r dword_45CEF4EC DCD patch3 ; DATA XREF: ROM:45CEF436r ; ROM:45CEF4C4r align 4 dword_45CEF4F0 DCD patch4 ; DATA XREF: ROM:45CEF442r dword_45CEF4F4 DCD patch5 ; DATA XREF: ROM:45CEF4D0r dword_45CEF4F8 DCD patch6 ; DATA XREF: ROM:45CEF448r ; ROM:45CEF4D6r align 4 dword_45CEF4FC DCD patch7 ; DATA XREF: ROM:45CEF478r dword_45CEF500 DCD patch8 ; DATA XREF: ROM:45CEF47Er dword_45CEF504 DCD patch9 ; DATA XREF: ROM:45CEF498r dword_45CEF508 DCD patch10 ; DATA XREF: ROM:45CEF4A2r dword_45CEF50C DCD 0x6FFFFFFF ; DATA XREF: ROM:45CEF4A6r dword_45CEF510 DCD patch11 ; DATA XREF: ROM:45CEF4B2r
Скомпилил:
Патч: 451f99b4: 5CD0 5CE0
при проверке ребут.
Подскажите: в чем мой косяк?
I
Modding
K800i/Z530i/W380i
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#1275 [28.08.09, 14:17] Re: Учимся писать патчи
j10i2 r7ca061
Спасибо сказали: UserX
PRO100light
Patcher
Регистрация: 28.6.08 Сообщений: 827 Репутация: 1403 Откуда: DP.UA
#1276 [07.09.09, 01:51] Re: Учимся писать патчи
Мужики, как быть в такой ситуации
Код:
org 0x4504190E LDR R7, off_45041912 BX R7 off_45041912 DCD hook
Если я правильно понял, то строка
LDR R7, off_45041912 не может с генерировать байты из-за не удобного положения их в майне... Ну исх верный... если
org 0x4504190E от проши с которой я портирую патч то проблем нет... как быть?
K810i R8BA024 orange
RU lenovo p770 + miui 5
Amir_82111
Developer
Регистрация: 3.5.08 Сообщений: 296 Репутация: 1441 Откуда: Iran
#1277 [07.09.09, 02:26] Re: Учимся писать патчи
PRO100light , remove "off_45041912" from "off_45041912 DCD hook" and copy "off_45041912" from "LDR R7, off_45041912" to "... DCD hook" this is a small bug.
AVATAR K810 SW-R8BF003 -----------------------WMR - R304796297298 WMZ - Z166712078397
PRO100light
Patcher
Регистрация: 28.6.08 Сообщений: 827 Репутация: 1403 Откуда: DP.UA
#1278 [07.09.09, 08:21] Re: Учимся писать патчи
amir_82111 , not work
K810i R8BA024 orange
RU lenovo p770 + miui 5
Joker XT
VIP Developer
Регистрация: 5.8.06 Сообщений: 1292 Репутация: 7582
#1279 [07.09.09, 09:57] Re: Учимся писать патчи
Хах, исходники хоть раз глядел? У тебя адрес некратный, поэтому надо перед DCD написать align 4
SE C901 [R1GA028]
Спасибо сказали: PRO100light
PRO100light
Patcher
Регистрация: 28.6.08 Сообщений: 827 Репутация: 1403 Откуда: DP.UA
#1280 [07.09.09, 14:55] Re: Учимся писать патчи
Joker XT , Хм...глядел... Про не кратность не знал... Действительно с align 4 вышло... Но ведь тогда же добавились пустые байты, и врезка стала больше. А это далеко от оригинала
оригинал
Код:
450968d0: E069FDF7B3FE0028 004F38478195C545
порт
Код:
4504190e: E069FEF742FA002805D0 014F3847FFFF 5195D645
... как тогда? Или это не опасно? Я не знаю, играют ли роль последующие байты.
[ Редактировано PRO100light в 7.9.09 13:56 ]
Добавлено 7.9.09 14:02 Ну по сути порт работает
Спасибо
Joker XT ... Вероятно, что дальнейшие байты входили в функциональность старой функции... Ну если я хоть что-то понимаю в патче строении
[ Редактировано PRO100light в 7.9.09 14:02 ]
Добавлено 7.9.09 14:33 Да и вот на другое тело нашел.
Код:
44f6d992: E069FDF7E2FE002805D0 014F3847C046 6143C245
K810i R8BA024 orange
RU lenovo p770 + miui 5
UltraShot
Developer/Moder
Регистрация: 21.5.07 Сообщений: 1729 Репутация: 1827 Откуда: Санкт-Петербург / Череповец
#1281 [07.09.09, 16:25] Re: Учимся писать патчи
PRO100light , не важно. align 4 можно с успехом заменить на nop (C046), к примеру. Но align 4 удобнее. Всё равно там будет "мусорный" код
Спасибо сказали: PRO100light
Похожие темы
Тема Ответы Автор Просмотры Обновление Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 51294 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 630357 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 435759 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 83150 23.07.14, 10:57 Патчи для db2020 (Общие вопросы) 554 Zormax 419180 07.01.14, 05:16
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.