Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

F.A.Q по портированию замэйновых патчей : Патчестроение : Патчи : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Патчи
      /  Патчестроение
   /  F.A.Q по портированию замэйновых патчей
На печать 
Правила 
Страница 1 из 7: [1] 2 3 4 5 ... 7 »

SEVENI


Expert


Регистрация: 10.8.08
Сообщений: 126
Репутация: 1650
Откуда: Ставрополь




 
  #1 [08.11.09, 12:41] F.A.Q по портированию замэйновых патчей   

 
Написал статью для начинающих патчеров


Портирование патча, который ставится в за-main'не

Нам понадобится:
1) IDA Pro Advanced 5.2
2) Main-файл прошивки на которую есть патч(w660_r8bb001) и Main-файл прошивки под которую будем портировать патч(k550_r6bc002)
3) patsearchnt
4) 2 Idc файла (для применения/отката патча в IDA Pro Advanced)
5) babe2raw(именно она, т.к main2raw иногда, конвертирует с корявыми адресами)
6) компилятор от den_po (да, да именно им)

начнём:

1 этап) // Создание исходника

Конвертируем обе прошивки в .raw - формат

Берем патч

Патч:
;W660 R8BB001
;Ability to minimize the window admission / transfer files via Bluetooth
;Ver 1.3 (stability fix)
;(c) Joker XT
;(p) Adow



начнем с простых адресов, а именно:

Код: 
f0148a: E069 B047
f014c8: B915F044 0110CE45
f03b78: 2868 8847
f03d20: AB0F0000 2F10CE45
f02eb6: 2068 8847
f03000: AB0F0000 2910CE45
f033b8: 244870B50E18 70B524488047
f0344c: 3E040000 1710CE45
f03458: 174830B50D18 30B517488047
f034b8: 4A040000 0710CE45


Открываем прошивку w660_r8bb001 в IDA Pro Advanced 5.2,
переводим в Tumb-режим, ставим 4 в пункте number of opcode bytes и т.д(обьяснять как это делать не буду, не чайники)
Применяем патч на прошивку с помошью ApplyPatch.idc (File=>idc file...)
и так, берем первый адрес f0148a: E069 B047
к f0148a прибавляем оффсет +44000000(в патче указан именно этот)
получаем 44F0148A - переходим по нему,
видим это





Теперь нажимаем кнопку "С" - бобежали циферки



Нам нужна всего лишь одна строка
ROM:44F0148A B0 47 BLX R6
создаем простой текстовой-файл
первой строчкой вписываем include "x.inc"
а ниже, копируем нашу строку, только в таком виде:

org 0x44F0148A
BLX R6


возьмем второй адрес 44F014C8(+44000000)
открываем его и видим это



сразу видно - это адрес:

Код:
ROM:44F014C8 01                          DCB    1
ROM:44F014C9 10                          DCB 0x10
ROM:44F014CA CE                          DCB 0xCE ; +
ROM:44F014CB 45                          DCB 0x45 ; E


Нажимаем кнопку "D" 3 раза и получаем это



ROM:44F014C8 01 10 CE 45 DCD unk_45CE1001
переделываем так
org 0x44F014C8
DCD 0x45CE1001


Прошу обратить внимание на адрес 44F033B8:

Код:
ROM:44F033B8 70 B5                       PUSH    {R4-R6,LR}
ROM:44F033BA 24 48                       LDR     R0, off_44F0344C
ROM:44F033BC 80 47                       BLX     R0


здесь 3 строки, делаем их так:
Код:
org 0x44F033B8
PUSH    {R4-R6,LR}
LDR     R0, 0x44F0344C
BLX     R0


адрес 0x44F0344C делаем так:

Код:
org 0x44F0344C
off_44F0344C    DCD 0x45CE1016+1


так же ищем все остальные адреса и в конце концов у нас получается половина готового исходника:

Код: 
include "x.inc"  
; ---------------------------------------------------------------------------
org 0x44F0148A
BLX     R6
org 0x44F014C8
DCD 0x45CE1001
org 0x44F03B78
BLX     R1
org 0x44F03D20
DCD 0x45CE102F
org 0x44F02EB6
BLX     R1
org 0x44F03000
DCD 0x45CE1029
org 0x44F033B8
PUSH    {R4-R6,LR}
LDR     R0, 0x44F0344C
BLX     R0
org 0x44F0344C
off_44F0344C    DCD 0x45CE1016+1      
org 0x44F03458
PUSH    {R4,R5,LR}
LDR     R0, 0x44F034B8
BLX     R0
org 0x44F034B8
off_44F034B8    DCD 0x45CE1006+1
; ---------------------------------------------------------------------------


этап 2) // Замэйн
Переходим к адресам, которые лежат в "теле патча"
Берем первый адрес нашего "тела":

1ce1000: 00000000000000000000000000000000 204EE06915E024480D18FFB5081C0021

1ce1000+44000000=45CE1000
переходим по адресу 45CE1000 и видим такое



нажимаем "С" на всех желтых адресах ниже, до тех пор, пока не пойдут нули...
Обратите внимание,
Код:
ROM:45CE1066 FF                          DCB 0xFF
ROM:45CE1067 FF                          DCB 0xFF

подобные адреса мы не трогаем, пока что...
Теперь выделяем весь наш код(от адреса ROM:45CE1000 до ROM:45CE1098)
Нажимаем File => Produce file => Create asm file... и сохраняем в удобное место.
Теперь открываем его текстовым редактоом и в самый вверх вставляем нашу раннюю заготовку:

Код: 
include "x.inc"  
; ---------------------------------------------------------------------------
org 0x44F0148A
BLX     R6
org 0x44F014C8
DCD 0x45CE1001
org 0x44F03B78
BLX     R1
org 0x44F03D20
DCD 0x45CE102F
org 0x44F02EB6
BLX     R1
org 0x44F03000
DCD 0x45CE1029
org 0x44F033B8
PUSH    {R4-R6,LR}
LDR     R0, 0x44F0344C
BLX     R0
org 0x44F0344C
off_44F0344C    DCD 0x45CE1016+1      
org 0x44F03458
PUSH    {R4,R5,LR}
LDR     R0, 0x44F034B8
BLX     R0
org 0x44F034B8
off_44F034B8    DCD 0x45CE1006+1
; ---------------------------------------------------------------------------


Этап 3) // Оформление Исходника

удаляем шапку

;Код:

; +-------------------------------------------------------------------------+
; |    This file is generated by The Interactive Disassembler (IDA)        |
; |    Copyright (c) 2007 by DataRescue sa/nv,    <ida@datarescue.com>        |
; | Licensed to: Mach EDV Dienstleistungen, Jan    Mach, 1    user, adv, 11/2007  |
; +-------------------------------------------------------------------------+
;


После всех loc_XXXXXXXX ставим ":" т.е loc_45CE1006: и т.д
Все # нужно удалить, чтобы сделать быстро, нажимаем Ctrl+H в поле Что: ставим # поле Чем: оставляем пустым, заменяем всё
Все ADDS превращаем в ADD
Все MOVS превращаем в MOV
Все SUBS превращаем в SUB
Все ADR превращаем в adr (если таковые есть)
Теперь наще
DCB 0xFF
DCB 0xFF
все loc_XXXXXXXX+1, sub_XXXXXXXX+1 меняем на 0xXXXXXXXX+1 пример: 0x453E9488+1
заменяем на выравнивание align 4
Для "красоты" все адреса выносятся перед началом "тела исходника"
т.е делаем так:
Код: 
dword_45CE1068    DCD addr1
                    
dword_45CE106C    DCD addr2
                    
dword_45CE1070    DCD addr3
off_45CE1074    DCD addr4        
off_45CE1078    DCD addr5        
                    
off_45CE107C    DCD addr6        
off_45CE1080    DCD addr7        
off_45CE1084    DCD addr8        
off_45CE1088    DCD addr9
off_45CE108C    DCD addr10    
off_45CE1090    DCD addr11        
off_45CE1094    DCD addr12        
dword_45CE1098    DCD addr13


а это выносим выше "тела исходника"
Код: 
addr1 = 0xFAC
addr2 = 0xFAB
addr3 = 0x668
addr4 = 0x453E9488+1
addr5 = 0x453D6194+1
addr6 = 0x454A83C8+1
addr7 = 0x454A8440+1
addr8 = 0x44F015B9
addr9 = 0x45CE104A+1
addr10 = 0x454AD595
addr11 = 0x453D45A8+1
addr12 = 0x453D6504+1
addr13 = 0x44A


перед самым началом "тела исходника"
пишем
org 0x45A6C350
CODE16


где org 0x45A6C350 - это адрес, откуда пойдет "тело" нашего патча

Наш исходник готов

Этап 4) // портирование

Откроем прошивку k550_r6bc002 в другом окне(с помощью IDA Pro Advanced 5.2)
так же переведём в tumb-режим, только патч устанавливать не надо.

Берём первый адрес из исходника

0x44F0148A

открываем его в прошивке w660_r8bb001(переоткройте её или откатите установленный патч)

Самый лучший и безошибочный способ нахождения адресов - создание паттерна(паттерн - кусок кода прошивки)
Выделяем примерно 26 строк начиная с адреса 0x44F0148A



Копируем этот кусок, открываем patsearchnt, удаляем старый паттерн в окне и вставляем наш,
Ставим стартовый адрес начала main'а(0x44140000 SE)
нажимаем load ff и указываем main-файл прошивки k550_r6bc002 в .raw формате
жмем Convert
Теперь, что касается паттерна:

Код: 
??,69
??,1C
??,??,??,01
??,??,??,FA[code]

в нём присутствуют как 2-х байтные, так и 4-x байтные строки
4-x байтные строки мы всегда заменяем на ??,??,??,??
т.е будет так:

[code]??,69
??,1C
??,??,??,??
??,??,??,??


ок, разобрались, нажимаем Search - ура, адрес найден - 44DB715A

Что касается вот этого адреса:
org 0x44F033B8
PUSH {R4-R6,LR}
LDR R0, 0x44F0344C
BLX R0
org 0x44F0344C
off_44F0344C DCD 0x45CE1016+1


делаем так:
находим 0x44F033B8 в прошивке w660_r8bb001 портируем его на k550_r6bc002 получаем 0x44DB9110
находим 0x44F0344C в прошивке w660_r8bb001 портируем его на k550_r6bc002 получаем 0x44DB91A8
находим 0x45CE1016+1
как находим?
- ищем 0x45CE1016 в прошивке w660_r8bb001 - это за main'овый адрес, я расчитываю его для своего места и получаю 0x45A6C366 и прибавляю 1
0x45A6C366+1
В патче присутствуют текстовые метки
0x668
с помошью LNGEditor находим id метки в языковом файле w660_r8bb001(0x668) Свернуть
теперь ишем такое название в языковом файле k550_r6bc002 и находим 0x114C

и так ищем все остальные адреса, после того, как мы портировали всё, у нас должно получиться так:

Код: 
include "x.inc"  
; ---------------------------------------------------------------------------
org 0x44DB715A
BLX     R6
org 0x44DB98DC
BLX     R1
org 0x44DB8C42
BLX     R1
org 0x44DB7198
DCD 0x45A6C351 
org 0x44DB9A84
DCD 0x45A6C37F 
org 0x44DB8D8C
DCD 0x45A6C379 
org 0x44DB91B4
PUSH    {R4,R5,LR}
LDR     R0, 0x44DB9214
BLX     R0
org 0x44DB9214
off_44DE1494    DCD 0x45A6C356+1    
org 0x44DB9110
PUSH    {R4-R6,LR}
LDR     R0, 0x44DB91A8
BLX     R0
org 0x44DB91A8
off_44DE1428    DCD 0x45A6C366+1
; ---------------------------------------------------------------------------
addr1 = 0x452817E0+1
addr2 = 0x4526E708+1
addr3 = 0x4533FF9C+1
addr4 = 0x45340014+1
addr5 = 0x44DB7289
addr6 = 0x45344B75
addr7 = 0x4526CB1C+1
addr8 = 0x4526EA78+1
addr9 = 0x45A6C39A+1        
addr10 = 0xFAC        
addr11 = 0xFAB    
addr12 = 0x114C        
addr13 = 0x44A
; ---------------------------------------------------------------------------
    org 0x45A6C350
        CODE16
        LDR    R6, off_45CE1084 ; DATA    XREF: ROM:44F014C8o
        LDR    R0, [R4,0x1C]
        B    loc_45CE1032
; ---------------------------------------------------------------------------

loc_45CE1006:                ; CODE XREF: ROM:44F0345Cj
        LDR    R0, dword_45CE1098
        ADD    R5, R1,    R0
        PUSH    {R0-R7,LR}
        ADD    R0, R1,    0
        MOV    R1, 0
        LDR    R7, off_45CE1078
        BLX    R7
        POP    {R0-R7,PC}
; ---------------------------------------------------------------------------

loc_45CE1016:                ; CODE XREF: ROM:44F033BCj
                    ; DATA XREF: ROM:off_44F0344Co
        LDR    R0, dword_45CE1098
        SUB    R0, 0xC
        ADD    R6, R1,    R0
        PUSH    {R0-R7,LR}
        ADD    R0, R1,    0
        MOV    R1, 0
        LDR    R7, off_45CE1078
        BLX    R7
        POP    {R0-R7,PC}
; ---------------------------------------------------------------------------
        LDR    R1, dword_45CE106C ; DATA XREF:    ROM:44F03000o
        LDR    R0, [R4]
        B    loc_45CE1032
; ---------------------------------------------------------------------------
        LDR    R1, dword_45CE106C ; DATA XREF:    ROM:44F03D20o
        LDR    R0, [R5]

loc_45CE1032:                ; CODE XREF: ROM:45CE1004j
                    ; ROM:45CE102Cj
        PUSH    {R0-R7,LR}
        ADD    R6, R0,    0
        LDR    R1, dword_45CE1068
        LDR    R2, off_45CE1088
        LDR    R7, off_45CE107C
        BLX    R7
        LDR    R2, dword_45CE1070
        LDR    R1, dword_45CE1068
        ADD    R0, R6,    0
        LDR    R7, off_45CE1080
        BLX    R7
        POP    {R0-R7,PC}
; ---------------------------------------------------------------------------

loc_45CE104A:                ; DATA XREF: ROM:off_45CE1088o
        PUSH    {R0-R7,LR}
        LDR    R0, off_45CE108C
        LDR    R7, off_45CE1090
        BLX    R7
        CMP    R0, 0
        BEQ    loc_45CE105A
        LDR    R7, off_45CE1094
        BLX    R7

loc_45CE105A:                ; CODE XREF: ROM:45CE1054j
        LDR    R7, off_45CE1074
        BLX    R7
        MOV    R1, 0
        LDR    R7, off_45CE1078
        BLX    R7
        POP    {R0-R7,PC}
; ---------------------------------------------------------------------------
align 4
dword_45CE1068    DCD addr10
                    
dword_45CE106C    DCD addr11
                    
dword_45CE1070    DCD addr12
off_45CE1074    DCD addr1        
off_45CE1078    DCD addr2        
                    
off_45CE107C    DCD addr3        
off_45CE1080    DCD addr4        
off_45CE1084    DCD addr5        
off_45CE1088    DCD addr9
off_45CE108C    DCD addr6    
off_45CE1090    DCD addr7        
off_45CE1094    DCD addr8        
dword_45CE1098    DCD addr13
; ends


Теперь осталось скомпилировать патч

Этап 5) Компилирование патча

Рапаковываем компилятор от den_po в любую папку, у меня это D:\armpc2\
Кладём туда main-файл прошивки k550_r6bc002 в .raw - формате, наш исходник, называем его Untitled1
Открываем Командную строку и вписываем такую команду:

Код:
D:\armpc2\make.bat Untitled1.asm K550_R6BC002_MAIN_GENERIC_LI_RED52.raw 44140000 v.info>log.txt

нажимаем выполнить и получаем скомпилированный патч.

Патч:
;K550 SW-R6BC002
;Возможность сворачивать окно приёма/передачи файлов по Bluetooth etc
;Ver 1.3
;(c) Joker XT
;(p) SEVENI


Не всегда так всё легко, байты могут не совпадать, разные ошибки.
По всем вопросам писать в тему
Спасибо Arthur Oganyan, за выкладывание материала
Автор F.A.Q.: SEVENI



Прикрепленный к сообщению файл:

Compilator.zip Compilator.zip (64.08 kb; 193 hits) Скачать файл
Idc.zip Idc.zip (6.82 kb; 138 hits) Скачать файл
patsearchnt.zip patsearchnt.zip (179.00 kb; 154 hits) Скачать файл


Samsung GT-I9103 4.0.4
Canon 60D + Sigma 50mm 1.4, canon 17-40 4L
Спасибо сказали: MNS81, zapret007, MAVER145, Oganyan-Arthur, Xamid, arban, vodoo999, KalaN, D3mon, Pixel, Nikitos, cires

makzim


Новичок


Регистрация: 6.3.09
Сообщений: 20
Репутация: -5





 
  #2 [08.04.10, 23:32] Re: F.A.Q по портированию замэйновых патчей   

 
А что делать если после отката патча, надо портировать замейновые адреса, а они там нулевые, тоесть соответствующий адрес в другой прошивке найти нельзя через Patsearchnt???



D3mon


Developer


Регистрация: 23.2.08
Сообщений: 1141
Репутация: 10348
Откуда: Краснодар




 
  #3 [08.04.10, 23:45] Re: F.A.Q по портированию замэйновых патчей   

 
BlackSerh, он не это имел ввиду)
makzim, такие адреса оставляй как есть, не надо loc_ на 0х менять! Если конкретно по мануалу, то такой адрес:
Код:
addr9 = 0x45CE104A+1

лучше так: loc_45CE104A+1
Потому что этот адрес ведет в сам патч!




Sony Xperia XZ3 Green
Sony Xperia Z3 Compact Orange
W995i SW-R1GA026
:(

makzim


Новичок


Регистрация: 6.3.09
Сообщений: 20
Репутация: -5





 
  #4 [08.04.10, 23:52] Re: F.A.Q по портированию замэйновых патчей   

 
D3mon пишет:
BlackSerh, он не это имел ввиду)
makzim, такие адреса оставляй как есть, не надо loc_ на 0х менять! Если конкретно по мануалу, то такой адрес:
Код:
addr9 = 0x45CE104A+1

лучше так: loc_45CE104A+1
Потому что этот адрес ведет в сам патч!

Как раз таки это и имел :) Спс...
Просто я не уверен был, ставить любые замейновые или все таки каким то образом искать соответствующие... :)
А что по мануалу loc_ и sub_ можно не менять?
кстати, а у меня еще есть и unk_504830D с ним надо что нибудь делать?



D3mon


Developer


Регистрация: 23.2.08
Сообщений: 1141
Репутация: 10348
Откуда: Краснодар




 
  #5 [09.04.10, 17:54] Re: F.A.Q по портированию замэйновых патчей   

 
makzim писал:
А что по мануалу loc_ и sub_ можно не менять?

их нужны менять! но не всегда!
для примера, смотрим на патч, который в мануале, и видим, что в нем есть такой код:
Код: 
loc_45CE104A:
PUSH {R0-R7,LR}
LDR R0, off_45CE108C
LDR R7, off_45CE1090
BLX R7
CMP R0, 0
BEQ loc_45CE105A
LDR R7, off_45CE1094
BLX R7

после этого видим, что адрес addr9 = loc_45CE104A+1 ведет как раз к этому куску! Поэтому здесь не нужно loc_ на 0х менять!

unk_504830D с ним надо что нибудь делать?

поменяй на 0x




Sony Xperia XZ3 Green
Sony Xperia Z3 Compact Orange
W995i SW-R1GA026
:(

makzim


Новичок


Регистрация: 6.3.09
Сообщений: 20
Репутация: -5





 
  #6 [10.04.10, 04:21] Re: F.A.Q по портированию замэйновых патчей   

 
Patcher спс... все получилось :)



vetel


Опытный


Регистрация: 27.4.10
Сообщений: 171
Репутация: 1282
Откуда: Россия




 
  #7 [30.07.10, 14:27] Re: F.A.Q по портированию замэйновых патчей   

 
вот пробую портировать патч
Код:
;W610 SW-R6BC002
;Добавить в информацию о файле отображение размера файла в байтах.
;Работает также с папками, java-приложениями и e-mail сообщениями.
;Добавлено раздельное отображение у java-приложений размера jar архива и данных приложения.
;v4
;(!) Внимание, данная версия не полная, не работает с e-mail сообщениями. Позже все будет :)
;(c) Tartes
;(p) awg
44eb97f2: 03CF083F19F039FDE060 01490847C0462DBBAA45
44ebd786: C069002115F06FFDA862 01490847FFFF01BBAA45
44ec00b2: 321C052103A87AF182F8 01490847C04619BBAA45
44ec160e: 03CF083F11F02BFEE060 01490847C0462DBBAA45
44f7bc1c: FA61 C046
44f7bbe2: 207818326946F6F700FF 01490847C04641BBAA45
45aabb00: 00000000000000000000000000000000 C069061C0021414A9047311C00F061F8
45aabb10: 00000000000000000000000000000000 A8620B26414A1047321C052103A83D4C
45aabb20: 00000000000000000000000000000000 A047029900F055F83D4C204703CF083F
45aabb30: 00000000000000000000000000000000 364A9047396800F04CF8E060394A1047
45aabb40: 00000000000000000000000000000000 207818326946324B9847F0B4A0684569
45aabb50: 00000000000000000000000000000000 8669A9193C4800F03CF88CB00090384F
45aabb60: 00000000000000000000000000000000 01973B48029034480390012292029542
45aabb70: 00000000000000000000000000000000 02D2281C334F01E0A80A334F264A9047
45aabb80: 00000000000000000000000000000000 0490381C291C00F024F805902C480690
45aabb90: 00000000000000000000000000000000 2E480790294808902748099001229202
45aabba0: 00000000000000000000000000000000 964202D2301C274F01E0B00A264F1A4A
45aabbb0: 00000000000000000000000000000000 90470A90381C311C00F00BF80B9000A8
45aabbc0: 00000000000000000000000000000000 05210C22134FB8470CB0F0BCF861164B
45aabbd0: 00000000000000000000000000000000 18470EB501229202914215D387B00090
45aabbe0: 00000000000000000000000000000000 1448019011480290081C0B4A90470390
45aabbf0: 00000000000000000000000000000000 10480490134805900D48069000A80521
45aabc00: 00000000000000000000000000000000 0722044B984707B00EBDFFFF6D32ED44
45aabc10: 00000000000000000000000000000000 ED29F7442DDB334579D8334593D7EB44
45aabc20: 00000000000000000000000000000000 BD00EC44FD97EB44EDBBF74428000078
45aabc30: 00000000000000000000000000000000 29000078A0000078200000783A000078
45aabc40: 00000000000000000000000000000000 0A000078730400005706000058040000
45aabc50: 00000000 0F1C0000
на к550 р8, скомпилился нормально, но почему то не хватает 4 байтов,хотя я только адреса портировал ничего больше не менял, в оригинальном исходнике все отлично как надо, вот оригинальный исходник
Код:
include "x.inc"
; ---------------------------------------------------------------------------
org 0x44EB97F2
LDR R1, 0x44EB97F8
BX R1
DCB 0xC0
DCB 0x46
off_44EB97F8 DCD 0x45AABB2C+1 ; DATA XREF: ROM:44EB97F2r
; ---------------------------------------------------------------------------
org 0x44EBD786
LDR R1, 0x44EBD78C
BX R1
align 4
off_44EBD78C DCD 0x45AABB00+1 ; DATA XREF: ROM:44EBD786r
; ---------------------------------------------------------------------------
org 0x44EC00B2
LDR R1, 0x44EC00B8
BX R1
DCB 0xC0
DCB 0x46
off_44EC00B8 DCD 0x45AABB18+1 ; DATA XREF: ROM:44EC00B2r
; ---------------------------------------------------------------------------
org 0x44EC160E
LDR R1, 0x44EC1614
BX R1
DCB 0xC0
DCB 0x46
off_44EC1614 DCD 0x45AABB2C+1 ; DATA XREF: ROM:44EC160Er
; ---------------------------------------------------------------------------
org 0x44F7BC1C
NOP
; ---------------------------------------------------------------------------
org 0x44F7BBE2
LDR R1, 0x44F7BBE8
BX R1
DCB 0xC0
DCB 0x46
off_44F7BBE8 DCD 0x45AABB40+1 ; DATA XREF: ROM:44F7BBE2r
; ---------------------------------------------------------------------------
addr1 = 0x44ED326D
addr2 = 0x44F729ED
addr3 = 0x4533DB2D
addr4 = 0x4533D879
addr5 = 0x44EBD793
addr6 = 0x44EC00BD
addr7 = 0x44EB97FD
addr8 = 0x44F7BBED




ORG 0x45AABB00
CODE16
LDR R0, [R0,0x1C]
ADD R6, R0, 0
MOV R1, 0
LDR R2, dword_45AABC0C
BLX R2
ADD R1, R6, 0
BL sub_45AABBD2
STR R0, [R5,0x28]
MOV R6, 0xB
LDR R2, dword_45AABC1C
BX R2
; ---------------------------------------------------------------------------
ADD R2, R6, 0
MOV R1, 5
ADD R0, SP, 0xC
LDR R4, dword_45AABC14
BLX R4
LDR R1, [SP,8]
BL sub_45AABBD2
LDR R4, dword_45AABC20
BX R4
; ---------------------------------------------------------------------------
LDMIA R7!, {R0,R1}
SUB R7, 8
LDR R2, dword_45AABC0C
BLX R2
LDR R1, [R7]
BL sub_45AABBD2
STR R0, [R4,0xC]
LDR R2, dword_45AABC24
BX R2
; ---------------------------------------------------------------------------
LDRB R0, [R4]
ADD R2, 0x18
MOV R1, SP
LDR R3, dword_45AABC10
BLX R3
PUSH {R4-R7}
LDR R0, [R4,8]
LDR R5, [R0,0x14]
LDR R6, [R0,0x18]
ADD R1, R5, R6
LDR R0, dword_45AABC48
BL sub_45AABBD2
SUB SP, SP, 0x30
STR R0, [SP]
LDR R7, dword_45AABC40
STR R7, [SP,4]
LDR R0, dword_45AABC50
STR R0, [SP,8]
LDR R0, dword_45AABC38
STR R0, [SP,0xC]
MOVL R2, 0x400
CMP R5, R2
BCS loc_45AABB78
ADD R0, R5, 0
LDR R7, dword_45AABC44
B loc_45AABB7C
; ---------------------------------------------------------------------------

loc_45AABB78: ; CODE XREF: ROM:45AABB70j
LSR R0, R5, 0xA
LDR R7, dword_45AABC48

loc_45AABB7C: ; CODE XREF: ROM:45AABB76j
LDR R2, dword_45AABC18
BLX R2
STR R0, [SP,0x10]
ADD R0, R7, 0
ADD R1, R5, 0
BL sub_45AABBD2
STR R0, [SP,0x14]
LDR R0, dword_45AABC40
STR R0, [SP,0x18]
LDR R0, dword_45AABC4C
STR R0, [SP,0x1C]
LDR R0, dword_45AABC3C
STR R0, [SP,0x20]
LDR R0, dword_45AABC38
STR R0, [SP,0x24]
MOVL R2, 0x400
CMP R6, R2
BCS loc_45AABBAA
ADD R0, R6, 0
LDR R7, dword_45AABC44
B loc_45AABBAE
; ---------------------------------------------------------------------------

loc_45AABBAA: ; CODE XREF: ROM:45AABBA2j
LSR R0, R6, 0xA
LDR R7, dword_45AABC48

loc_45AABBAE: ; CODE XREF: ROM:45AABBA8j
LDR R2, dword_45AABC18
BLX R2
STR R0, [SP,0x28]
ADD R0, R7, 0
ADD R1, R6, 0
BL sub_45AABBD2
STR R0, [SP,0x2C]
ADD R0, SP, 0
MOV R1, 5
MOV R2, 0xC
LDR R7, dword_45AABC14
BLX R7
ADD SP, SP, 0x30
POP {R4-R7}
STR R0, [R7,0x1C]
LDR R3, dword_45AABC28
BX R3

; =============== S U B R O U T I N E =======================================


sub_45AABBD2: ; CODE XREF: ROM:45AABB0Cp
; ROM:45AABB24p ...

var_2C = -0x2C
var_28 = -0x28
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
var_14 = -0x14

PUSH {R1-R3,LR}
MOVL R2, 0x400
CMP R1, R2
BCC locret_45AABC08
SUB SP, SP, 0x1C
STR R0, [SP,0x2C+var_2C]
LDR R0, dword_45AABC34
STR R0, [SP,0x2C+var_28]
LDR R0, dword_45AABC2C
STR R0, [SP,0x2C+var_24]
ADD R0, R1, 0
LDR R2, dword_45AABC18
BLX R2
STR R0, [SP,0x2C+var_20]
LDR R0, dword_45AABC34
STR R0, [SP,0x2C+var_1C]
LDR R0, dword_45AABC44
STR R0, [SP,0x2C+var_18]
LDR R0, dword_45AABC30
STR R0, [SP,0x2C+var_14]
ADD R0, SP, 0x2C+var_2C
MOV R1, 5
MOV R2, 7
LDR R3, dword_45AABC14
BLX R3
ADD SP, SP, 0x1C

locret_45AABC08: ; CODE XREF: sub_45AABBD2+8j
POP {R1-R3,PC}
; End of function sub_45AABBD2

; ---------------------------------------------------------------------------
align 4
dword_45AABC0C DCD addr1 ; DATA XREF: ROM:45AABB06r
; ROM:45AABB30r
dword_45AABC10 DCD addr2 ; DATA XREF: ROM:45AABB46r
dword_45AABC14 DCD addr3 ; DATA XREF: ROM:45AABB1Er
; ROM:45AABBC4r ...
dword_45AABC18 DCD addr4 ; DATA XREF: ROM:loc_45AABB7Cr
; ROM:loc_45AABBAEr ...
dword_45AABC1C DCD addr5 ; DATA XREF: ROM:45AABB14r
dword_45AABC20 DCD addr6 ; DATA XREF: ROM:45AABB28r
dword_45AABC24 DCD addr7 ; DATA XREF: ROM:45AABB3Cr
dword_45AABC28 DCD addr8 ; DATA XREF: ROM:45AABBCEr
dword_45AABC2C DCD 0x78000028 ; DATA XREF: sub_45AABBD2+12r
dword_45AABC30 DCD 0x78000029 ; DATA XREF: sub_45AABBD2+26r
dword_45AABC34 DCD 0x780000A0 ; DATA XREF: sub_45AABBD2+Er
; sub_45AABBD2+1Er
dword_45AABC38 DCD 0x78000020 ; DATA XREF: ROM:45AABB66r
; ROM:45AABB98r
dword_45AABC3C DCD 0x7800003A ; DATA XREF: ROM:45AABB94r
dword_45AABC40 DCD 0x7800000A ; DATA XREF: ROM:45AABB5Er
; ROM:45AABB8Cr
dword_45AABC44 DCD 0x473 ; DATA XREF: ROM:45AABB74r
; ROM:45AABBA6r ...
dword_45AABC48 DCD 0x657 ; DATA XREF: ROM:45AABB54r
; ROM:45AABB7Ar ...
dword_45AABC4C DCD 0x458 ; DATA XREF: ROM:45AABB90r
dword_45AABC50 DCD 0x1C0F ; DATA XREF: ROM:45AABB62r
; ROM ends




Sony Xperia XA
Samsung SM-J120F/DS Galaxy J12016

C510 R1HA035 Brown
снова со мной

K550 R8BA024
почти помер

Therion


Developer/Admin


Регистрация: 9.2.08
Сообщений: 1748
Репутация: 10884
Откуда: Украина, г. Киев




 
  #8 [30.07.10, 14:51] Re: F.A.Q по портированию замэйновых патчей   

 
vetel, в иде,на строчках подобного вида STR R0, [SP,0x2C+var_1C] нажми K
тогда это будет ненадо
var_2C = -0x2C
var_28 = -0x28
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
var_14 = -0x14

DCB 0xC0
DCB 0x46 это можно заменить этим:align 4

org 0x44EC00B2
LDR R1, 0x44EC00B8
BX R1
DCB 0xC0
DCB 0x46
off_44EC00B8 DCD 0x45AABB18+1 ; DATA XREF: ROM:44EC00B2rъ

ты опьять же таки грузиш одно а уравнюеш другое


Добавлено 30.7.10 13:53

тут столько косяков,что ида тут не виновата. переделай всё заново и внимательно... линкуй то что уровнял




vetel


Опытный


Регистрация: 27.4.10
Сообщений: 171
Репутация: 1282
Откуда: Россия




 
  #9 [30.07.10, 15:02] Re: F.A.Q по портированию замэйновых патчей   

 
Therion, я пробовал заменить эти DCB 0xC0 DCB 0x46 значения на align 4, но из за этого у меня почему патч неправильно компилился, вот DCB 0xFF DCB 0xFF я заменил этим align 4, вот исходник у меня сейчас нормально компилится и полученный патч абсолютно идентичен оригиналу, и в нем я уже смысла нет ковырятся, мне вот только осталось адреса портануть, почему иногда через patsearchnt не находит адрес? выделяй хоть много хоть мало кода все равно не находит


Добавлено 30.7.10 15:22

Therion, да в этом то нет проблем, проблемы при портировании, первый раз портанул все адреса и в патче не хватало 4 байтов, я скопировал их с оригинала w610, залил этот патч но везде в инфе о файле ребуты




Sony Xperia XA
Samsung SM-J120F/DS Galaxy J12016

C510 R1HA035 Brown
снова со мной

K550 R8BA024
почти помер

vile


Patcher


Регистрация: 7.12.07
Сообщений: 123
Репутация: 500
Откуда: Екатеринбург




 
  #10 [30.07.10, 15:23] Re: F.A.Q по портированию замэйновых патчей   

 
Помоему уже достаточно этих Фагов по портированию ) они все одинаковые получаются ) ничего нового уже рассказать не получиться ;-)




Sе C510 SW-R1HA035 Был

iPhone 5s 32gb iOS 9.2
Страница 1 из 7: [1] 2 3 4 5 ... 7 »


Похожие темы

  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.21 секунд | 11 Запросов | HTML: 83.85 КБ -