Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Задаем вопросы по теме "Портирование патчей, для начинающих"


Рекомендуемые сообщения

первый кадр и перегруз

Проверяй...

Accelerate_Power_On_Off.rar

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 947
  • Создана
  • Последний ответ

Топ авторов темы

у меня большенство сигнатур ненаходит, не автоматом, не вручную. Пожалуйста скажите как искать.

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

/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

А втех патчах что попроше тоже самое получаетса.

Комментарий модератора Mako
Именно поэтому и начинай с тех что проще.1кб быстрее разжуем,чем 40 :24:

 

Просто понимеш я искал патч который занимал 1Kb но при портировании патча всеравно большинство сигнатур не подходит. Скажи что я не так делаю? Зарание спасибо. :)

Комментарий модератора Mako
Ну кто же знает,что ты делаешь неправильно... :an: Судя по всему много что...Приводи конкретный пример,конкретный патч(того выбери не самый большой для начала :an: ),конкретные адреса и задай вопрос,как это делали выше,тогда тебе кто-то сможет помочь :o

 

Извеняюсь конечно можеш дать патч для переделки с любого Swifta ато у меня кикието они все большие а те што маленькие уже есть на мою прошивку. Зарание спасибо :)

Комментарий модератора Mako
А я знаю какие есть,а каких нет на твою прошивку? :21:

Вот пробуй,там и исходник есть

 

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

Спасибо за ссылку.

В архиве некоторые патчи битые поетому просматривай их.

 

D600EXEFA1.rar

И вот патч который пробывал переделывать просмотрите его пожалуста может в нем есть ошибки! Патч с D900.

 

biohazard_title.rar

 

Хотел портировать патч с D900i но программа вот што выдает:

118167-29-07-08)1217369404_thumb.jpg

 

Скачал недавно новую версию BinEdit хотел портировать патч с выше преведенного и вот что происходит на 2 пункте портирования:

118167-29-07-08)1217373896_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

вот что происходит на 2 пункте портирования:

Ыыыы... :(

И ты хочешь таким методом патчи портировать? Ничего у тебя не выйдет, всё ищи ручками :128:

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

[quote name=->teRorДля начала - изучать ассемблер ARM9. Далее головой обдумывать смысл кода по соседству с тем байтом который меняется патчем. Затем в новой прошивке искать схожий кусок кода (причём, регистры могут быть другими, например в одной прошивке R1, а в другой там будет R7 - потому искать проще байты по маске, первый байт каждой команды заменяя на ?? (хотя много мусора будет, и даже BinEdit будет вешаться регулярно)

 

На примере D900i

210BC610:	8E48 LDR R0, =0x30783274;R0 = значение по адресу (PC + 568)=[0x210BC84C]= 0x30783274
210BC612:	0521 MOV R1, #0x5;R1 = 5
210BC614:	0902 LSL R1, R1, #8;R1 = R1 << 8 = 0x500 (1280)
210BC616:	4118 ADD R1, R0, R1;R1 = R0 + R1 = 0x30783774 (813184884)
210BC618:	4969 LDR  R1, [R1, #0x14]
210BC61A:	7D22 MOV R2, #0x7D;R2 = 125 "}" - это автооптимизация кода
210BC61C:	1203 LSL R2, R2, #12;R2 = R2 << 12 = 500кб, а патч тут меняет кол-во сдвигов и получаем 8мб
210BC61E:	0124 MOV R4, #0x1
210BC620:	9142 CMP R1, R2
210BC622:	00D8 BHI loc_210BC626
210BC624:	0024 MOV R4, #0x0

D600EXEFA1.

Для начала попробуем поискать 7D221203… Тут невероятно повезло, код проверки идентичный, и вот результат:

 

10182628:	CA49 LDR R1, =0x185F5358
1018262A:	0122 MOV R2, #0x1
1018262C:	9202 LSL R2, R2, #10
1018262E:	8918 ADD R1, R1, R2
10182630:	0968 LDR  R1, [R1]
10182632:	7D22 MOV R2, #0x7D;R2 = 125 "}"
10182634:	1203 LSL R2, R2, #12;R2 = R2 << 12 = 500кб
10182636:	9142 CMP R1, R2
10182638:	03D9 BLS loc_10182642

Однако в большинтсве патчей всё не так просто: надо искать масками (вроде ??22??03??42), или трассировать из каких-то контрольных точек (которые извезтны из трассировки по меню и т.д, или AT+CGSN), или смотреть какие адреса используются в процедуре, затем искать кто ещё использует этиже адреса и возможно аналогию тех других мест будет проще найти в новой прошивке, а далее искать обратно кто ещё эти новые адреса в новой прошивке использует. Ещё надо сравнивать что там со стеком, в одних прошивках могут одни регистры восстанавливатся а в других другие.

 

Вобщем изучай ассемблер ARM9, без этого ты ничего не портируешь никуда.

 

строчка в патч D600EXEFA1

Изменено пользователем f2065

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

f2065,

а какие книги по ассемблеру ARM9 посоветуешь почитать?

Про ARM - я их не одной не читал вобщем-то :ah:

Много лет назад - читал всевозможную литературу про Z80, 8031, написал массу всякого кода под них. x86 изучал, писал под винду софт и драйвера на асме.

Ну а ARM - както уже нет надобности в книгах, в начале хватило яндекса просто понять соответствие и логику мнемоник.

Например там базовые сведения про ARM есть - http://www.gaw.ru/html.cgi/txt/doc/micros/index.htm

Далее при помощи IDA успешно разную мелочь патчил в WindowsMobile. Главное в целом уметь программировать на ассемблере. Понимать логику построений программ на асме, логику взаимодействия с железом.

 

Замечу что не все патчи на самсунг связаны с ассемблером. У самсунгов есть ещё интерпретатор собственного специального языка высокого уровня - MCC. И где-то четверть патчей затрагивает только редактирование листинга MCC, не залезая в уровень асма. Например, патчи: выключение микрофона при разговоре, отключение вибры, переход между смс - это всё исключительно редактирование MCC.

MCC в отличии от асма нигде не документировано и его можно изучать только при помощи нескольких описаний где-то тут на формуе и рассматривая в BinEdit как оно выглядит в тех или иных местах. Есть патч CGSN который позволяет в терминалке спрашивать (у мобилы) где сейчас стоит обработка MCC в мобиле, а далее можно по этому адресу в BinEdit пойти и посмотреть что в этом месте есть.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Портировал на D780 патч «Быстрое переключение языка ввода».

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

Только там где есть поля MCC_EDIT.

 

Конечно, основные поля - именно на MCC_EDIT. Но, тем не менее из меню почти 75% доступных полей (везде, где на экране несколько полей и курсор вверх/вниз между ними перескакивает) - вовсе не MCC_EDIT. Например, редактирование закладки браузера - так вот выглядит:

202C31B4: 5D000000000000000000000000000000 MCC_INIT_RESTORE
202C31C4: 8E000000000000000000000000000000 MCC_SET_CURFOCUS
202C31D4: 80000100000100000000000030000000 MCC_FOCUS_START 0 0x1 0x100 0 0 0x30
202C31E4: 7D0E1400020003000000000000000000 MCC_MENU_CONFIG 0xE 0x14 0x2 0x3
202C31F4: 7C013700173705000000000000000000 MCC_MENU_EVENT 0x1 0x37 0x3717 0x5
202C3204: 810E140000000202803CBE2000000000 MCC_DISPLAY_FOCUS 0xE 0x14 0 0x202 loc_20BE3C80
202C3214: 900100000202DB01403DBE206D060000 MCC_FOCUS_CHANGE 0x1 0 0x202 0x1DB loc_20BE3D40 0x66D
202C3224: 180801000F000000604EBE2000000000 MCC_IF 0x8 0x1 0xF 0 loc_20BE4E60
202C3234: 1908010002000000604EBE2000000000 MCC_ELSEIF 0x8 0x1 0x2 0 loc_20BE4E60
202C3244: 1908010001000000604EBE2000000000 MCC_ELSEIF 0x8 0x1 0x1 0 loc_20BE4E60
202C3254: 39000000000000000000000000000000 MCC_EXIT

 

Вопрос. Кто-нибудь эту проблему решал ?

Может на каких-то мобилах есть новая версия патча, где есть обработчик и таких вот полей ?

Очевидно, надо обработчик MCC_DISPLAY_FOCUS изучать, и врезать в него тоже переключение языка ?

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Привет друзья. Вот увидил такой глюк в секундомере: когда запускаеш секундомер и выходиш с него(несбевая), а потом заходиш и там всё сбилось!! Как это можно убрать? Чтоб несекидывалось.

P.S. адрес секундомера:

1085EDC4  43 00 0000 0000 0000 00000000 0000 0000  MCC_STOPWATCH

1085EDD4  18 09 0100 0200 0000 64303410 0000 0000  Если кнопка "С" в состояни 1 то переход на 0x10343064

1085EDE4  19 09 0100 0F00 0000 64303410 0000 0000  Или если кнопка "правая софт" в состояни 1 то переход на 0x10343064

1085EDF4  1C 00 0000 0000 0000 84303410 0000 0000  Переход на адрес 0x1034308

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

Ссылка на комментарий
Поделиться на другие сайты

Вот увидил такой глюк в секундомере: когда запускаеш секундомер и выходиш с него(несбевая), а потом заходиш и там всё сбилось!! Как это можно убрать? Чтоб несекидывалось.
Я как-то пробовал… Через MCC - нельзя :)

Секундомер где-то внутри себя полностью обрабатывается. Пропуск MCC_DISABLE_NOACTION_TIMER или MCC_STOPWATCH - секундамер не запускается вообще. Пропуск любых действий после MCC_STOPWATCH - ничего не даёт. Надо копать сами функции MCC_DISABLE_NOACTION_TIMER и MCC_STOPWATCH…

 

А что интересно таймер - при выходе не сбрасывается, и даже не останавливается.

  • Like 1

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Я как-то пробовал… Через MCC - нельзя :)

Секундомер где-то внутри себя полностью обрабатывается. Пропуск MCC_DISABLE_NOACTION_TIMER или MCC_STOPWATCH - секундамер не запускается вообще. Пропуск любых действий после MCC_STOPWATCH - ничего не даёт. Надо копать сами функции MCC_DISABLE_NOACTION_TIMER и MCC_STOPWATCH…

 

А что интересно таймер - при выходе не сбрасывается, и даже не останавливается.

Обидно. За таймер видел. Значит надо копатся в нем наберное

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

Ссылка на комментарий
Поделиться на другие сайты

Конечно, основные поля - именно на MCC_EDIT. Но, тем не менее из меню почти 75% доступных полей (везде, где на экране несколько полей и курсор вверх/вниз между ними перескакивает) - вовсе не MCC_EDIT. Например, редактирование закладки браузера - так вот выглядит:

...

 

Вопрос. Кто-нибудь эту проблему решал ?

Может на каких-то мобилах есть новая версия патча, где есть обработчик и таких вот полей ?

Очевидно, надо обработчик MCC_DISPLAY_FOCUS изучать, и врезать в него тоже переключение языка ?

Правильно. А точнее MCFN_MCC_DISPLAY_FOCUS_INPUTBOX_S. Там описывается ввод текста и нажатие кнопок. На Е780 я там не делал смену языка, но в патче на Д900 там есть одна врезка...

.start	0x104F28A2
ldr	r1,=FotoKeyCheck3+1
bx	r1

FotoKeyCheck3:
bl	CheckFotoKey
bne	q4
ldr	r1,=0x1834513B
ldrb	r1,[r1]
cmp	r1,0x16
beq	q6
cmp	r1,0x15
bne	q4
q6:
bl	ChangeLang
mov	r0,1
add	sp,0x64
pop	{r4-r7,pc}
q4:
cmp	r0,1
bne	q5
mov	r5,0
ldr	r1,[sp,0x58]
ldr	r0,=0x18345138
ldr	r4,=0x104F28AC+1
bx	r4
q5:
ldr	r0,=0x104F29D2+1
bx	r0

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Наконецто, модем исправлен и я могу лазить в инете. :ci: Портировал патч (пока инет не работал) Сворачивание Java-приложений v.3.4 для самсунга Х700 с К6 на С3, вроде все адреса нашел, но немогу найти переход на адрес 0x10865C3C, мож кто поможет решить проблему? :al:

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Привет Форумчане, ПатчМейкеры и Портеры нужна ваша помощь :)

Портирую патч с E200XEGD6 "ВклВыкл микрофона при разговоре клавишей С" на D900IXEGF2

Вот он на Е200

<patchdata firmware="E200XEGD6" mode="C100" >

<changes>

<nord offset="0x00EFF148" from="C3" to="C7" type="CODE" />

<nord offset="0x00EFF1B4" from="19090100090000005C5D1F2000000000" to="1C00000000000000AC64892100000000" type="CODE" />

<nord offset="0x018964AC" from="0053494D0A6DC3A46C75206F6E2074C3A469730053494D2D6B61617274206F6E2074C3A469730054656C65666F6E690A" to="19090100090000005C5D1F20000000001909010002000000F4DFEF20000000001C00000000000000C4F1EF2000000000" type="CODE" />

</changes>

 

Вот что получаю после компиляции (адреса все находил вручную)D900IXEGF2

<patchdata firmware="D900IXEGF2" mode="C100" >

<changes>

<nord offset="0x006985F0" from="C3" to="F7" type="CODE" />

<nord offset="0x0069865C" from="1909010009000000E855582100000000" to="1C000000000000006CFDAA2000000000" type="CODE" />

<nord offset="0x00AAFD6C" from="0053494D0A6DC3A46C75206F6E2074C3A469730053494D2D6B61617274206F6E2074C3A469730054656C65666F6E690A" to="1909010009000000E85558210000000019090100020000006876E320000000001C00000000000000BC85692000000000" type="CODE" />

</changes>

При установке в РесМан патч не ругается (ставится нормально), он даже РАБОТАЕТ!!!(в левом нижнем углу появляется перечеркнутый динамик)

Но перестает работать патч "Запись разговоров" , а после удаления "ВклВыкл микрофона при разговоре клавишей С" Запись разговора опять начинает работать :(

Посмотрите пожалуйста где я ОШИБСЯ и возможно исправить конфликт с Записью разговора?

Samsung X700+1Gb(APACER) ->>K6->>X700XEFC3_by_Omich V2 портировал zizu -->> Samsung D900i-->>Samsung E740-->>Samsung Star TV (GT-S5233T)--> Ушел на Android

 

-=SON=-.gif

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Привет люди.

Вот решил научица портировать патчи.

Непойму одну строчку:

(из Портирование патчей: (метод "Ручками))

Например, если адрес строки "2C79EE", а первый символ стоит пятым в строке, то адрес его будет:

2C79EE - первый символ строки

2C79EF - второй

2C79F0 - третий

2C79F1 - четвертый

2C79F2 - пятый, т.е. НАШ

 

на скоко я понимаю первый символ "С" т.е. адрес его будет 2C79EF.

Мож. вы обьясните и покажыте, а то пока глухо.

Да. Как узнать нашли мы правельний адрес или нет.

Зарание пасиб :51:

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

..., если адрес строки "2C79EE", а первый символ стоит пятым в строке, то адрес его будет:

2C79EE - первый символ строки

2C79EF - второй

2C79F0 - третий

2C79F1 - четвертый

2C79F2 - пятый, т.е. НАШ

 

на скоко я понимаю первый символ "С" т.е. адрес его будет 2C79EF.

Мож. вы обьясните и покажыте, а то пока глухо.

Шестнадцатиричная система счисления...

 

 

Да. Как узнать нашли мы правельний адрес или нет.

Зарание пасиб :(

проверяй на прошивке... ставь патч и проверяй...

Errare humanum est

a62 -> k700i -> x620 -> x700-1 -> x100-1+x700-2 -> x100-2 -> Glofiish X500+ и SE W595i -> Nokia 1202 -> Lumia 730 DS -> Nokia 7.2

Ссылка на комментарий
Поделиться на другие сайты

Мож. покажусь глупым но так ничо и не понял. можыте показать на какомто примере с коментариями. если не трудно.

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

Мож. покажусь глупым но так ничо и не понял. можыте показать на какомто примере с коментариями. если не трудно.

 

А как ты патч портировал??? :(

Ссылка на комментарий
Поделиться на другие сайты

просто. нашол еквивалент первым адресам, а потом в конце кода перевелнул четыре байта и нашел им тож еквивалент и вставил и перевернул.

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

ну здесь повезло что не выбивало много адресов, на вкладке мсс я посмотрел чтоб всё сходилось в обеих прошивках. потом пропатчил обе прошивки опять открыл прошивку, посрел всё чотко и потом прошил. ет всё говорю для того чтоб все знали, я могу портирвать маленькие патчи и что я спортировал вчера патч, а не гдето безсовесно спёр.

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

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

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

Нужна ваша помощь, господа портеры)))) Так вот, портирую патч "Номер телефона в журнале звонков" с D600EXEFA1 на X700XEFC3... Так вот,что имеем

Spoiler

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;				 Эквиваленты		;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.equ gv_Call_Log_Menu_Index			 0x1833BC36;;;D600E
.equ 	lk_AddMenu						0x111F6A0C
.equ	gs_DspMenu 			0x1837BE74
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;; <Блок врезок>;;;;;;;;;;;;;;;;;;;;;
.start 0x10D78FA4;dir3_7GetCallLogData (7C05 2C);D600E
ldr  r0,=AllCallLogs_PopupNumber+1
bx   r0
.data

.start 0x100D6D78;dir3_5MakeMenuComponents;D600E
ldr  r1,=MakeMenuComponents_PopupNumber+1
bx   r1
.data

.start 0x115BEF24;dir3_6MakeMenuComponents_Last;D600E
ldr  r1,=MakeMenuComponents_LastPopupNumber+1
bx   r1
.data

;;;;;;;;;;;;;;;;;; </Блок врезок>;;;;;;;;;;;;;;;;;;;;

.start 0x10BFA1EF
;;;;;;;;;;;;;;;;;;;;;;; THUMB;;;;;;;;;;;;;;;;;;;;;;;;;;
AllCallLogs_PopupNumber:
ldrb r0,[r2,0xB]

cmp  r0,0
beq  AllCallLogs_DrawOnlyNumber

cmp  r0,0xFF
bne  AllCallLogs_DrawContactNameWithHisNumber

AllCallLogs_DrawOnlyNumber:
str  r1,[r4,4]

b	AllCallLogs_CountNumCalls
;;;;;;;;;;;;;;	
AllCallLogs_DrawContactNameWithHisNumber:
add  r1,0x2B
STR 	R1, [R4, #0x4]
str  r1,[r4,0x28]

AllCallLogs_CountNumCalls:
ldr  r0,=0x10D78FB4+1;D600E
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_PopupNumber:
ldr  r1,=gv_Call_Log_Menu_Index;D600E
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_DrawOnlyNumber

cmp  r0,0xFF
bne  MakeMenuComponents_DrawContactNameWithNumber

MakeMenuComponents_DrawOnlyNumber:
ldr  r0,=0x100D6D84+1;D600E
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_DrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x18;1C
mov  r3,r5
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E;22
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x100D6DA0+1;D600E
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_LastPopupNumber:
ldr  r1,=gv_Call_Log_Menu_Index
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_LastDrawOnlyNumber

cmp  r0,0xFF
bne  MakeMenuComponents_LastDrawContactNameWithNumber

MakeMenuComponents_LastDrawOnlyNumber:
ldr  r0,=0x115BEF30+1;D600E
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_LastDrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x18;1C
mov  r3,r5
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E;22
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x115BEF4C+1;D600E
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Spoiler

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;				 Эквиваленты		;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.include "X700XEFC3_Api.h"
.equ	gv_call_log_index		 0x182F3062;;;X700 точно
.equ	lk_AddMenu 				 0x10570A44;;;X700 точно
.equ	gs_DspMenu			   0x1834B1C4;;;X700 точно

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;; <Блок врезок> 0x184BF7FC D gs_CallLogData;;;;;;;;;;;;;;;;;;;;;
.start 0x100A6EB2;dir3_7GetCallLogData (7C05 2C);X700 точно
ldr  r0,=AllCallLogs_PopupNumber+1
bx   r0
.data

.start 0x116F34B7;dir3_5MakeMenuComponents;X700 точно
ldr  r1,=MakeMenuComponents_PopupNumber+1
bx   r1
.data

.start 0x116F34B6;dir3_6MakeMenuComponents_Last;X700 не точно
ldr  r1,=MakeMenuComponents_LastPopupNumber+1
bx   r1
.data

;;;;;;;;;;;;;;;;;; </Блок врезок>;;;;;;;;;;;;;;;;;;;;

.start 0x1019CE07;!!!!!!!!!!!!!
;;;;;;;;;;;;;;;;;;;;;;; THUMB;;;;;;;;;;;;;;;;;;;;;;;;;;
AllCallLogs_PopupNumber:
ldrb r0,[r2,0xB]

cmp  r0,0
beq  AllCallLogs_DrawOnlyNumber

cmp  r0,0x9B
bne  AllCallLogs_DrawContactNameWithHisNumber

AllCallLogs_DrawOnlyNumber:
str  r1,[r4,4]

b	AllCallLogs_CountNumCalls
;;;;;;;;;;;;;;	
AllCallLogs_DrawContactNameWithHisNumber:
add  r1,0x2B
STR 	R1, [R4, #0x4]
str  r1,[r4,0x28]

AllCallLogs_CountNumCalls:
ldr  r0,=0x100A6EC2+1;X700	точно 
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_PopupNumber:
ldr  r1,=gv_call_log_index;D600E
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_DrawOnlyNumber

cmp  r0,0x9B
bne  MakeMenuComponents_DrawContactNameWithNumber

MakeMenuComponents_DrawOnlyNumber:
ldr  r0,=0x116F34C2+1;X700	вроде точно
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_DrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x18;1C
mov  r3,r5
ldr  r1,=gv_call_log_index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E;22
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_call_log_index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x116F34EA+1;X700	вроде точно
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_LastPopupNumber:
ldr  r1,=gv_call_log_index
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_LastDrawOnlyNumber

cmp  r0,0x9B
bne  MakeMenuComponents_LastDrawContactNameWithNumber

MakeMenuComponents_LastDrawOnlyNumber:
ldr  r0,=0x116F34C2+1;X700	вроде точно
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_LastDrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x18;1C
mov  r3,r5
ldr  r1,=gv_call_log_index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E;22
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_call_log_index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x116F34DF+1;X700	вроде точно
bx   r0
.data

Компилю, патчу и нефига... на мой взгляд вроде правильно адреса нашел...

Прикрепил исхи...

number_in_call_log_C3.rar

number_in_call_log_D600E.rar

Изменено пользователем FeSS2

Errare humanum est

a62 -> k700i -> x620 -> x700-1 -> x100-1+x700-2 -> x100-2 -> Glofiish X500+ и SE W595i -> Nokia 1202 -> Lumia 730 DS -> Nokia 7.2

Ссылка на комментарий
Поделиться на другие сайты

...Шестнадцатиричная система счисления...

Я понял что шестнадцатиричная система счисления... 8)

Есть токо одно.

Пример:

E20XEGD6

Изменение_расположения_даты_и_времени_e200xegd6

 

<nord offset="0x15388FA" from="1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00" to="07A800F006F80821AA240048004741AB072003B40148019001BDF1FED720" />

 

1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 вотетому делу находит много еквивалентов в E200...J2, адрес иму я ищу по картинке на вкладке "ГРАФИКА"

Но а потом сё. Краснім виделено непонятное.

Цитирую:

 

После того как мы определили строку, где располается необходимая последовательность, необходимо определить адрес начала первого символа.

Для этого необходимо посчитать, начиная с какого байта в строке располагается первый символ.

 

Необходимо учесть, что считать надо в шестнадцатеричной системе счисления, т.е. 0..9, A..F.

 

Например, если адрес строки "2C79EE", а первый символ стоит пятым в строке, то адрес его будет:

2C79EE - первый символ строки

2C79EF - второй

2C79F0 - третий

2C79F1 - четвертый

2C79F2 - пятый, т.е. НАШ

 

Я просто не понимаю почему символ "С" пятий.

Но разве чтоли нн искался так;

0х212С...

то тогда "С" диствительно пятий.

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Ссылка на комментарий
Поделиться на другие сайты

FeSS2,

мало найти места врезок...

нужно еще смотреть какой код твоя врезка заменяет, сколько байт она заменяет и в соответствии с этим править тело патча...

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...