Pages: (52) 1 2 3 .. 6 .. 9 .. 12 .. 15 16 17 [18] 19 20 .. 21 .. 24 .. 27 .. 30 .. 33 .. 36 .. 39 .. 42 .. 45 .. 48 .. 51 52  ( Show unread post )

> Модифицируем прошивку для DVD плейера (MTK 1389), инструкция от САХ
 moroz Member is Offline
 Posted: 25-01-2006, 08:09 (post 256, #535874)

Member

Group: Members
Posts: 134
Warn:0%-----
сах
Поправка. В статье Нью эйджа действительно субтитр находится по офсету ЕС0 в общей памяти. Приношу извинения. Но в АПЕКСе используется прямая ссылка.
Короче - самое точное определение: в функции SUB_ClearMpeg4SubtitleParams надо смотреть куда прописываются нули - там и субтитр.

ivani4
Боюсь что даже со знанием ассемблера сложновато по такой инструкции (сах - не в обиду). Например если вместо регистра R0 используется R6, как в моем примере, то вся последовательность изменится. Нужно чуть-чуть знать ассемблер и, что хуже, английский, и изучить статью Нью эйджа.

This post has been edited by moroz on 25-01-2006, 08:11
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Posted: 25-01-2006, 09:44 (post 257, #535896)

Member

Group: Members
Posts: 184
Warn:0%-----
moroz
Тем не менее сах считает возможным вдолбить мне это.Но у меня уже нет сил ждать когда он освободится.Я хочу пока сделать,как мне кажется,простую вещь:взять прошивку расматриваемую в инструкции и увидеть в иде то что сах уже нашёл:
ROM:0000E884 3C 28 CMP R0, #0x3C
ROM:0000E886 01 D9 BLS loc_E88C
ROM:0000E888 3C 20 MOV R0, #0x3C
Хотя бы это ты можешь мне объяснить?
PM
Top Bottom
 moroz Member is Offline
 Posted: 25-01-2006, 10:55 (post 258, #535913)

Member

Group: Members
Posts: 134
Warn:0%-----
Так ищи последовательность, ты же это уже делал: 3C 28 01 D9 3C 20
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Posted: 25-01-2006, 11:19 (post 259, #535917)

Member

Group: Members
Posts: 184
Warn:0%-----
moroz Нашёл такую последовательность.А как увидеть такое:
ROM:0000E884 3C 28 CMP R0, #0x3C
ROM:0000E886 01 D9 BLS loc_E88C
ROM:0000E888 3C 20 MOV R0, #0x3C
?????????????????????????????????????????????????????????????


This post has been edited by ivani4 on 25-01-2006, 16:45
PM
Top Bottom
 cax Member is Offline
 Posted: 25-01-2006, 12:42 (post 260, #535970)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
QUOTE (moroz @ 25-01-2006, 05:09)
Боюсь что даже со знанием ассемблера сложновато по такой инструкции (сах - не в обиду).
А на что обижаться - я ж там так и написал, что, мол, извините, этот момент я на пальцах объяснить не смогу, читайте классиков и всё такое.
Но, как известно, объясняя другим начинаешь сам лучше понимать, так что есть шанс, что я рожу что-то более внятное :)

This post has been edited by cax on 25-01-2006, 12:44
PM Email Poster
Top Bottom
 moroz Member is Offline
 Posted: 25-01-2006, 23:16 (post 261, #536321)

Member

Group: Members
Posts: 134
Warn:0%-----
cax, все ли понятно с адресом субтитров? Нужна ли еще какая-то помощь в интеграции?

ivani4
По-моему ты сам уже ответил - использовать IDA
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Posted: 25-01-2006, 23:29 (post 262, #536333)

Member

Group: Members
Posts: 184
Warn:0%-----
moroz.Пойми,я никогда ранее не пользовался идой.Пытаюсь,пока не очень получается.Сегодня удалось разобратся как ищут hex последовательность.Но я никак не могу понять как увидеть информацию в таком виде:
ROM:0000E884 3C 28 CMP R0, #0x3C
ROM:0000E886 01 D9 BLS loc_E88C
ROM:0000E888 3C 20 MOV R0, #0x3C

This post has been edited by ivani4 on 25-01-2006, 23:29
PM
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 00:19 (post 263, #536384)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
moroz, спасибо, пока всё ясно.
Надеюсь скоро всё проверить. Дам знать.
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 00:21 (post 264, #536388)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
QUOTE (ivani4 @ 25-01-2006, 20:29)
moroz.Пойми,я никогда ранее не пользовался идой.Пытаюсь,пока не очень получается.Сегодня удалось разобратся как ищут hex последовательность.Но я никак не могу понять как увидеть информацию в таком виде:
ROM:0000E884 3C 28 CMP R0, #0x3C
ROM:0000E886 01 D9 BLS loc_E88C
ROM:0000E888 3C 20 MOV R0, #0x3C
ivani4, по какому адресу ты нашёл цепочку и сколько раз ?
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Posted: 26-01-2006, 08:50 (post 265, #536618)

Member

Group: Members
Posts: 184
Warn:0%-----
cax.Точно такую цепочку я нигде не нашёл.Была поставлена задача :
QUOTE
Я хочу пока сделать,как мне кажется,простую вещь:взять прошивку расматриваемую в инструкции и увидеть в иде то что сах уже нашёл:
ROM:0000E884 3C 28 CMP R0, #0x3C
ROM:0000E886 01 D9 BLS loc_E88C
ROM:0000E888 3C 20 MOV R0, #0x3C
Так в Hyundai 3899 (02.09.00.00 ) эта цепочка, по указаным адресам ,выглядит иначе :3E 28 01 D9 3E 20 ,но я не стал вдаваться в подробности и сказал что нашёл.
Или ты подразумевал поиск такой цепочки в моём двд ?

This post has been edited by ivani4 on 26-01-2006, 14:27
PM
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 19:11 (post 266, #536885)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
QUOTE (moroz @ 23-01-2006, 15:39)
Я нечеловеческими усилиями сократил размер кода до 0хF0, но этого все равно недостаточно.
Я подсократил Unicode2CP на 8 байт (думаю, что можно и ещё), перепроверил кол-во свободного места, и теперь у нас есть его целых 0xF1 байт...
Не хватает совсем чуть-чуть на обвязку...

Давай свой самый короткий код, буду тестировать, а с местом потом посмотрим что делать.
PM Email Poster
Top Bottom
 moroz Member is Offline
 Posted: 26-01-2006, 21:21 (post 267, #536977)

Member

Group: Members
Posts: 134
Warn:0%-----
Последнее достижение - длина Е8
Бонус: место для вызова функции уже подготовлено (отмечено красным)

00 B5 00 06 00 0E 2F 28 01 D9 3A 28 0B D3 40 28
01 D9 5B 28 07 D3 60 28 01 D9 7B 28 03 D3 DF 28
03 D9 FB 28 01 D2 01 20 00 E0 00 20 00 BD 00 00
00 B5 88 42 07 D2 02 78 0B 78 03 70 0A 70 01 30
01 39 88 42 F7 D3 00 BD F0 B5 26 4C 00 27 00 E0
01 34 20 78 FF F7 D4 FF 00 28 F9 D0 25 1C 23 78
0D 2B 03 D9 01 35 2B 78 0D 2B FB D8 2B 78 00 2B
02 D1 01 27 00 E0 01 3D 28 78 FF F7 C1 FF 00 28
F9 D0 20 1C 29 1C FF F7 D3 FF AC 42 22 D8 08 E0
20 78 FF F7 B5 FF 00 28 00 D0 26 1C 01 34 AC 42
08 D8 20 78 80 28 F3 D2 FF F7 AA FF 00 28 EF D0
00 E0 01 34 AC 42 06 D8 20 78 80 28 F9 D3 FF F7
9F FF 00 28 F5 D0 70 1C 61 1E FF F7 B1 FF 01 34
AC 42 E6 D9 2B 78 00 2B 01 D0 00 2F B9 D0 XX XX
XX XX
F0 BD 78 56 34 12
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 22:07 (post 268, #537010)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
moroz, гениально ! Я как-то занимался оптимизацией ассемблерного кода, и по себе знаю какая это заморочка.

Теперь о моей части. Код проверки выбора в меню выглядит примерно так (вместо R0 можно использовать любой другой регистр):

LDR R0, =sharedMemAdr (этот адрес уже находится неподалёку от места, где лежит этот код - что есть хорошо)
ADD R0, #offset_of_menu_choice
LDRB R0, [R0]
CMP R0, #value
BNE dont_reverse_and_exit

На всё про всё - 5*2=10 байт.

Вся эта радость, если будет висеть снаружи, потребует свой PUSH/POP и ещё команду перехода внутрь кода реверсирования.
Не будет ли так любезен глубокоуважаемый moroz красиво встроить эти 5 команд или их аналог в свой код ?

Похоже, что в конечном итоге мы уложимся в отведённое место.
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 22:29 (post 269, #537032)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
moroz:

И ещё: судя по твоим листингам, похоже я что-то не так делаю, ибо у меня подпрограммы не опознаются (SUB_GetSubLength, SUB_ClearMpeg4SubtitleParams и т.д.)
Разве нужно что-то делать в IDA кроме прогона MT1389_ARM_v1.6.idc ?
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 26-01-2006, 23:01 (post 270, #537053)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
QUOTE (moroz @ 24-01-2006, 19:31)
КСТАТИ
Вызывать мой код надо после этого куска. Боюсь что иначе не будет нуля, а я его ищу.
У меня этот кусок выглядит стандартно - т.е. как в доке НьюЭйджа:

ROM:0000F5C8 loc_F5C8
ROM:0000F5C8 02 98 LDR R0, [SP,#0x30+var_28]
ROM:0000F5CA 5C 28 CMP R0, #0x5C ; '\'
ROM:0000F5CC 01 D9 BLS loc_F5D2
ROM:0000F5CE 5C 20 MOV R0, #0x5C ; '\'
ROM:0000F5D0 02 90 STR R0, [SP,#0x30+var_28]
ROM:0000F5D2
ROM:0000F5D2 loc_F5D2
ROM:0000F5D2 02 98 LDR R0, [SP,#0x30+var_28]
ROM:0000F5D4 00 24 MOV R4, #0
ROM:0000F5D6 34 54 STRB R4, [R6,R0]
ROM:0000F5D8 30 1C ADD R0, R6, #0

и так далее.

Хоть убей, не могу найти =Subtitle.
PM Email Poster
Top Bottom
Topic Options Pages: (52) 1 2 3 .. 6 .. 9 .. 12 .. 15 16 17 [18] 19 20 .. 21 .. 24 .. 27 .. 30 .. 33 .. 36 .. 39 .. 42 .. 45 .. 48 .. 51 52