Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
Новости
Статьи
Файлы
Патчи
Патчи 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
Сообщений: 1130
Репутация: 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. Надо писать 0х а не ох (ноль а не о)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.04 секунд | 11 Запросов | HTML: 89.98 КБ -