Портирование за main'-овых патчей A2 : Патчестроение : Форум

Страница 1 из 17: [1] 2 3 4 5 ... 17 »

 SEVENI:
06.03.10, 19:21
 Нам понадобится:
1) IDA 5.2
2) Pattsearch
3) Ida_cxcloader
4) read3150_0.5
5) патч
6) Компилятор от den_po
7) 2 idc-файла для применения/отката патча на phone_app.cxc
8) main прошивки на которую есть патч (W595_R3EA037) и main прошивки на которую будем портировать патч (W760_R3CA033)

я приведу пример портирования патча
Код: 
;W595 SW-R3EA037 LD
;Advanced range of brightness adjustment
;Allows you to adjust brightness from 10 to 100%
;(c) IronMaster
;(p) navin
10dc11a8: 401D 401C
10dc14a0: 262801D200207047312801D2 00B50149884700BDE1D06C12
10dc14cc: 042810D801A1095C8F44C046 00B50149884700BD2DD16C12
10dc1636: 0522 0922
10e647a2: 242A01D22422 0A2A01D20A22
126cd0e0: 00000000000000000000000000000000 142801D2002070471E2801D201207047
126cd0f0: 00000000000000000000000000000000 282801D202207047322801D203207047
126cd100: 00000000000000000000000000000000 3C2801D204207047462801D205207047
126cd110: 00000000000000000000000000000000 502801D2062070475A2801D207207047
126cd120: 00000000000000000000000000000000 642801D2082070470920704708281AD8
126cd130: 00000000000000000000000000000000 01A1095C8F44C0460A0E12161A1E2226
126cd140: 00000000000000000000000000000000 2A000A207047142070471E2070472820
126cd150: 00000000000000000000000000000000 7047322070473C207047462070475020
126cd160: 00000000000000000000 70475A20704764207047

с W595_R3EA037 на W760_R3CA033

1) загрузка прошивки:
первым делом, нам нужно правильно загрузить обе прошивки в IDA
для этого воспользуемся следующим:
кладём cxcldr.ldw в IDA/loaders
киаем оба main-файла прошивок на read3150.exe по очереди
в полученных каталогах с именем прошивок находим phone_app.cxc
теперь открываем IDA
File/open (в типах файлов ставим all files) и открываем phone_app.cxc от прошивки W595_R3EA037
в окне загрузки мы нажимаем Set и Ok ждем загрузки
далее переводим прошивку в Thumb-режим (Alt+G=T, value 1)
и настраиваем отображение байт
Options/general/Disassembly/Number of opcode bytes ставим 4
переходим на вкладку analysis/Processor specific analysis options и ставим галку на пункте Disable pointer dereferencing, нажимаем Reanalyse program и Ok

запускаем IDA ещё раз и проводим аналогичную операцию с phone_app.cxc от прошивки W760_R3CA033
и так, переходим в окно с phone_app.cxc от прошивки W595_R3EA037
2) создание исходника:
применяем патч на прошивку (File/IDC file.../Applypatch.idc)
и переходим по первому адресу патча("G") - 10dc11a8
нажимаем "C" - побежали циферки
нам нужен код 2-х байт 401C - смотрим напротив их это ADDS R0, R0, #1
создаем текстовый файл и записываем первой строкой include "x.inc", далее расписываем первую врезку
Код:
include "x.inc"
org 0x10dc11a8 
ADDS    R0, R0, #1

аналогично переходим по второму адресу патча 10dc14a0 здесь нам нужен код 12-ти байт 00B50149884700BDE1D06C12
т.е это будет
Код:
PUSH    {LR}
LDR     R1, off_10DC14A8
BLX     R1
POP     {PC}
off_10DC14A8    DCD loc_126CD0E0+1

оформляем 2-ю врезку:
Код: 
include "x.inc"
org 0x10dc11a8 
ADDS    R0, R0, #1
org 0x10dc14a0
PUSH    {LR}
LDR     R1, off_10DC14A8
BLX     R1
POP     {PC}
off_10DC14A8    DCD loc_126CD0E0+1

аналогично преобразовываем 3-й, 4-й и 5-й адрес, получаем
include "x.inc"
org 0x10dc11a8
ADDS R0, R0, #1
org 0x10dc14a0
PUSH {LR}
LDR R1, off_10DC14A8
BLX R1
POP {PC}
off_10DC14A8 DCD loc_126CD0E0+1
org 0x10dc14cc
PUSH {LR}
LDR R1, off_10DC14D4
BLX R1
POP {PC}
off_10DC14D4 DCD loc_126CD12C+1
org 0x10dc1636
MOVS R2, #9
org 0x10e647a2
CMP R2, #0xA
BCS loc_10E647AA
MOVS R2, #0xA
теперь мы переходим в тело патча,
берем начальный адрес тела патча и записываем его аналогично врезке и добавляем Thumb-режим CODE16 (не обязательно)
include "x.inc"
org 0x10dc11a8
ADDS R0, R0, #1
org 0x10dc14a0
PUSH {LR}
LDR R1, off_10DC14A8
BLX R1
POP {PC}
off_10DC14A8 DCD loc_126CD0E0+1
org 0x10dc14cc
PUSH {LR}
LDR R1, off_10DC14D4
BLX R1
POP {PC}
off_10DC14D4 DCD loc_126CD12C+1
org 0x10dc1636
MOVS R2, #9
org 0x10e647a2
CMP R2, #0xA
BCS loc_10E647AA
MOVS R2, #0xA
org 0x126cd0e0
CODE16
переходим по адресу 126cd0e0 в прошивке и нажимаем "C" на всех жёлтых адресах ниже,
пока не пойдёт пустота:
Код:
DCB    0
DCB    0
DCB    0
DCB    0

т.е наше тело патча - это кусок кода с адреса 126cd0e0 до адреса 126CD168 - выделяем, нажимаем File/Produce file/create ASM file и сохраняем в удобное место
открываем наш полученный asm-файл
;
; +-------------------------------------------------------------------------+
; | 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_126CD0E0 ; CODE XREF: ROM:10DC14A4j
; DATA XREF: ROM:off_10DC14A8o
CMP R0, #0x14
BCS loc_126CD0E8
MOVS R0, #0
BX LR
; ---------------------------------------------------------------------------

loc_126CD0E8 ; CODE XREF: ROM:126CD0E2j
CMP R0, #0x1E
BCS loc_126CD0F0
MOVS R0, #1
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F0 ; CODE XREF: ROM:126CD0EAj
CMP R0, #0x28
BCS loc_126CD0F8
MOVS R0, #2
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F8 ; CODE XREF: ROM:126CD0F2j
CMP R0, #0x32
BCS loc_126CD100
MOVS R0, #3
BX LR
; ---------------------------------------------------------------------------

loc_126CD100 ; CODE XREF: ROM:126CD0FAj
CMP R0, #0x3C
BCS loc_126CD108
MOVS R0, #4
BX LR
; ---------------------------------------------------------------------------

loc_126CD108 ; CODE XREF: ROM:126CD102j
CMP R0, #0x46
BCS loc_126CD110
MOVS R0, #5
BX LR
; ---------------------------------------------------------------------------

loc_126CD110 ; CODE XREF: ROM:126CD10Aj
CMP R0, #0x50
BCS loc_126CD118
MOVS R0, #6
BX LR
; ---------------------------------------------------------------------------

loc_126CD118 ; CODE XREF: ROM:126CD112j
CMP R0, #0x5A
BCS loc_126CD120
MOVS R0, #7
BX LR
; ---------------------------------------------------------------------------

loc_126CD120 ; CODE XREF: ROM:126CD11Aj
CMP R0, #0x64
BCS loc_126CD128
MOVS R0, #8
BX LR
; ---------------------------------------------------------------------------

loc_126CD128 ; CODE XREF: ROM:126CD122j
MOVS R0, #9
BX LR
; ---------------------------------------------------------------------------

loc_126CD12C ; CODE XREF: ROM:10DC14D0j
; DATA XREF: ROM:off_10DC14D4o
CMP R0, #8
BHI loc_126CD166
ADR R1, loc_126CD138
LDRB R1, [R1,R0]
ADD PC, R1
; ---------------------------------------------------------------------------
NOP

loc_126CD138 ; DATA XREF: ROM:126CD130o
LSRS R2, R1, #0x18
ASRS R2, R2, #0x18
SUBS R2, R3, #0
MOVS R6, #0x22
LSLS R2, R5, #0
MOVS R0, #0xA
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x14
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x1E
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x28
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x32
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x3C
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x46
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x50
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x5A
BX LR
; ---------------------------------------------------------------------------

loc_126CD166 ; CODE XREF: ROM:126CD12Ej
MOVS R0, #0x64
BX LR
; ---------------------------------------------------------------------------

удаляем шапку и комментарии, получаем:
; ---------------------------------------------------------------------------

loc_126CD0E0

CMP R0, #0x14
BCS loc_126CD0E8
MOVS R0, #0
BX LR
; ---------------------------------------------------------------------------

loc_126CD0E8
CMP R0, #0x1E
BCS loc_126CD0F0
MOVS R0, #1
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F0
CMP R0, #0x28
BCS loc_126CD0F8
MOVS R0, #2
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F8
CMP R0, #0x32
BCS loc_126CD100
MOVS R0, #3
BX LR
; ---------------------------------------------------------------------------

loc_126CD100
CMP R0, #0x3C
BCS loc_126CD108
MOVS R0, #4
BX LR
; ---------------------------------------------------------------------------

loc_126CD108
CMP R0, #0x46
BCS loc_126CD110
MOVS R0, #5
BX LR
; ---------------------------------------------------------------------------

loc_126CD110
CMP R0, #0x50
BCS loc_126CD118
MOVS R0, #6
BX LR
; ---------------------------------------------------------------------------

loc_126CD118
CMP R0, #0x5A
BCS loc_126CD120
MOVS R0, #7
BX LR
; ---------------------------------------------------------------------------

loc_126CD120
CMP R0, #0x64
BCS loc_126CD128
MOVS R0, #8
BX LR
; ---------------------------------------------------------------------------

loc_126CD128
MOVS R0, #9
BX LR
; ---------------------------------------------------------------------------

loc_126CD12C

CMP R0, #8
BHI loc_126CD166
ADR R1, loc_126CD138
LDRB R1, [R1,R0]
ADD PC, R1
; ---------------------------------------------------------------------------
NOP

loc_126CD138
LSRS R2, R1, #0x18
ASRS R2, R2, #0x18
SUBS R2, R3, #0
MOVS R6, #0x22
LSLS R2, R5, #0
MOVS R0, #0xA
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x14
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x1E
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x28
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x32
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x3C
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x46
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x50
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x5A
BX LR
; ---------------------------------------------------------------------------

loc_126CD166
MOVS R0, #0x64
BX LR
; ---------------------------------------------------------------------------
теперь добавляем нашу первую часть исходника(врезки)

include "x.inc"
org 0x10dc11a8
ADDS R0, R0, #1
org 0x10dc14a0
PUSH {LR}
LDR R1, off_10DC14A8
BLX R1
POP {PC}
off_10DC14A8 DCD loc_126CD0E0+1
org 0x10dc14cc
PUSH {LR}
LDR R1, off_10DC14D4
BLX R1
POP {PC}
off_10DC14D4 DCD loc_126CD12C+1
org 0x10dc1636
MOVS R2, #9
org 0x10e647a2
CMP R2, #0xA
BCS loc_10E647AA
MOVS R2, #0xA
org 0x126cd0e0
CODE16
; ---------------------------------------------------------------------------

loc_126CD0E0

CMP R0, #0x14
BCS loc_126CD0E8
MOVS R0, #0
BX LR
; ---------------------------------------------------------------------------

loc_126CD0E8
CMP R0, #0x1E
BCS loc_126CD0F0
MOVS R0, #1
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F0
CMP R0, #0x28
BCS loc_126CD0F8
MOVS R0, #2
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F8
CMP R0, #0x32
BCS loc_126CD100
MOVS R0, #3
BX LR
; ---------------------------------------------------------------------------

loc_126CD100
CMP R0, #0x3C
BCS loc_126CD108
MOVS R0, #4
BX LR
; ---------------------------------------------------------------------------

loc_126CD108
CMP R0, #0x46
BCS loc_126CD110
MOVS R0, #5
BX LR
; ---------------------------------------------------------------------------

loc_126CD110
CMP R0, #0x50
BCS loc_126CD118
MOVS R0, #6
BX LR
; ---------------------------------------------------------------------------

loc_126CD118
CMP R0, #0x5A
BCS loc_126CD120
MOVS R0, #7
BX LR
; ---------------------------------------------------------------------------

loc_126CD120
CMP R0, #0x64
BCS loc_126CD128
MOVS R0, #8
BX LR
; ---------------------------------------------------------------------------

loc_126CD128
MOVS R0, #9
BX LR
; ---------------------------------------------------------------------------

loc_126CD12C

CMP R0, #8
BHI loc_126CD166
ADR R1, loc_126CD138
LDRB R1, [R1,R0]
ADD PC, R1
; ---------------------------------------------------------------------------
NOP

loc_126CD138
LSRS R2, R1, #0x18
ASRS R2, R2, #0x18
SUBS R2, R3, #0
MOVS R6, #0x22
LSLS R2, R5, #0
MOVS R0, #0xA
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x14
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x1E
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x28
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x32
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x3C
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x46
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x50
BX LR
; ---------------------------------------------------------------------------
MOVS R0, #0x5A
BX LR
; ---------------------------------------------------------------------------

loc_126CD166
MOVS R0, #0x64
BX LR
; ---------------------------------------------------------------------------
3) редактирование исходника:
редактируем наш исходник при помощи обычного текстового редактора:
все "#" удаляем (Ctrl+H) в поле "Что?" вставляем #, поле "Чем?" оставляем пустым
нажимаем заменить всё
адреса типа "DCD loc_126CD0E0+1" преобразовываем в "DCD 0x126CD0E0+1"
Все команды MOVS, LSRS, SUBS, LSLS, ASRS и т.д заменяем на MOV, LSR, SUB, LSL, ASR
после ссылок, типа
loc_126CD0E0, loc_126CD0E8 ставим ":" т.е у нас получится loc_126CD0E0:, loc_126CD0E8:, у всех ADR меняем регистр на adr
и так, у нас получился готовый исходник
include "x.inc"
org 0x10dc11a8
ADD R0, R0, 1
org 0x10dc14a0
PUSH {LR}
LDR R1, off_10DC14A8
BLX R1
POP {PC}
off_10DC14A8 DCD 0x126CD0E0+1
org 0x10dc14cc
PUSH {LR}
LDR R1, off_10DC14D4
BLX R1
POP {PC}
off_10DC14D4 DCD 0x126CD12C+1
org 0x10dc1636
MOV R2, 9
org 0x10e647a2
CMP R2, 0xA
BCS 0x10E647AA
MOV R2, 0xA
org 0x126cd0e0
CODE16
; ---------------------------------------------------------------------------

loc_126CD0E0:

CMP R0, 0x14
BCS loc_126CD0E8
MOV R0, 0
BX LR
; ---------------------------------------------------------------------------

loc_126CD0E8:
CMP R0, 0x1E
BCS loc_126CD0F0
MOV R0, 1
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F0:
CMP R0, 0x28
BCS loc_126CD0F8
MOV R0, 2
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F8:
CMP R0, 0x32
BCS loc_126CD100
MOV R0, 3
BX LR
; ---------------------------------------------------------------------------

loc_126CD100:
CMP R0, 0x3C
BCS loc_126CD108
MOV R0, 4
BX LR
; ---------------------------------------------------------------------------

loc_126CD108:
CMP R0, 0x46
BCS loc_126CD110
MOV R0, 5
BX LR
; ---------------------------------------------------------------------------

loc_126CD110:
CMP R0, 0x50
BCS loc_126CD118
MOV R0, 6
BX LR
; ---------------------------------------------------------------------------

loc_126CD118:
CMP R0, 0x5A
BCS loc_126CD120
MOV R0, 7
BX LR
; ---------------------------------------------------------------------------

loc_126CD120:
CMP R0, 0x64
BCS loc_126CD128
MOV R0, 8
BX LR
; ---------------------------------------------------------------------------

loc_126CD128:
MOV R0, 9
BX LR
; ---------------------------------------------------------------------------

loc_126CD12C:

CMP R0, 8
BHI loc_126CD166
adr R1, loc_126CD138
LDRB R1, [R1,R0]
ADD PC, R1
; ---------------------------------------------------------------------------
NOP

loc_126CD138:
LSR R2, R1, 0x18
ASR R2, R2, 0x18
SUB R2, R3, 0
MOV R6, 0x22
LSL R2, R5, 0
MOV R0, 0xA
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x14
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x1E
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x28
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x32
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x3C
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x46
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x50
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x5A
BX LR
; ---------------------------------------------------------------------------

loc_126CD166:
MOV R0, 0x64
BX LR
; ---------------------------------------------------------------------------
4) портирование исходника:
осталось только портировать адреса на W760_R3CA033
отменяем патч на phone_app.cxc от прошивки W595_R3EA037
открываем pattsearch нажимаем load ff и выбираем phone_app.cxc от прошивки W760_R3CA033
в праврм верхнем углу программы указываем базу загрузки, в данном случае 0xFFFE000
теперь снова переходим по первому адресу патча в phone_app.cxc от прошивки W595_R3EA037
нажимаем "С" и выделяем не большой кусок кода, вставляем в окно pattsearch и нажимаем convert - мы создали паттерн
теперь все 4-х байтные строки паттерна мы заменяем на Код:
??,??,??,?? т.е ??,??,??,FD => ??,??,??,??
и т.д
нажимаем Search и в правом окне программы, получаем адрес 1191FD7C - это адрес 1-й врезки на прошивку W760_R3CA033
двигаемся ниже - получаем адрес 11920070 - это адрес 2-й врезки на прошивку W760_R3CA033
не забываем про то, что адреса в коде тоже нужно портировать
так выглядит врезка на W595_R3EA037:
Код:
org 0x10dc14a0
PUSH    {LR}
LDR     R1, off_10DC14A8
BLX     R1
POP     {PC}
off_10DC14A8    DCD 0x126CD0E0+1

а вот так на W760_R3CA033:
Код:
org 0x1191FD7C
PUSH    {LR}
LDR     R1, off_11920078
BLX     R1
POP     {PC}
off_11920078    DCD 0x126CD0E0+1


DCD 0x126CD0E0+1 - это адрес ссылающийся на замэйн(в данном случае, с него пойдет замэйн)
двигаемся далее и в конце концов у нас получается готовый исходник с адресами на W760_R3CA033
include "x.inc"
org 0x1191FD7C
ADD R0, R0, 1
org 0x11920070
PUSH {LR}
LDR R1, off_11920078
BLX R1
POP {PC}
off_11920078 DCD 0x126E78F0+1
org 0x1192009C
PUSH {LR}
LDR R1, off_119200A4
BLX R1
POP {PC}
off_119200A4 DCD 0x126E793C+1
org 0x119201EA
MOV R2, 9
org 0x119D9A06
CMP R2, 0xA
BCS 0x119D9A0E
MOV R2, 0xA
org 0x126E78F0
CODE16
; ---------------------------------------------------------------------------

loc_126CD0E0:

CMP R0, 0x14
BCS loc_126CD0E8
MOV R0, 0
BX LR
; ---------------------------------------------------------------------------

loc_126CD0E8:
CMP R0, 0x1E
BCS loc_126CD0F0
MOV R0, 1
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F0:
CMP R0, 0x28
BCS loc_126CD0F8
MOV R0, 2
BX LR
; ---------------------------------------------------------------------------

loc_126CD0F8:
CMP R0, 0x32
BCS loc_126CD100
MOV R0, 3
BX LR
; ---------------------------------------------------------------------------

loc_126CD100:
CMP R0, 0x3C
BCS loc_126CD108
MOV R0, 4
BX LR
; ---------------------------------------------------------------------------

loc_126CD108:
CMP R0, 0x46
BCS loc_126CD110
MOV R0, 5
BX LR
; ---------------------------------------------------------------------------

loc_126CD110:
CMP R0, 0x50
BCS loc_126CD118
MOV R0, 6
BX LR
; ---------------------------------------------------------------------------

loc_126CD118:
CMP R0, 0x5A
BCS loc_126CD120
MOV R0, 7
BX LR
; ---------------------------------------------------------------------------

loc_126CD120:
CMP R0, 0x64
BCS loc_126CD128
MOV R0, 8
BX LR
; ---------------------------------------------------------------------------

loc_126CD128:
MOV R0, 9
BX LR
; ---------------------------------------------------------------------------

loc_126CD12C:

CMP R0, 8
BHI loc_126CD166
adr R1, loc_126CD138
LDRB R1, [R1,R0]
ADD PC, R1
; ---------------------------------------------------------------------------
NOP

loc_126CD138:
LSR R2, R1, 0x18
ASR R2, R2, 0x18
SUB R2, R3, 0
MOV R6, 0x22
LSL R2, R5, 0
MOV R0, 0xA
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x14
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x1E
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x28
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x32
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x3C
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x46
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x50
BX LR
; ---------------------------------------------------------------------------
MOV R0, 0x5A
BX LR
; ---------------------------------------------------------------------------

loc_126CD166:
MOV R0, 0x64
BX LR
; ---------------------------------------------------------------------------

5) компиляция:
распаковываем компилятор от den_po в любую удобную папку(у меня это D:\armpc2)
кладем туда phone_app.cxc от прошивки W760_R3CA033 и наш исходник(для удобства, я назвал его Untitled1.asm)
Открываем Пуск/Выполнить и вводим такую строку
Код:
D:\armpc2\make.bat Untitled1.asm phone_app.cxc FFFE000 v.info>log.txt
нажимаем Enter и получаем патч в папке с компилятором
Код: 
;W760 SW - R3CA033
;Расширенный диапазон регулировки яркости
;Позволяет регулировать яркость от 10 до 100%
;(c) IronMaster
;(p) SEVENI
+fffe000
1921d7c: 401D 401C
1922070: 262801D200207047312801D2 00B50149884700BDF1786E12
192209c: 042810D801A1095C8F44C046 00B50149884700BD3D796E12
19221ea: 0522 0922
19dba06: 242A01D22422 0A2A01D20A22
26e98f0: 00000000000000000000000000000000 142801D2002070471E2801D201207047
26e9900: 00000000000000000000000000000000 282801D202207047322801D203207047
26e9910: 00000000000000000000000000000000 3C2801D204207047462801D205207047
26e9920: 00000000000000000000000000000000 502801D2062070475A2801D207207047
26e9930: 00000000000000000000000000000000 642801D2082070470920704708281AD8
26e9940: 00000000000000000000000000000000 01A1095C8F44C0460A0E12161A1E2226
26e9950: 00000000000000000000000000000000 2A000A207047142070471E2070472820
26e9960: 00000000000000000000000000000000 7047322070473C207047462070475020
26e9970: 00000000000000000000 70475A20704764207047

Не всегда адреса находятся так легко, могут возникнуть проблеммы с созданием исходника и т.д
но Практика оправдывает своё название
Автор F.A.Q.: SEVENI
Специально для ресурса supertrubka.org

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

Compilator.zip Compilator.zip (64.08 kb; 263 hits) Скачать файл
read3150.zip read3150.zip (49.61 kb; 155 hits) Скачать файл
patsearchnt.zip patsearchnt.zip (178.99 kb; 236 hits) Скачать файл
Idc.zip Idc.zip (6.82 kb; 234 hits) Скачать файл
ida_cxcldr.zip ida_cxcldr.zip (70.30 kb; 287 hits) Скачать файл

 Va_st:
06.03.10, 20:19
 критика епт)
SEVENI писал:
переходим по адресу 126cd0e0 в прошивке и нажимаем "C" на всех жёлтых адресах ниже,

странно конечно,но у меня после открытия врезок тело патча само открывается))
SEVENI писал:
теперь все 4-х байтные строки паттерна мы заменяем на Код:
??,??,??,?? т.е ??,??,??,FD => ??,??,??,??

??,??,??,F?=так будет лучше=) команда bl же( паттерн порой получается короче)SEVENI писал:
добавляем Thumb-режим CODE16 (не обязательно)

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

 SEVENI:
06.03.10, 21:00
 Va_st, 1) инструкция не для конкретного патча, а для всех, бывает и такое, что тело патча не до конца превращается в код
2) это уже для патчей, которые трудно портировать, обычным способом и так находит
3) я довел до ума, что можно как ставить, так и не ставить, но заметь, сам написал =)
зы а других прошивок/патчей в наличии нет пока что и версия компилятора меня устраивает, кому нужно будет, скачают новый =)

 den_po:
07.03.10, 00:35
 
Va_st пишет:
??,??,??,F?=так будет лучше=) команда bl же( паттерн порой получается короче)

насколько я помню, patsearch не умеет такого, F? для него имеет то же значение, что ??

 IronMaster:
07.03.10, 08:09
 Если быть точнее, то сигнатура бл имеет вид
??F???F?

 DuXeN0N:
07.03.10, 19:59
 SEVENI, че-то ниче особенного я не увидел.)) отличается только тем, что адреса другие. =) смысл был писать FAQ?

P.S. Но все равно спс, вдруг кому пригодится

 D3mon:
11.03.10, 16:58
 Решил написать именно сюда..
Открываю я phone_app.cxc от W705_R1GA031

SEVENI писал:
применяем патч на прошивку (File/IDC file.../Applypatch.idc)

Применяю патч Патч:
;W705 SW-R1GA031
;Исчезновение отчета о доставке через 5 секунд
;pAtChFiLe=/boot/phone_app.cxc
;v. 1.1
;(с) IronMaster

Врезки применяются правильно, а вот тело патча нет..

Иду в ИДЕ в самый конец, и вижу, что последний адрес 15CE2FFF, ну а тело патча начинается с 15CE3030, как мне быть? Как можно "расширить" phone_app.cxc?

 Xamid:
11.03.10, 17:29
 лично я делаю по-другому. Тело портирую отдельно через raw по старинке =)


Добавлено 11.3.10 17:42

http://forum.se-team.com/showthread.php?t=20
для тех, кто не в курсе про "по старинке" =)

 xGhost:
11.03.10, 17:46
 Xamid, а если патч большой, тоже "по старинке"?

 A1z:
11.03.10, 17:51
 D3mon, возьми с помощью farcxcpatcher примени патч типа:

Патч: 
15F00000: 00 FF


и твой phone_app.cxc расширится как минимум до 15F00000.
Страница 1 из 17: [1] 2 3 4 5 ... 17 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4700

© 2005-2018 supertrubka.org