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

[Tutorial] Создание ASM файла (исходника). : Патчестроение : Патчи : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Патчи
      /  Патчестроение
   /  [Tutorial] Создание ASM файла (исходника).
На печать 
Правила 
Страница 4 из 9: « 1 2 3 [4] 5 6 7 8 9 »

HierOS


Patcher/Moder


Регистрация: 9.5.07
Сообщений: 1279
Репутация: 761
Откуда: ЖелезЯка




 
  #31 [17.02.09, 20:42] [Tutorial] Создание ASM файла (исходника).   

 
1.- Патч:

;W580 SW-R8BE001
;Play a sound when opening/closing slide.
;In tpa/preset/system/sound put files slideropen.mp3 and sliderclose.mp3
;v 1.3
;Corrected detection of isAudioPlayerBook
;© John North
;(e) HierOS (correct mismatch)


452add9c: 26D0 24D0
452adde8: 2720CCE02820CAE0 004B18474109C045


45c00940: 0000000000000000 10B4114B98470028
45c00948: 0000 11D1
;45c00948: 0000 C046
45c0094A: 000000000000 1048114B9847
45c00950: 00000000000000000000000000000000 00280CD10E480F4B9847002807D10EA1
45c00960: 0000000000000000 3F2C00D014A10648
45c00968: 00 32
45c00969: 00000000000000 22064B984710BC
45c00970: 00000000000000000000000000000000 2720402C00D12820004B184787DF2A45
45c00980: 00000000000000000000000000000000 FC9C7145354800450555FD44554EF344
45c00990: 00000000000000000000000000000000 09AD0F4599DC2A4573006C0069006400
45c009a0: 00000000000000000000000000000000 650072006F00700065006E002E006D00
45c009b0: 00000000000000000000000000000000 700033000000FFFF73006C0069006400
45c009c0: 00000000000000000000000000000000 6500720063006C006F00730065002E00
45c009d0: 0000000000000000 6D00700033000000


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

Врезки и модификации кода прошивки. Изменения сделанные в коде прошивки, которые означают, что оно заменяют байты в фактических функциях, которые используют наши телефоны.

Тело патча. Это - новый код, написанный в конце прошивки нашего телефона, в пустой свободной области.



2.- Понятия:

У комментариев нет никаких функциональных возможностей в теле патча, кроме как указания автора,имени,модели и прошивки,а также дополнительной информации о нём.

Врезки и модификации кода прошивки делают патчеры необходимые для работы новых патчей. Иногда патчеры добавляют в прошивку новые функции, прописывая их в свободную зону прошивки. Новый код называют Телом патча. Патчеры пишут переход туда из прошивки, который по большей части выполняет только переадресацию, после чего следует выполнение нового кода и переадресация к исходной функции, не ломая дальнейший код (бывают и исключения).

Тело патча - это дополнительный код который записывают в свободную область. Для задействования кода патчеры пишут врезки,который переадресует исходную функцию на новую. В большинстве случаев после того, как новый код был выполнен происходит переадресация назад к старому коду,чтобы не оборвать выполнение функции и не вызвать какой-либо сбой.



3.- Основы ассемблирования:

Важной вещью, чтобы понять является cо-отношение между функцией и используемым положением байт.

У каждого байта в наших прошивках есть определенное значение и причина существования, они классифицированы в Данных и Коде. Логика выполнения задаётся процессором,какой байт распознавать как Код,а какой как Данные.
Каждая функция в нашей прошивке использует место (в байтах).

ARM Процессоры (используемые в наших телефонах) имеют 2 'Режима Выполнения' (понимать термин вам не нужно): 16-битное (вызывает THUMB) и 32-битное (вызывает ARM) выполнение. Это означает, - то,что некоторые (большая часть) кода прошивки написаны в виде 16-битных (2 байта) функциях и некоторый другой код в виде 32-битных (4 байта) функций.
Мы не будем касаться Режима Выполнения ASM, так как мы почти не используем его, и продолжим с Режимом Выполнения THUMB.

В Режиме Выполнения THUMB (16-бит) Функции Ассемблера используют 2 байта пространства, таким образом каждые 2 байта THUMB кода, процессор обрабатывает как функцию.



4.- Интерпретация:

Тот код что находится в наших VKP патчах должны изменить какие-то байты в прошивке,изменив при этом функцию нашего телефона. Все значения написаны в HEX-виде.
452add9c: 26D0 24D0

Это часть нашего патча, заменяет 26D0 на 24D0 по адресу 452ADD9C в нашей прошивке.
26D0 - 2 байта, и если мы дизассемблируем их получаем функцию:
ROM:452ADD9C 26 D0 BEQ loc_452ADDEC

ROM:452ADD9C -> Расположение
26D0 -> Байты
BEQ -> Инструкция
loc_452ADDEC -> Параметр

И когда мы применяем патч, 26D0 изменяются на 24D0, и получаем следующее:
ROM:452ADD9C 24 D0 BEQ loc_452ADDE8

Единственное, что изменилось, был параметр функции. Как вы могли заметить, параметр - смещает адрес: 452ADDE8.


5.- Процесс:

• Открываем IDA и загружаем необходимую прошивку.
• Применяем патч используя IDC скрипт 'Apply VKP Patch'.
• Далее Menu > Options > General > 'Number of opcode bytes:' изменяем на 4. (Число байт отображаемых у каждой функции слева).

• Переходим к первой врезке патча: 452add9c. (Горачая клавиша: G)
• Дизассемблируем (Горячая клавиша: C)
• Выбираем строку соответствующую байтам, которые указаны в патче:
452add9c: 26D0 24D0


Это:
Код:
ROM:452ADD9C             ; ---------------------------------------------------------------------------
ROM:452ADD9C 24 D0                       BEQ     loc_452ADDE8

• Нажимаете Alt + F10 и создаёте ваш первый .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  |
; +-------------------------------------------------------------------------+
;


; ---------------------------------------------------------------------------
        BEQ    loc_452ADDE8


• Очищаем его:
Код:
        BEQ    0x452ADDE8


• И добавляем адрес расположения следующим образом:
Код:
org 0x452ADD9C
        BEQ    0x452ADDE8


• Переходим на вторую врезку: 452adde8.
• Смотрим значения патча.
452adde8: 2720CCE02820CAE0 004B18474109C045


• Дизассемблируйте, если это ещё не сделано.
• Выберите всё это:
Код:
ROM:452ADDE8             loc_452ADDE8                            ; CODE XREF: ROM:452ADD9Cj
ROM:452ADDE8 00 4B                       LDR     R3, off_452ADDEC
ROM:452ADDEA 18 47                       BX      R3
ROM:452ADDEA             ; ---------------------------------------------------------------------------
ROM:452ADDEC 41 09 C0 45 off_452ADDEC    DCD loc_45C00940+1      ; DATA XREF: ROM:loc_452ADDE8r

• Нажмите Alt + F10 и создайте ваш второй файл.
• Приведите его в порядок и создайте переход:
Код:
org 0x452ADDE8
        LDR    R3, off_452ADDEC
        BX    R3

off_452ADDEC    DCD 0x45C00940+1


• Переходим на третью врезку: 45c00940
Примечание: Эта врезка переходит в пустую область прошивки,где расположено тело патча.
Примечание2: Во все значения после перехода в тело патча можно делать переход между ними, всё это функция написанная Джон'ом North'ом (Автор)..


• Дизассемблируйте, если это ещё не сделано.
• Выделяем тело патча и создаём третий .asm (Alt + F10).

вот так:
Код: 
ROM:45C00940             loc_45C00940                            ; CODE XREF: ROM:452ADDEAj
ROM:45C00940                                                     ; DATA XREF: ROM:off_452ADDECo
ROM:45C00940 10 B4                       PUSH    {R4}
ROM:45C00942 11 4B                       LDR     R3, off_45C00988
ROM:45C00944 98 47                       BLX     R3
ROM:45C00946 00 28                       CMP     R0, #0
ROM:45C00948 C0 46                       NOP
ROM:45C0094A 10 48                       LDR     R0, off_45C0098C
ROM:45C0094C 11 4B                       LDR     R3, off_45C00994
ROM:45C0094E 98 47                       BLX     R3
ROM:45C00950 00 28                       CMP     R0, #0
ROM:45C00952 0C D1                       BNE     loc_45C0096E
ROM:45C00954 0E 48                       LDR     R0, off_45C00990
ROM:45C00956 0F 4B                       LDR     R3, off_45C00994
ROM:45C00958 98 47                       BLX     R3
ROM:45C0095A 00 28                       CMP     R0, #0
ROM:45C0095C 07 D1                       BNE     loc_45C0096E
ROM:45C0095E 0E A1                       ADR     R1, aSlideropen_mp3 ; "slideropen.mp3"
ROM:45C00960 3F 2C                       CMP     R4, #0x3F
ROM:45C00962 00 D0                       BEQ     loc_45C00966
ROM:45C00964 14 A1                       ADR     R1, aSliderclose_mp ; "sliderclose.mp3"
ROM:45C00966
ROM:45C00966             loc_45C00966                            ; CODE XREF: ROM:45C00962j
ROM:45C00966 06 48                       LDR     R0, off_45C00980
ROM:45C00968 32 22                       MOVS    R2, #0x32
ROM:45C0096A 06 4B                       LDR     R3, off_45C00984
ROM:45C0096C 98 47                       BLX     R3
ROM:45C0096E
ROM:45C0096E             loc_45C0096E                            ; CODE XREF: ROM:45C00952j
ROM:45C0096E                                                     ; ROM:45C0095Cj
ROM:45C0096E 10 BC                       POP     {R4}
ROM:45C00970 27 20                       MOVS    R0, #0x27
ROM:45C00972 40 2C                       CMP     R4, #0x40
ROM:45C00974 00 D1                       BNE     loc_45C00978
ROM:45C00976 28 20                       MOVS    R0, #0x28
ROM:45C00978
ROM:45C00978             loc_45C00978                            ; CODE XREF: ROM:45C00974j
ROM:45C00978 00 4B                       LDR     R3, off_45C0097C
ROM:45C0097A 18 47                       BX      R3
ROM:45C0097A             ; ---------------------------------------------------------------------------
ROM:45C0097C 87 DF 2A 45 off_45C0097C    DCD loc_452ADF86+1      ; DATA XREF: ROM:loc_45C00978r
ROM:45C00980 FC 9C 71 45 off_45C00980    DCD aTpaPresetSyste     ; DATA XREF: ROM:loc_45C00966r
ROM:45C00980                                                     ; "/tpa/preset/system/sound"
ROM:45C00984 35 48 00 45 off_45C00984    DCD loc_45004834+1      ; DATA XREF: ROM:45C0096Ar
ROM:45C00988 05 55 FD 44 off_45C00988    DCD loc_44FD5504+1      ; DATA XREF: ROM:45C00942r
ROM:45C0098C 55 4E F3 44 off_45C0098C    DCD unk_44F34E55        ; DATA XREF: ROM:45C0094Ar
ROM:45C00990 09 AD 0F 45 off_45C00990    DCD unk_450FAD09        ; DATA XREF: ROM:45C00954r
ROM:45C00994 99 DC 2A 45 off_45C00994    DCD loc_452ADC98+1      ; DATA XREF: ROM:45C0094Cr
ROM:45C00994                                                     ; ROM:45C00956r
ROM:45C00998 73 00 6C 00+aSlideropen_mp3 unicode 0, <slideropen.mp3>,0
ROM:45C00998 69 00 64 00+                                        ; DATA XREF: ROM:45C0095Eo
ROM:45C009B6 FF                          DCB 0xFF
ROM:45C009B7 FF                          DCB 0xFF
ROM:45C009B8 73 00 6C 00+aSliderclose_mp unicode 0, <sliderclose.mp3>,0
ROM:45C009B8 69 00 64 00+                                        ; DATA XREF: ROM:45C00964o


Ваш asm файл должен быть похожим на такой:

Код: 
org 0x45C00940
loc_45C00940:
        PUSH    {R4}
        LDR    R3, off_45C00988
        BLX    R3
        CMP    R0, 0
        NOP
        LDR    R0, off_45C0098C
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        LDR    R0, off_45C00990
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        ADR    R1, aSlideropen_mp3
        CMP    R4, 0x3F
        BEQ    loc_45C00966
        ADR    R1, aSliderclose_mp

loc_45C00966:
        LDR    R0, off_45C00980
        MOVS    R2, 0x32
        LDR    R3, off_45C00984
        BLX    R3

loc_45C0096E:
        POP    {R4}
        MOVS    R0, 0x27
        CMP    R4, 0x40
        BNE    loc_45C00978
        MOVS    R0, 0x28

loc_45C00978:
        LDR    R3, off_45C0097C
        BX    R3

align 4

off_45C0097C    DCD 0x452ADF86+1
off_45C00980    DCD 0x45719CFC
off_45C00984    DCD 0x45004834+1
off_45C00988    DCD 0x44FD5504+1
off_45C0098C    DCD 0x44F34E55
off_45C00990    DCD 0x450FAD09
off_45C00994    DCD 0x452ADC98+1

aSlideropen_mp3    du "slideropen.mp3",0

align 4

aSliderclose_mp    du "sliderclose.mp3",0


Примечание: Добавьте 'align 4' перед блоками Данных или Значений.

• Совместите все созданные вами файлы и добавьте 'include "x.inc"' в самом начале:

Код: 
include "x.inc"

org 0x452ADD9C
        BEQ    0x452ADDE8


org 0x452ADDE8
        LDR    R3, off_452ADDEC
        BX    R3

off_452ADDEC    DCD 0x45C00940+1


org 0x45C00940
loc_45C00940:
        PUSH    {R4}
        LDR    R3, off_45C00988
        BLX    R3
        CMP    R0, 0
        NOP
        LDR    R0, off_45C0098C
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        LDR    R0, off_45C00990
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        ADR    R1, aSlideropen_mp3
        CMP    R4, 0x3F
        BEQ    loc_45C00966
        ADR    R1, aSliderclose_mp

loc_45C00966:
        LDR    R0, off_45C00980
        MOVS    R2, 0x32
        LDR    R3, off_45C00984
        BLX    R3

loc_45C0096E:
        POP    {R4}
        MOVS    R0, 0x27
        CMP    R4, 0x40
        BNE    loc_45C00978
        MOVS    R0, 0x28

loc_45C00978:
        LDR    R3, off_45C0097C
        BX    R3

align 4

off_45C0097C    DCD 0x452ADF86+1
off_45C00980    DCD 0x45719CFC
off_45C00984    DCD 0x45004834+1
off_45C00988    DCD 0x44FD5504+1
off_45C0098C    DCD 0x44F34E55
off_45C00990    DCD 0x450FAD09
off_45C00994    DCD 0x452ADC98+1

aSlideropen_mp3    du "slideropen.mp3",0

align 4

aSliderclose_mp    du "sliderclose.mp3",0


• Организуйте подобным образом, добавляя EQU для адресов:

Код: 
include "x.inc"

branch        equ    0x452ADDE8
hook        equ    0x45C00940+1
address1    equ    0x452ADF86+1
address2    equ    0x45719CFC
address3    equ    0x45004834+1
address4    equ    0x44FD5504+1
address5    equ    0x44F34E55
address6    equ    0x450FAD09
address7    equ    0x452ADC98+1

org 0x452ADD9C
        BEQ    branch


org 0x452ADDE8
        LDR    R3, off_452ADDEC
        BX    R3

off_452ADDEC    DCD hook


org 0x45C00940
loc_45C00940:
        PUSH    {R4}
        LDR    R3, off_45C00988
        BLX    R3
        CMP    R0, 0
        NOP
        LDR    R0, off_45C0098C
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        LDR    R0, off_45C00990
        LDR    R3, off_45C00994
        BLX    R3
        CMP    R0, 0
        BNE    loc_45C0096E
        ADR    R1, aSlideropen_mp3
        CMP    R4, 0x3F
        BEQ    loc_45C00966
        ADR    R1, aSliderclose_mp

loc_45C00966:
        LDR    R0, off_45C00980
        MOVS    R2, 0x32
        LDR    R3, off_45C00984
        BLX    R3

loc_45C0096E:
        POP    {R4}
        MOVS    R0, 0x27
        CMP    R4, 0x40
        BNE    loc_45C00978
        MOVS    R0, 0x28

loc_45C00978:
        LDR    R3, off_45C0097C
        BX    R3

align 4

off_45C0097C    DCD address1
off_45C00980    DCD address2
off_45C00984    DCD address3
off_45C00988    DCD address4
off_45C0098C    DCD address5
off_45C00990    DCD address6
off_45C00994    DCD address7

aSlideropen_mp3    du "slideropen.mp3",0

align 4

aSliderclose_mp    du "sliderclose.mp3",0


Примечание: Вы можете назвать ваши значения EQU как душе угодно.



© Shadow Player
Локализация: HierOS
Оригинал




Хорошо смеется тот, кто админ и модератор.
Спасибо сказали: arban, Xamid, Zormax, MahmudS, VoiD, timos_06, Therion, vile, MNS81, Grinvich11, zapret007, Ugolovnik, MurametS, -BourNe-, HotRabbit, Blend, Дыма, LoDark, AmpeR, Nook, KIDLIF, pavelsh, a6b6

D3mon


Developer


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




 
  #32 [11.02.10, 16:32] Re: [Tutorial] Создание ASM файла (исходника).   

 
Троян писал:
Еще там в теле исходника есть написаный текст, который будет в патче
Его можно русскими буквами писать?

его можешь вообще не дизассемблировать)




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

Va_st


Patchmaster


Регистрация: 3.8.08
Сообщений: 440
Репутация: 1142





 
  #33 [11.02.10, 16:38] Re: [Tutorial] Создание ASM файла (исходника).   

 
Троян, тему " Учимся писать патчи " почитай полностью,там все ответы есть,у всех возникали подобные вопросы=)




j10i2 r7ca061

16ty78


Бывалый


Регистрация: 10.7.08
Сообщений: 371
Репутация: -180





 
  #34 [21.03.10, 01:20] Re: [Tutorial] Создание ASM файла (исходника).   

 
Применяем патч используя IDC скрипт 'Apply VKP Patch'. я новичек как это сделать можно подробней





MNS81


Patcher


Регистрация: 18.7.07
Сообщений: 556
Репутация: 5564
Откуда: Сертолово Ленинградская обл.




 
  #35 [21.03.10, 01:31] Re: [Tutorial] Создание ASM файла (исходника).   

 
16ty78, Открывай прошу в иде, и жми в ней файл - ИДЦ файл, далее появится окошко, в нем ищешь куда положил и выбираешь ApplyPatch.idc, потом появится окошко где надо выбрать патч. Потом отвечаешь ДА на вопрос "начинать патчить?", вот собственно и все




C901 SW-R1GA028
Xiaomi RedMi 2

vetel


Опытный


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




 
  #36 [29.07.10, 23:44] Re: [Tutorial] Создание ASM файла (исходника).   

 
народ помогите пожалуйста разобраться с исхом вот этого патча: ;W610 SW-R6BC002
;Добавить в информацию о файле отображение размера файла в байтах.
;Работает также с папками, java-приложениями и e-mail сообщениями.
;Добавлено раздельное отображение у java-приложений размера jar архива и данных приложения.
;v4
;(!) Внимание, данная версия не полная, не работает с e-mail сообщениями. Позже все будет :), сначала сделал половину все нормально компилится, а вот врезки никак не хотят, пишет ошибку: неопределенный символ org "ox44EB97F2" вот исходник

include "x.inc"
; ---------------------------------------------------------------------------
org ox44EB97F2
LDR R1, ox44EB97F8
BX R1
off_44EB97F8 DCD ox45AABB2C+1 ; DATA XREF: ROM:44EB97F2r
; ---------------------------------------------------------------------------
org ox44EBD786
LDR R1, ox44EBD78C
BX R1
align 4
off_44EBD78C DCD ox45AABB00+1 ; DATA XREF: ROM:44EBD786r
; ---------------------------------------------------------------------------
org ox44EC00B2
LDR R1, ox44EC00B8
BX R1
off_44EC00B8 DCD ox45AABB18+1 ; DATA XREF: ROM:44EC00B2r
; ---------------------------------------------------------------------------
org ox44EC160E
LDR R1, ox44EC1614
BX R1
off_44EC1614 DCD ox45AABB2C+1 ; DATA XREF: ROM:44EC160Er
; ---------------------------------------------------------------------------
org ox44F7BC1C
NOP
; ---------------------------------------------------------------------------
org ox44F7BBE2
LDR R1, ox44F7BBE8
BX R1
off_44F7BBE8 DCD ox45AABB40+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
почти помер

c368511


Patcher


Регистрация: 26.7.09
Сообщений: 117
Репутация: 930
Откуда: Воронежская область




 
  #37 [30.07.10, 00:23] Re: [Tutorial] Создание ASM файла (исходника).   

 
vetel, org 0x, а не то что у тебя




w580-R8BE001
aka Dimmu

DrummMaster


Patcher


Регистрация: 25.2.09
Сообщений: 303
Репутация: 849
Откуда: Ростов-на-Дону




 
  #38 [30.07.10, 02:08] Re: [Tutorial] Создание ASM файла (исходника).   

 
И как бе ORG маленькими буквами пишется...




Star GT-S5230 Чёрный с белой сенсорной панелью...
HTC Leo HD2 + HyperDroid 2.1.0

Therion


Developer/Admin


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




 
  #39 [30.07.10, 02:50] Re: [Tutorial] Создание ASM файла (исходника).   

 
vetel, у тебя он и не скомпилится)))))))
1. Надо писать а не ох (ноль а не о)vetel писал:
org ox44EB97F2
LDR R1, ox44EB97F8
BX R1
off_44EB97F8 DCD ox45AABB2C+1

(это как пример,переделывать надо всё!!!)
LDR R1, ox44EB97F8 - тут ты грузиш одно,а уравнивеш:
off_44EB97F8 - вовсе другое!!

надо так:
org 0x44EB97F2
LDR R1, off_44EB97F8
BX R1
off_44EB97F8 DCD 0x45AABB2C+1 (хотя тут лучше назвать по другому,например DCD patch_1+1 или zamain_1+1,...)

LDR R4, dword_45AABC20
BX R4
тут идёт у тебя безусловный прямой переход,значит действия дальше не продолжаются,хотя дольше у тебя идёт код. Это связано с тем,что ты не всем частям кода присвоил имя,которое уравнивал во врезках!!
где ты линковал эти уравнения???
vetel писал:
ox45AABB40+1

vetel писал:
ox45AABB2C+1

и так далее




vetel


Опытный


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




 
  #40 [30.07.10, 14:01] Re: [Tutorial] Создание ASM файла (исходника).   

 
Спасибо всем за ответы, исходник сделал рабочий, не пойму откуда я мог скопировать букву вместо цифры)), вот теперь буду пытаться портировать на к550 р8, но это уже в другую тему.




Sony Xperia XA
Samsung SM-J120F/DS Galaxy J12016

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

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

-Sotik-


Patcher


Регистрация: 28.12.07
Сообщений: 880
Репутация: 2655
Откуда: Днепр-City UA




 
  #41 [30.07.10, 15:05] Re: [Tutorial] Создание ASM файла (исходника).   

 
vetel, на будущее -
Spoiler: 




SE W610 R6CA001 ORANGE
SE K810 R8BA024 ORANGE
HTC DESIRE S
Страница 4 из 9: « 1 2 3 [4] 5 6 7 8 9 »


Похожие темы

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

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