Итак, по адресу 103BB584 в 49 прошивке у нас есть функция (адрем её) окончания песни, которую патч правит на переход на другой трек. ROM:103BB584 DCD loc_103B603C+1 ; AP_Play_HandleMediaComplete Перейдем туда и видим код функции (привожу всю целиком) ROM:103B603C loc_103B603C ; DATA XREF: ROM:103BB584o ROM:103B603C ; ROM:103BB64Co ROM:103B603C PUSH {R4-R7,LR} ; AP_Play_HandleMediaComplete ROM:103B603E ADD R6, R0, #0 ROM:103B6040 ADD R5, R1, #0 ROM:103B6042 SUB SP, SP, #0x1C ROM:103B6044 ADD R3, SP, #0 ROM:103B6046 MOV R4, #0 ROM:103B6048 STRB R4, [R3,#4] ROM:103B604A BL sub_102BBA10 ; AFW_GetEv ROM:103B604E ADD R0, #0xFF ROM:103B6050 ADD R0, #1 ROM:103B6052 LDR R0, [R0,#0x20] ROM:103B6054 MOVL R1, 0x4C0 ROM:103B6058 ADD R1, R5, R1 ROM:103B605A LDR R0, [R0,#8] ROM:103B605C STR R1, [SP,#0x18] ROM:103B605E LDR R1, [R1,#0x10] ROM:103B6060 CMP R0, R1 ROM:103B6062 BNE loc_103B6148 ROM:103B6064 MOVL R0, 0x580 ROM:103B6068 ADD R0, R5, R0 ROM:103B606A STR R0, [SP,#0x14] ROM:103B606C LDRB R0, [R0,#0xB] ROM:103B606E CMP R0, #0 ROM:103B6070 BNE loc_103B6148 ROM:103B6072 MOVL R0, 0x590 ROM:103B6076 ADD R0, R5, R0 ROM:103B6078 MOV R3, #1 ROM:103B607A STRB R3, [R0,#0xA] ROM:103B607C ADD R0, R6, #0 ROM:103B607E BL sub_102BBA10 ; AFW_GetEv ROM:103B6082 ADD R0, #0xFF ROM:103B6084 ADD R0, #1 ROM:103B6086 LDR R0, [R0,#0x20] ROM:103B6088 MOVL R1, 0x500 ROM:103B608C ADD R1, R5, R1 ROM:103B608E MOV R2, #0x2B ROM:103B6090 LDR R0, [R0] ROM:103B6092 STR R1, [SP,#0x10] ROM:103B6094 LSL R2, R2, #5 ROM:103B6096 ADD R2, R5, R2 ROM:103B6098 LDR R1, [R1,#0xC] ROM:103B609A STR R2, [SP,#0xC] ROM:103B609C CMP R0, R1 ROM:103B609E BEQ loc_103B60AA ROM:103B60A0 LDR R0, [SP,#0xC] ROM:103B60A2 LDRB R0, [R0,#6] ROM:103B60A4 CMP R0, #3 ROM:103B60A6 BEQ loc_103B6174 ROM:103B60A8 B loc_103B60B6 ROM:103B60AA ; --------------------------------------------------------------------------- ROM:103B60AA ROM:103B60AA loc_103B60AA ; CODE XREF: ROM:103B609Ej ROM:103B60AA LDR R0, [SP,#0xC] ROM:103B60AC LDRB R0, [R0,#6] ROM:103B60AE CMP R0, #3 ROM:103B60B0 BEQ loc_103B60B6 ROM:103B60B2 CMP R0, #6 ROM:103B60B4 BNE loc_103B6174 ROM:103B60B6 ROM:103B60B6 loc_103B60B6 ; CODE XREF: ROM:103B60A8j ROM:103B60B6 ; ROM:103B60B0j ROM:103B60B6 LDR R0, [SP,#0x14] ROM:103B60B8 LDRB R0, [R0,#1] ROM:103B60BA CMP R0, #1 ROM:103B60BC BNE loc_103B60D6 ROM:103B60BE LDR R0, =0x47E ROM:103B60C0 BL sub_106219D4 ; DL_DbGetFeatureAvailability ROM:103B60C4 CMP R0, #0 ROM:103B60C6 BNE loc_103B60D6 ROM:103B60C8 ADD R1, SP, #4 ROM:103B60CA LDR R0, =0x6FC ; читаем включен ли автоповтор в симе 4а ROM:103B60CC BL sub_10621A0C ; DL_DbFeatureGetCurrentState ROM:103B60D0 CMP R0, #0 ROM:103B60D2 BEQ loc_103B60D6 ROM:103B60D4 MOV R4, #1 ROM:103B60D6 ROM:103B60D6 loc_103B60D6 ; CODE XREF: ROM:103B60BCj ROM:103B60D6 ; ROM:103B60C6j ... ROM:103B60D6 MOVL R0, 0x570 ROM:103B60DA ADD R7, R5, R0 ROM:103B60DC LDRB R0, [R7,#0xC] ROM:103B60DE CMP R0, #3 ROM:103B60E0 BEQ loc_103B6134 ROM:103B60E2 CMP R4, #0 ROM:103B60E4 BNE loc_103B6172 ROM:103B60E6 LDR R0, [SP,#0x14] ROM:103B60E8 LDRB R0, [R0,#1] ROM:103B60EA CMP R0, #1 ROM:103B60EC BNE loc_103B6138 ROM:103B60EE ADD R3, SP, #0 ROM:103B60F0 LDRB R0, [R3,#4] ROM:103B60F2 CMP R0, #0 ROM:103B60F4 BNE loc_103B6138 ROM:103B60F6 LDRB R0, [R7,#0xA] ROM:103B60F8 LDR R2, =0x2103 ROM:103B60FA ADD R2, #4 ROM:103B60FC CMP R0, #1 ROM:103B60FE BNE loc_103B611E ROM:103B6100 ADD R1, R5, #0 ROM:103B6102 ADD R0, R6, #0 ROM:103B6104 BL sub_103B812C ; AP_Utility_SendUISEvent ROM:103B6108 LDR R1, [SP,#0x10] ROM:103B610A ADD R4, R0, #0 ROM:103B610C LDR R1, [R1,#0x1C] ROM:103B610E ORR R0, R1 ROM:103B6110 BNE loc_103B6134 ROM:103B6112 MOV R1, #2 ROM:103B6114 ADD R0, R5, #0 ROM:103B6116 LDR R2, =0x60000F7 ROM:103B6118 BL sub_103B7F1C ; AP_Utility_ChangeRightSoftkey ROM:103B611C B loc_103B6132 ROM:103B611E ; --------------------------------------------------------------------------- ROM:103B611E ROM:103B611E loc_103B611E ; CODE XREF: ROM:103B60FEj ROM:103B611E LDR R0, [SP,#0xC] ROM:103B6120 ADD R1, R0, #0 ROM:103B6122 LDRH R0, [R0,#2] ROM:103B6124 LDRH R1, [R1] ROM:103B6126 CMP R0, R1 ROM:103B6128 BNE loc_103B6138 ROM:103B612A ADD R1, R5, #0 ROM:103B612C ADD R0, R6, #0 ROM:103B612E BL sub_103B812C ; AP_Utility_SendUISEvent ROM:103B6132 ROM:103B6132 loc_103B6132 ; CODE XREF: ROM:103B611Cj ROM:103B6132 ADD R4, R0, #0 ROM:103B6134 ROM:103B6134 loc_103B6134 ; CODE XREF: ROM:103B60E0j ROM:103B6134 ; ROM:103B6110j ROM:103B6134 CMP R4, #0 ROM:103B6136 BNE loc_103B6172 ROM:103B6138 ROM:103B6138 loc_103B6138 ; CODE XREF: ROM:103B60ECj ROM:103B6138 ; ROM:103B60F4j ... ROM:103B6138 LDR R0, [SP,#0x14] ROM:103B613A LDRB R0, [R0,#1] ROM:103B613C CMP R0, #1 ROM:103B613E BNE loc_103B6172 ROM:103B6140 LDR R0, [SP,#0xC] ROM:103B6142 MOV R1, #1 ROM:103B6144 STR R0, [SP,#8] ROM:103B6146 B loc_103B614A ROM:103B6148 ; --------------------------------------------------------------------------- ROM:103B6148 ROM:103B6148 loc_103B6148 ; CODE XREF: ROM:103B6062j ROM:103B6148 ; ROM:103B6070j ROM:103B6148 B loc_103B61CA ROM:103B614A ; --------------------------------------------------------------------------- ROM:103B614A ROM:103B614A loc_103B614A ; CODE XREF: ROM:103B6146j ROM:103B614A STRB R1, [R0,#6] ROM:103B614C LDRB R0, [R7,#0xA] ROM:103B614E CMP R0, #0 ROM:103B6150 BEQ loc_103B6172 ROM:103B6152 LDRB R0, [R7,#0xC] ROM:103B6154 CMP R0, #3 ROM:103B6156 BNE loc_103B6176 ROM:103B6158 ADD R3, SP, #0 ROM:103B615A LDRB R0, [R3,#4] ROM:103B615C CMP R0, #1 ROM:103B615E BEQ loc_103B617E ROM:103B6160 ADD R2, R5, #0 ROM:103B6162 ADD R1, R6, #0 ROM:103B6164 MOV R0, #0 ROM:103B6166 BL sub_104F3DDA ; APP_UtilHistGoToPrevState ROM:103B616A ADD R4, R0, #0 ROM:103B616C MOV R1, #1 ROM:103B616E MOV R0, #0x49 ROM:103B6170 STRB R1, [R0,R5] ROM:103B6172 ROM:103B6172 loc_103B6172 ; CODE XREF: ROM:103B60E4j ROM:103B6172 ; ROM:103B6136j ... ROM:103B6172 B loc_103B61A8 ROM:103B6174 ; --------------------------------------------------------------------------- ROM:103B6174 ROM:103B6174 loc_103B6174 ; CODE XREF: ROM:103B60A6j ROM:103B6174 ; ROM:103B60B4j ROM:103B6174 B loc_103B61C2 ROM:103B6176 ; --------------------------------------------------------------------------- ROM:103B6176 ROM:103B6176 loc_103B6176 ; CODE XREF: ROM:103B6156j ROM:103B6176 ADD R3, SP, #0 ROM:103B6178 LDRB R0, [R3,#4] ROM:103B617A CMP R0, #1 ROM:103B617C BNE loc_103B61A2 ROM:103B617E ROM:103B617E loc_103B617E ; CODE XREF: ROM:103B615Ej ROM:103B617E MOV R0, #0 ROM:103B6180 BL sub_103B536E ; AP_Play_ChangeTimerStatus ROM:103B6184 ADD R1, R5, #0 ROM:103B6186 ADD R0, R6, #0 ROM:103B6188 BL sub_103B4DF4 ; AP_Play_HandleGainFocus ROM:103B618C ADD R4, R0, #0 ROM:103B618E LDR R1, [SP,#8] ROM:103B6190 MOV R0, #8 ROM:103B6192 STRB R0, [R1,#6] ROM:103B6194 ADD R3, SP, #0 ROM:103B6196 LDRB R0, [R3,#4] ROM:103B6198 CMP R0, #1 ROM:103B619A BNE loc_103B61A8 ROM:103B619C MOV R1, #1 ROM:103B619E STRB R1, [R7,#8] ROM:103B61A0 B loc_103B61A8 ROM:103B61A2 ; --------------------------------------------------------------------------- ROM:103B61A2 ROM:103B61A2 loc_103B61A2 ; CODE XREF: ROM:103B617Cj ROM:103B61A2 MOV R0, #0 ROM:103B61A4 BL sub_103B536E ; AP_Play_ChangeTimerStatus ROM:103B61A8 ROM:103B61A8 loc_103B61A8 ; CODE XREF: ROM:loc_103B6172j ROM:103B61A8 ; ROM:103B619Aj ... ROM:103B61A8 LDR R0, [SP,#0x14] ROM:103B61AA LDRB R0, [R0,#0xB] ROM:103B61AC CMP R0, #0 ROM:103B61AE BNE loc_103B61C2 ROM:103B61B0 MOV R2, #0 ROM:103B61B2 LDR R1, [SP,#0x18] ROM:103B61B4 STR R2, [SP] ROM:103B61B6 LDR R2, [R1,#0x10] ROM:103B61B8 ADD R1, R5, #0 ROM:103B61BA MOV R3, #1 ROM:103B61BC ADD R0, R6, #0 ROM:103B61BE BL sub_103C2534 ROM:103B61C2 ROM:103B61C2 loc_103B61C2 ; CODE XREF: ROM:loc_103B6174j ROM:103B61C2 ; ROM:103B61AEj ROM:103B61C2 ADD R0, R6, #0 ROM:103B61C4 LDR R1, [R5,#0x14] ROM:103B61C6 BL sub_102BB6D8 ; AFW_ConsumeEv ROM:103B61CA ROM:103B61CA loc_103B61CA ; CODE XREF: ROM:loc_103B6148j ROM:103B61CA ADD R0, R4, #0 ROM:103B61CC ADD SP, SP, #0x1C ROM:103B61CE POP {R4-R7} ROM:103B61D0 POP {R3} ROM:103B61D2 BX R3 Считаем, что наиболее уникальным (и в то же время не менющимся от версии к версии) будет такой кусок кода: ROM:103B60A8 B loc_103B60B6 ROM:103B60AA ; --------------------------------------------------------------------------- ROM:103B60AA ROM:103B60AA loc_103B60AA ; CODE XREF: ROM:103B609Ej ROM:103B60AA LDR R0, [SP,#0xC] ROM:103B60AC LDRB R0, [R0,#6] ROM:103B60AE CMP R0, #3 паттерна будет E0 05 98 03 79 80 28 03 также можно попробовать поискать такое (все или только часть) ROM:103B60D0 CMP R0, #0 ROM:103B60D2 BEQ loc_103B60D6 ROM:103B60D4 MOV R4, #1 ROM:103B60D6 ROM:103B60D6 loc_103B60D6 ; CODE XREF: ROM:103B60BCj ROM:103B60D6 ; ROM:103B60C6j ... ROM:103B60D6 MOVL R0, 0x570 ROM:103B60DA ADD R7, R5, R0 ROM:103B60DC LDRB R0, [R7,#0xC] ROM:103B60DE CMP R0, #3 паттерна будет 28 00 D0 00 24 01 20 57 01 00 18 2F 7B 38 28 03 Примечание: в IDA для поиска хекс паттерну вводим по принципу байт-пробле-байт-пробел, в других программах может быть иначе Кстати, особый интерес в этой функции для нас представляет кусок ROM:103B60BE LDR R0, =0x47E ; читаем, доступен ли пункт автоповтора в 32 симе ROM:103B60C0 BL sub_106219D4 ; DL_DbGetFeatureAvailability ROM:103B60C4 CMP R0, #0 ROM:103B60C6 BNE loc_103B60D6 ROM:103B60C8 ADD R1, SP, #4 ROM:103B60CA LDR R0, =0x6FC ; читаем включен ли автоповтор в симе 4а ROM:103B60CC BL sub_10621A0C ; DL_DbFeatureGetCurrentState на новой прошивке найдя его, мы узнаем 2 важных вещи 1) адрес функции чтения 4А сима (ROM:103B60CC BL sub_10621A0C) 2) смещение (базу) 4А сима (из записи R0, =0x6FC где 6FC=база сима +номер байта в симе) В данном случае 6FC это байт 17А сима 4А (база получается 582) Как узнать, что байт 17А сима 4А хранит значение автопотора? очень просто. сливаем сим 4а. переключаем автоповтор. снова сливаем 4а (не перзагружаемся, ничего) Потом сравниваем эти 2 сима. Различие в 17А байте. Вычитай 17А из 6FC получим искомую базу. Я не даром привел функцию AP_Play_HandleMediaComplete целиком - выбирая различные её участки, не содержащие вызовов подпрограмм и переходов (переходы на 2-5 строк можно сотавить, они вряд ли поменяются) можно с большой вероятностью найти эту же функцию на новой прошивке. Допустим, она нашлась по адресу ХХХХХХХС вот пример: ROM:103B603C loc_103B603C ; DATA XREF: ROM:103BB584o ROM:103B603C ; ROM:103BB64Co ROM:103B603C PUSH {R4-R7,LR} ; AP_Play_HandleMediaComplete Тогда берем и прибавляем к адресу1, т.е. XXXXXXXC+1=XXXXXXXD Теперь ищем этот адрес в прошивке как паттерну, т.е. ХХ ХХ ХХ ХD Должно найтись как минимум 2 раза - в таблице событий плеера и в таблице событий бэкграунд плеера. Просматриваем хекс-код (не асм) во всех найденных местах - таблица имеет структуру 4 байтита события 4 байта адреса XXXXXXXD 4 байта другого события 4 байта другого адреса, относительно близкого к XXXXXXXD, например ХХХХХYYC ..... 4 байта FF FF FF FF 4 байта 00 00 00 00 - это конец таблицы Еще подсказка: поблизости от таблицы могут быть данные такого вида ROM:103BB6A0 dword_103BB6A0 DCD 0x1000870 ; DATA XREF: ROM:off_103B7DF8o ROM:103BB6A0 ; iMelody ROM:103BB6A4 ap_actions_items DCD 0x10011B7 ; DATA XREF: sub_103B747A:off_103B75E0o ROM:103BB6A4 ; Отправить в сообщении ROM:103BB6A8 DCD 0x100116F ; Отправить в Blog ROM:103BB6AC DCD 0x1001150 ; Перекл. устр. хранения ROM:103BB6B0 DCD 0 ROM:103BB6B4 DCD 0 ROM:103BB6B8 DCD 0x1001149 ; Применить как вызов ROM:103BB6BC DCD 0x10001E8 ; Создать ROM:103BB6C0 DCD 0x1000869 ; Параметры ROM:103BB6C4 DCD 0x1000877 ; Переименовать ROM:103BB6C8 DCD 0x10001C9 ; Удалить ROM:103BB6CC DCD 0x10001CA ; Удалить всё ROM:103BB6D0 DCD 0x10001CF ; Редактировать ROM:103BB6D4 DCD 0 ROM:103BB6D8 DCD 0x1000BED ; Основные партии ROM:103BB6DC DCD 0x1000619 ; Справка ROM:103BB6E0 DCD 0x1000A36 ; Упорядочить ROM:103BB6E4 DCD 0x100116D ; Переместить ROM:103BB6E8 DCD 0x10001C4 ; Копировать ROM:103BB6EC DCD 0x100116B ; Метка ROM:103BB6F0 DCD 0x100116C ; Отметить всё ROM:103BB6F4 DCD 0x1000AC7 ; Категории ROM:103BB6F8 DCD 0x100114C ; Назначить категории ROM:103BB6FC DCD 0 ROM:103BB700 DCD 0 ROM:103BB704 DCD 0 ROM:103BB708 DCD 0 ROM:103BB70C DCD 0 ROM:103BB710 DCD 0x100114F ; Настройка звуков ROM:103BB714 DCD 0x1001153 ; Cвободная память ROM:103BB718 DCD 0x1001416 ; Продлить активизацию ROM:103BB71C DCD 0x1001977 ; Активация ROM:103BB720 DCD 0 ; MMC_AP_SINGLE_SETUP_ENTRY ROM:103BB724 DCD off_103BB748 ; настройка автоповтора и таймера ROM:103BB724 ; MMC_AP_SETUP ROM:103BB728 DCD 0x2000000 ; число пунктов =2 ROM:103BB72C DCD 0 ; MMC_AP_PLAYLIST_SETUP_ENTRY ROM:103BB730 DCD off_103BB750 ; настройка автоповтоора, таймера и перетасовки ROM:103BB730 ; MMC_AP_LIST_SETUP ROM:103BB734 DCD 0x3000000 ; число пунктов = 3 ROM:103BB738 dword_103BB738 DCD 0x10004A1 ; DATA XREF: ROM:off_103B79E4o ROM:103BB738 ; (Пусто) ROM:103BB73C DCD 3 ROM:103BB740 DCD dword_103BB75C ; Настройка звуков ROM:103BB744 DCD 0x6000073 ; RES_ID_ACTION_LIST_BLANK ROM:103BB748 off_103BB748 DCD dword_103CA5B4 ; DATA XREF: ROM:103BB724o ROM:103BB748 ; натройка автоповтора ROM:103BB74C DCD dword_103CA5EC ; настройки таймера ROM:103BB750 off_103BB750 DCD dword_103CA5B4 ; DATA XREF: ROM:103BB730o ROM:103BB750 ; настройки автоповтора ROM:103BB754 DCD dword_103CA5CC ; настройки перетасовки ROM:103BB758 DCD dword_103CA5EC ; настройки таймера ROM:103BB75C dword_103BB75C DCD 0x100114F ; DATA XREF: ROM:103BB740o ROM:103BB75C ; Настройка звуков ROM:103BB760 DCD 0x1001153 ; Cвободная память ROM:103BB764 DCD 0x1001150 ; Перекл. устр. хранения ROM:103BB768 DCD 0x10200 ROM:103BB76C off_103BB76C DCD aAudioplayer ; DATA XREF: ROM:off_103B8CFCo ROM:103BB76C ; "AudioPlayer" ROM:103BB770 DCD aVideoplayer ; "VideoPlayer" ROM:103BB774 DCD aMmcpicviewer ; "MMCPicViewer" Кроме того, понадобится найти таблицу меню звуков, на 49 прошивке она выглядит так: :103CA5AC EXPORT mmc_auto_repeat_content_res ROM:103CA5AC dword_103CA5AC DCD 0xC000263 ; DATA XREF: ROM:103CA5C0o ROM:103CA5AC ; RES_ID_CONTENT_MMC_AUTOREPEAT_OFF ROM:103CA5B0 DCD 0xC000264 ; RES_ID_CONTENT_MMC_AUTOREPEAT_ON ROM:103CA5B4 dword_103CA5B4 DCD 0x33B06FC ; DATA XREF: ROM:off_103BB748o ROM:103CA5B4 ; ROM:off_103BB750o ... ROM:103CA5B4 ; 6FC= сим 4А состояние автоповтора ROM:103CA5B4 ; 33B - некий счетчик по порядку? ROM:103CA5B8 DCD 0x1000AE0 ; Автоповтор ROM:103CA5BC DCD 0xD000207 ; RES_ID_FIELD_DESC_MMC_AUTO_REPEAT ROM:103CA5C0 DCD dword_103CA5AC ; состояние автоповтора ROM:103CA5C4 dword_103CA5C4 DCD 0xC00028B ; DATA XREF: ROM:103CA5D8o ROM:103CA5C4 ; RES_ID_CONTENT_MMC_SHUFFLE_OFF ROM:103CA5C8 DCD 0xC00028C ; RES_ID_CONTENT_MMC_SHUFFLE_ON ROM:103CA5CC dword_103CA5CC DCD 0x33C06FB ; DATA XREF: ROM:103BB754o ROM:103CA5CC ; ROM:103CA4A8o ROM:103CA5CC ; 6FB=сим 4А состояние перетасовки ROM:103CA5D0 DCD 0x1000B32 ; Перетасовка ROM:103CA5D4 DCD 0xD00020C ; RES_ID_FIELD_DESC_MMC_SHUFFLE ROM:103CA5D8 DCD dword_103CA5C4 ; RES_ID_CONTENT_MMC_SHUFFLE_OFF ROM:103CA5DC dword_103CA5DC DCD 0xC000268 ; DATA XREF: ROM:103CA5F8o ROM:103CA5DC ; RES_ID_CONTENT_MMC_TIMER_OFF ROM:103CA5E0 DCD 0xC000267 ; RES_ID_CONTENT_MMC_TIMER_REMAINING_TIME ROM:103CA5E4 DCD 0xC000266 ; RES_ID_CONTENT_MMC_TIMER_ELAPSED_TIME ROM:103CA5E8 DCD 0xC000269 ; RES_ID_CONTENT_MMC_TIMER_REMAINING_TIME ROM:103CA5EC dword_103CA5EC DCD 0x33D0711 ; DATA XREF: ROM:103BB74Co ROM:103CA5EC ; ROM:103BB758o ... ROM:103CA5F0 DCD 0x100063B ; Таймер ROM:103CA5F4 DCD 0xD00020D ; RES_ID_FIELD_DESC_MMC_TIMER ROM:103CA5F8 DCD dword_103CA5DC ; RES_ID_CONTENT_MMC_TIMER_OFF ROM:103CA5FC dword_103CA5FC DCD 0xC000288 ; DATA XREF: ROM:103CA610o ROM:103CA5FC ; RES_ID_CONTENT_MMC_COUNTER_OFF ROM:103CA600 DCD 0xC000289 ; RES_ID_CONTENT_MMC_COUNTER_ON ROM:103CA604 dword_103CA604 DCD 0x33E06C8 ; DATA XREF: ROM:off_103CA4A0o ROM:103CA604 ; ROM:103CA4ACo ROM:103CA608 DCD 0x1000B1E ; Счетчик ROM:103CA60C DCD 0xD000208 ; RES_ID_FIELD_DESC_MMC_COUNTER ROM:103CA610 DCD dword_103CA5FC ; RES_ID_CONTENT_MMC_COUNTER_OFF ROM:103CA614 dword_103CA614 DCD 0xC000261 ; DATA XREF: ROM:103CA628o ROM:103CA614 ; RES_ID_CONTENT_MMC_ALLOW_ALERT_NO ROM:103CA618 DCD 0xC000262 ; RES_ID_CONTENT_MMC_ALLOW_ALERT_YES ROM:103CA61C dword_103CA61C DCD 0x33F06C6 ; DATA XREF: ROM:10502A64o ROM:103CA620 DCD 0x1000ADD ; Позволить напоминать ROM:103CA624 DCD 0xD000206 ; RES_ID_FIELD_DESC_MMC_ALLOW_ALERT ROM:103CA628 DCD dword_103CA614 ; RES_ID_CONTENT_MMC_ALLOW_ALERT_NO ROM:103CA62C dword_103CA62C DCD 0xC000393 ; DATA XREF: ROM:103CA644o ROM:103CA630 DCD 0xC000392 ROM:103CA634 DCD 0xC00035F на других платформах должны остаться неизменными указатели на строки (типа DCD 0x1000ADD), т.е. начинающиеся с 01, а последние 2 байта точно соотв. номеру стрки в ленге и указатели на поля вывода информации (типа 0xD000206) где начало 0D а также поля состояния (типа DCD 0xC00028C ; RES_ID_CONTENT_MMC_SHUFFLE_ON) начинающиеся но 0С Т.е. если у вас в настройках звука естьтаймер с 4 состояниями, очень верятно что удастся найти такую вот паттерну: ROM:103CA5DC dword_103CA5DC DCD 0xC000268 ; DATA XREF: ROM:103CA5F8o ROM:103CA5DC ; RES_ID_CONTENT_MMC_TIMER_OFF ROM:103CA5E0 DCD 0xC000267 ; RES_ID_CONTENT_MMC_TIMER_REMAINING_TIME ROM:103CA5E4 DCD 0xC000266 ; RES_ID_CONTENT_MMC_TIMER_ELAPSED_TIME ROM:103CA5E8 DCD 0xC000269 ; RES_ID_CONTENT_MMC_TIMER_REMAINING_TIME паттерна: 0C 00 02 68 0C 00 02 67 0C 00 02 66 0C 00 02 69 03 Итак, на этоп этапе требуется найти: 1. таблицу событий плеера и адрес события конца песни AP_Play_HandleMediaComplete 2. функцию чтения 4А сима (адрес функции) и его базу 3. таблицу меню Кстати, на неё можно выйти через вот такой кусок ROM:103BB710 DCD 0x100114F ; Настройка звуков ROM:103BB714 DCD 0x1001153 ; Cвободная память ROM:103BB718 DCD 0x1001416 ; Продлить активизацию ROM:103BB71C DCD 0x1001977 ; Активация ROM:103BB720 DCD 0 ; MMC_AP_SINGLE_SETUP_ENTRY ROM:103BB724 DCD off_103BB748 ; настройка автоповтора и таймера ROM:103BB724 ; MMC_AP_SETUP ROM:103BB728 DCD 0x2000000 ; число пунктов =2 ROM:103BB72C DCD 0 ; MMC_AP_PLAYLIST_SETUP_ENTRY ROM:103BB730 DCD off_103BB750 ; настройка автоповтоора, таймера и перетасовки ROM:103BB730 ; MMC_AP_LIST_SETUP ROM:103BB734 DCD 0x3000000 ; число пунктов = 3 собственно, найти его достаточно на этом этапе искать можно по паттерне 01 00 11 4F 01 00 11 53 Я например свободно нешел её на прошивке 4515_D3R что говорит о постоянстве этого куска