Osta, а как ты узнал?
![]() Учимся Патчить Прошивку! C помощью проги Binedit, Нужен Мануальчик от наших ГУРУ |
![]() |
![]() |
![]() |
![]() |
![]() |
Здравствуйте, гость ( Вход | Регистрация ) |
![]() Учимся Патчить Прошивку! C помощью проги Binedit, Нужен Мануальчик от наших ГУРУ |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Osta, а как ты узнал?
|
Osta |
![]() |
Freestyler ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Легенды MotoFan.Ru Сообщений: 10 329 Регистрация: 20.7.2004 Пользователь №: 8 235 Модель телефона: Moto Прошивка: *#9999# Настроение: Все невыспавшиеся в следующей жизни будут котами Рейтинг: 4362 ![]() |
|
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Хорошо
![]() |
Osta |
![]() |
Freestyler ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Легенды MotoFan.Ru Сообщений: 10 329 Регистрация: 20.7.2004 Пользователь №: 8 235 Модель телефона: Moto Прошивка: *#9999# Настроение: Все невыспавшиеся в следующей жизни будут котами Рейтинг: 4362 ![]() |
|
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Osta, доки хорошо, но быстренько посчитать программой было бы лучше
![]() |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
Цитата(AlexKooper @ Сегодня, 14:39) я все понимаю, но ответьте мне пожалуйста на один вопрос: как дизассмеблировать код примерно такого вида: 0001234: 2000 (если я на 100% уверен что тут код, а не данные) не используя дизасм полной патченой прошивки. Хотелось бы так же просто, как делается калькулятором бинедита аддр+асм>код ОЧ прсто: 1) создаёшь текстовый файл с расширением *.hex 2) вставляешь в него свой текстовый код, например, 2000 3) открываешь его в бинедите 4) переходишь на вкладку код 5) включаешь тумб режим декомпиляции (т.к. большинство патчей - это тумб код) 6) получаешь следующее: 00000000: 2000 MOV R0, #0x0 ;R0 = 0 |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
RekGRpth, вот, что мне и требовалось!
|
logotoy73 |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 362 Регистрация: 10.1.2007 Из: Подмосковье Пользователь №: 116 014 Модель телефона: RAZR MAXX, V3i, Defy+ Прошивка: VZV-16, 03.03R, 231 Настроение: в процессе... Рейтинг: 220 ![]() |
включаешь тумб режим декомпиляции (т.к. большинство патчей - это тумб код) А какие патчи не в тумбе надо делать? Если не трудно напиши их названия. И еще непонятны патчи где ты пишешь новые функции( особенно с LDR и STR, а также если добавляешь данные). Прошивки телефонов различаются в некоторых местах очень сильно и не всегда удаётся найти у себя такой же код. А с тем что загрузить или считать вообще завал. Сори но мозгов пока не хватает. |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Действительно, прошивки бывает различаются. Если бы создатели патчей давали развернутое описание вида:
;вот тут ничего не далаем пустая команда ;вот тут меняем условие ;вот тут меняем данные по такому принципу... то 1) другим портировать было бы легче 2) самим потом вспомнить проще ![]() А то вот сижу и гадаю: зачем так сделано Mov r0 0 ;Mov r0 0? нопы поленились использовать или тайный смысл? Сообщение отредактировал AlexKooper - 16.5.2007, 18:51 |
azt59 |
![]() |
![]() Мастер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 258 Регистрация: 26.9.2005 Из: Perm Пользователь №: 52 732 Модель телефона: E398/V3x/C650/Z6 Прошивка: --- Рейтинг: 140 ![]() |
AlexKooper,
хех=) MOV R0, #0 причём тут нопы поленились использовать)))... Просто заносит в регистр R0 значение 0....=) |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
azt59, несколько раз подряд
![]() |
GALL |
![]() |
![]() Гуру ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 706 Регистрация: 25.12.2004 Из: Барнаул Пользователь №: 29 674 Модель телефона: Iphone 4s Прошивка: IOS 7.1.1 ![]() Рейтинг: 274 ![]() |
RekGRpth, Всё-таки хотелось бы поинтереснее пример с разбором полётов. Не понимаю одного: патчеры не хотят раскрывать свои ноу-хау?.Вот всё обсмотрел - одна вода....Вот меня поставил в тупик патч "Черный список". Всё правильно сделал, переходы делает так же всё на моей прошивке. Но не работает...Не понятно как происходит получение обычных данных из одного места прошивки в другое для обработки в функциях. В том же "черном списке" вместо текстовой информации вставлен код функций. Каша короче...
Добавлено позже (19.5.2007, 16:46): Не понятно ещё, как BinEdit формирует код, т.е. как данные отделяет от команд. В IDA всё понятно - запустил скриптик и он всё распихает. Может для BinEdit тоже нужен какой-нибудь скрипт? |
logotoy73 |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 362 Регистрация: 10.1.2007 Из: Подмосковье Пользователь №: 116 014 Модель телефона: RAZR MAXX, V3i, Defy+ Прошивка: VZV-16, 03.03R, 231 Настроение: в процессе... Рейтинг: 220 ![]() |
RekGRpth твоя позиция "чтоб не на халяву' понятна. Но нам портерам на другие проши нужно больше информации. Как находить некоторые значения нужно бы расписать по подробнее( как например хистори для зарядки от USB).
Сообщение отредактировал logotoy73 - 19.5.2007, 18:49 |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Может, подскажет кто, как сделать чтоб при загрузке сг1 в бинедит адреса не с нуля шли, а с 10080000 (это для R373). А то переходы по абсолютным адресам кривые выходят....
|
Мачо |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Легенды MotoFan.Ru Сообщений: 456 Регистрация: 26.7.2004 Из: Киров Пользователь №: 8 569 Модель телефона: Е398 (умер), E6 Прошивка: Dream A Reality 2.0 ![]() Рейтинг: 1410 ![]() |
В бин эдит открыть свойства
и вставить это Bin ID="R373_G_0E.30.49R" adr="0x98F828" base="0x0" TYPE_ARM="BigEndian" SaveDataBin Enable="Y" RemapBlok Start="0x0" Len="0xDCE000" Goto="0x10080000" RAM_Area Start="0x12000000" Len="0x800000" Потом нажать сохранить, и применить. Название прошивки должно быть таким R373_G_0E.30.49R.bin |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Тогда следующий вопрос.
Вот написал я некий патч (кстати работоспособный), каждую команду перехода вручную вычислял.... долго. Особенно обидно когда приходится данные раздвигать/дополнять, смещая код по адресам... Можно ли как-то автоматизировать процесс, чтоб писать ассемблерные команды и метки, а бинедит компилировал? Код 1060484E 46C0 NOP 10604850 4778 BX PC 10604852 46C0 NOP 10604854 E59FC000 LDR R12, 0x1060485C 10604858 E12FFF1C BX R12 1060485C 10CF2001 новый адрес обработчика+1 далее забиваем нопами или FF сюда вернем управление с кодом в R5 10604880 B loc_10604954 ; универс функция в R0 код типа музыки, можно перенести сам код расположим тут (00C72000) 10CF2000: 46C0 46C0 nop nop 10CF2004: 497E LDR R1 0x10cf2200; mid 10CF2006: 1C20 ADD R0, R4, #0 10CF2008: F000F9FA BL 0x10CF2400;подпрограмма 1 10CF200C: 2800 CMP R0, #0 10CF200E: D011 BEQ metka1 10CF2010: 497C LDR R1 0x10CF2204; MID 10CF2012: 1C20 ADD R0, R4, #0 10CF2014: F000F9F4 BL 0x10CF2400;подпрограмма 1 10CF2018: 2800 CMP R0, #0 10CF201A: D00B BEQ metka1 10CF201C: 497A LDR R1 0x10CF2208; midi 10CF201E: 1C20 ADD R0, R4, #0 10CF2020: F000F9EE BL 0x10CF2400;подпрограмма 1 10CF2024: 2800 CMP R0, #0 10CF2026: D005 BEQ metka1 10CF2028: 4978 LDR R1 0x10CF220C; MIDI 10CF202A: 1C20 ADD R0, R4, #0 10CF202C: F000F9E8 BL 0x10CF2400;подпрограмма 1 10CF2030: 2800 CMP R0, #0 10CF2032: D109 BNE 10CF2048 metka22;если не 0 то переход к следующему 10CF2034: metka1 10CF2034: 250E MOV R5, #0xE ;код миди 10CF2036:; надо попасть на адрес ROM:10604880 10CF2036: 46C0 NOP 10CF2038: 4778 BX PC 10CF203A: 46C0 NOP 10CF203C: E59FC000 LDR R12, 0x10604881 10CF2040: E12FFF1C BX R12 10CF2044: 10604881 ;обработка Bas 10CF2048: metka22 10CF2048: 4971 LDR R1 0x10cf2210 10CF204A: 1C20 ADD R0, R4, #0 10CF204C: F000F9D8 BL 0x10CF2400;подпрограмма 1 10CF2050: 2800 CMP R0, #0 10CF2052: D005 BEQ metka11 10CF2054: 496F LDR R1 0x10cf2214 10CF2056: 1C20 ADD R0, R4, #0 10CF2058: F000F9D2 BL 0x10CF2400;подпрограмма 1 10CF205C: 2800 CMP R0, #0 10CF205E: D101 BNE 10CF2064 metka222 metka11 10CF2060: 2511 MOV R5, #0x11 ;код bas 10CF2062:;надо попасть на адрес ROM:10604880 10CF2062: E7E8 b 0x10cf2036;перепроверить код ;обработка mix 10CF2064: metka222 10CF2064: 496C LDR R1 0x10cf2218 10CF2066: 1C20 ADD R0, R4, #0 10CF2068: F000F9CA BL 0x10CF2400;подпрограмма 1 10CF206C: 2800 CMP R0, #0 10CF206E: D005 BEQ 0x10CF207C :metka111 10CF2070: 496A LDR R1 0x10cf221C ;перепроверить 10CF2072: 1C20 ADD R0, R4, #0 10CF2074: F000F9C4 BL 0x10CF2400;подпрограмма 1 10CF2078: 2800 CMP R0, #0 10CF207A: D101 BNE 10CF2080 metka2 10CF207C: metka1111 10CF207C: 2510 MOV R5, #0x10 ;код mix 10CF207E:;надо попасть на адрес ROM:10604880 10CF207E: E7DA b 0x10cf2036;перепроверить код 7 10CF2080: надо попасть на адрес ROM:10604882 10CF2080: metka2 10CF2080: 4778 BX PC 10CF2082: 46C0 NOP 10CF2084: E59FC000 LDR R12, 0x10604883 10CF2088: E12FFF1C BX R12 10CF209C: 10604883 а тут вспомогательные данные (00C72200) 10CF2200: 100DC1F0;mid 10CF2204: 100DC1FA;MID 10CF2208: 100DC204;midi 10CF220C: 100DC210;MIDI 10CF2210: 10CF2302;bas 10CF2214: 10CF230C;BAS 10CF2218: 10CF2316;mix 10CF221C: 10CF2320;MIX ;strings 10CF2300: 002E 10CF2302: 0062006100730000;bas 10CF230A: 002E 10CF230C: 0042004100530000;BAS 10CF2314: 002E 10CF2316: 006D006900780000;mix 10CF231E: 002E 10CF2320: 004D004900580000;MIX 10CF2328: 002E : подпрограмма1 10CF2400: B530 PUSH {R4,R5,LR} 10CF2402: 1C04 ADD R4, R0, #0 10CF2404: 1C0D ADD R5, R1, #0 10CF2406: F000F823 BL подпрограмма2 10СF240A: 1C02 ADD R2, R0, #0 10CF240C: E005 B 0x10CF241A metka3 10CF240E: metka4 10CF240E: 3402 ADD R4, #2 10CF2410: 1C20 ADD R0, R4, #0 10CF2412: F000F81D BL подпрограмма2 10CF2416: 1C02 ADD R2, R0, #0 10CF2418: 3502 ADD R5, #2 10CF241A: metka3 10CF241A: 1C28 ADD R0, R5, #0 10CF241C: F000F818 BL подпрограмма2 10CF2420: 4282 CMP R2, R0 10CF2422: D103 BNE 10CF242C metka5 10CF2424: 2A00 CMP R2, #0 10CF2426: D001 BEQ 10CF242C metka5 10CF2428: 2800 CMP R0, #0 10CF242A: D1F0 BNE 10CF240E metka4 10CF242C: metka5 10CF242C: BC30 POP {R4,R5} 10CF242E: BC08 POP {R3} 10CF2430: 1A10 SUB R0, R2, R0 10CF2432: 4718 BX R3 : подпрограмма2 10CF2450: 7801 LDRB R1, [R0] 10CF2452: 7840 LDRB R0, [R0,#1] 10CF2454: 0209 LSL R1, R1, #8 ; R1=R1<<8 10CF2456: 4308 ORR R0, R1 ; R0=R0 or R1 10CF2458: 4770 BX LR Сообщение отредактировал AlexKooper - 9.7.2007, 13:21 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
Тогда следующий вопрос. Вот написал я некий патч (кстати работоспособный), каждую команду перехода вручную вычислял.... долго. Особенно обидно когда приходится данные раздвигать/дополнять, смещая код по адресам... Можно ли как-то автоматизировать процесс, чтоб писать ассемблерные команды и метки, а бинедит компилировал? Честно говоря, не понял вопрос, я КАК, по твоему, делаю?! Вручную что-ли?! Беру исходник и компилю в бинедите, как ты и хочешь. В чём же проблема? |
~Gangs2er~ |
![]() |
![]() MotoSkinner ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 248 Регистрация: 4.8.2006 Из: Екатеринбург Пользователь №: 93 787 Модель телефона: (M) E398 Прошивка: У вас такой нету)) Рейтинг: 217.5 ![]() |
Может кто нить напишит мануал, начиная с: вот открыл я 49 ю прошивку, и ... Просьба написать про порт патчей, и написание собственых патчей!
|
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Честно говоря, не понял вопрос, я КАК, по твоему, делаю?! Вручную что-ли?! Беру исходник и компилю в бинедите, как ты и хочешь. В чём же проблема? Так я и говорю - я делаю ВРУЧНУЮ, и меня это не устраивает - тупое кодирование в машинные коды отнимает 90% времени, это если нигде по адресам не ошибешься... А если ошибешься то еще больше тупой работы... Вот если бы кто расписал простой пример: как в бинедите скомпилировать хотя бы такой текст: 1060484E: - важный момент, вручную указать начало кода NOP BX PC NOP LDR R12, переменная1 BX R12 переменная1 - эту переменную пусть ассемблер сам определит, где ей лежать 10CF2050: - вручную указать CMP R0, #0 BEQ metka11 - указать условное имя метки LDR R1 0x10cf2214 ADD R0, R4, #0 BL 0x10CF2400; CMP R0, #0 metka11 - пусть ассемблер сам определит, какой адрес у метки MOV R5, #0x11 Что важно: нужно иметь возможность самому задать адрес, откуда начинается код, адрес где лежит часть данных, а в то же время чтоб все остальное считалось автоматом - и адреса промежуточных данных (переменная1), и все коды команд. Собственно, подойдет любой пример такой же сложности... Мне лишь бы начать - дальше проще, методом тыка разберусь или спрошу если что-то именно непонятно. А сейчас непонятно основное: как начать. Сообщение отредактировал AlexKooper - 10.7.2007, 13:30 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
Так я и говорю - я делаю ВРУЧНУЮ, и меня это не устраивает - тупое кодирование в машинные коды отнимает 90% времени, это если нигде по адресам не ошибешься... А если ошибешься то еще больше тупой работы... Вот если бы кто расписал простой пример: как в бинедите скомпилировать хотя бы такой текст: Что важно: нужно иметь возможность самому задать адрес, откуда начинается код, адрес где лежит часть данных, а в то же время чтоб все остальное считалось автоматом - и адреса промежуточных данных (переменная1), и все коды команд. Собственно, подойдет любой пример такой же сложности... Мне лишь бы начать - дальше проще, методом тыка разберусь или спрошу если что-то именно непонятно. А сейчас непонятно основное: как начать. Ну ты хоть одни мои сырцы смотрел? Вот для твоего примера: .start 0x1060484E;: - важный момент, вручную указать начало кода NOP BX PC NOP LDR R12, =переменная1 BX R12 .data ;переменная1 - эту переменную пусть ассемблер сам определит, где ей лежать .start 0x10CF2050: - вручную указать CMP R0, #0 BEQ metka11; - указать условное имя метки LDR R1, =0x10cf2214 ADD R0, R4, #0 BL 0x10CF2400; CMP R0, #0 metka11:; - пусть ассемблер сам определит, какой адрес у метки MOV R5, #0x11 ... |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
неа, не смотрел.
1. а где сырцы есть (ладно, пищу по форуму)? 2. куда текстовый asm файл пихать, что нажимать чтоб код получить? Повторяюсь конечно, но... Сообщение отредактировал AlexKooper - 10.7.2007, 13:54 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
|
Osta |
![]() |
Freestyler ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Легенды MotoFan.Ru Сообщений: 10 329 Регистрация: 20.7.2004 Пользователь №: 8 235 Модель телефона: Moto Прошивка: *#9999# Настроение: Все невыспавшиеся в следующей жизни будут котами Рейтинг: 4362 ![]() |
Цитата(RekGRpth @ Сегодня, 3:41) содержание 1.asm Код .start 0x1060484E;: - важный момент, вручную указать начало кода MOV R0, #0x3D открыл , настройки поставил, нажал F9, получил файл 1.smp с содержанием: Код ... <nord offset="0x1060484E" to="3D20" /> ... а по-идее должно быть 20 3D .. где моя ошибка ? и CMP R2, #0x1F тоже перевернул в to="1F2A" :-( таак.. ошибку понял : нужно ещё обязательно нажать кнопку Тип получаемого кода Сообщение отредактировал Osta - 11.7.2007, 12:58 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
содержание 1.asm Код .start 0x1060484E;: - важный момент, вручную указать начало кода MOV R0, #0x3D открыл , настройки поставил, нажал F9, получил файл 1.smp с содержанием: Код ... <nord offset="0x1060484E" to="3D20" /> ... а по-идее должно быть 20 3D .. где моя ошибка ? и CMP R2, #0x1F тоже перевернул в to="1F2A" :-( таак.. ошибку понял : нужно ещё обязательно нажать кнопку Тип получаемого кода ![]() |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
А когда надо данные положить по определенному адресу, это так записывается?
.start 0x103C60E8 .hex 0000003B 24000000 103C667A 00003E00 00000001 120000D3 какие еще могут быть форматы? надо обязательно на dword разбивать или нет? |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
Цитата(AlexKooper @ Вчера, 19:32) А когда надо данные положить по определенному адресу, это так записывается? .start 0x103C60E8 .hex 0000003B 24000000 103C667A 00003E00 00000001 120000D3 какие еще могут быть форматы? надо обязательно на dword разбивать или нет? 1) так можно 2) это не DWORD, а просто WORD! (в ARM'e кой-чё по-другому ![]() 3) разбивать не обязательно 4) лучше так: DCD 0x0000003B DCD 0x24000000 ... |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
не понял... вот запись
.start 0x103C60E8 .hex 103C667A это же dword? какие там тонкости arm? а вариант DCD 0x0000003B DCD 0x24000000 как в asm-файле оформляется? просто вставить в любое место? |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
Цитата(AlexKooper @ Вчера, 19:38) не понял... вот запись .start 0x103C60E8 .hex 103C667A это же dword? какие там тонкости arm? а вариант DCD 0x0000003B DCD 0x24000000 как в asm-файле оформляется? просто вставить в любое место? 1) 4 байта в ARM'e - это WORD, 2 байта - HALF-WORD, 1 байт - BYTE ![]() 2) ну не в любое, а там где надо ![]() |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Такой вопрос - сбилась какая-то настройка бинедита, и теперь компилятор в режиме калькулятора считает код наизнанку - на примере кода bl 0xХХХХ вместо FabcFdef пишет bcFaefFd
Как вернуть? Сообщение отредактировал AlexKooper - 22.8.2007, 9:32 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
это значит, у тебя LittleEndian - а в нём как раз код наоборот идёт. Поставь BigEndian
А ваще, зачем тебе калькулятор?! Я например им не пользуюсь - компилер бинедита сам всё считает! |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Я не умею пользоваться компилятором. А калькулятором научился
![]() Тем более реально считать приходится 3-4 перехода на патч, что быстре сделать в калькуляторе, чем набивать асм код Сообщение отредактировал AlexKooper - 22.8.2007, 10:03 |
RekGRpth |
![]() |
Начинающий патчер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 234 Регистрация: 6.11.2006 Пользователь №: 106 009 Модель телефона: RoverPC N6 Прошивка: WM 6.1 Рейтинг: 359.5 ![]() |
А набивать весь код вовсе и не обязательно: можно из бинедита через буфер скопировать и удалить столбик с адресами
|
fry_razrv3 |
![]() |
![]() Интересующийся ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 16.6.2007 Пользователь №: 138 419 Модель телефона: RAZRV3r Прошивка: R4515.G.08.BD.44R Рейтинг: 0 ![]() |
у вас учат патчить? тогда научите как мне создать патч для своей платформы когда на других он уже существует, winhex есть ,нужен ли binedit или ida и дайте рабочую ссылку и если не трудно где и что и как менять
![]() |
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
fry_razrv3, давай на твоем примере сделаем урок "как портировать определенный патч - с примерами и описанием"?
с какой прошивки на какую и какой патч? |
Moto-Roker |
![]() |
Мастер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 174 Регистрация: 11.2.2007 Пользователь №: 121 727 Модель телефона: HZ Прошивка: HZ Рейтинг: 15 ![]() |
AlexKooper,
а давай лутче с меня. ![]() портировать требуеться с прошивки R4441D_G_08.01.03R на мою R452D_G_08.01.0AR. патч псевдо-плейлист, или часы в статус строке, как те удобнее. PS/ прости за наглость. Сообщение отредактировал Moto-Roker - 28.8.2007, 16:41 |
AlexKooper |
![]() |
|
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Псевдоплейлист конечно удобнее
![]() Возьмем за основу мою версию 5.0 для 49R Я прикладываю сообщение как начать портировать патч, с вашей стороны жду ответных действий типа "нашел указанную паттерну Х раз" В зависимости от Х будут дальнейшие указания Сообщение отредактировал AlexKooper - 28.8.2007, 19:08
| |
GALL |
![]() |
![]() Гуру ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 706 Регистрация: 25.12.2004 Из: Барнаул Пользователь №: 29 674 Модель телефона: Iphone 4s Прошивка: IOS 7.1.1 ![]() Рейтинг: 274 ![]() |
Пользуясь своим методом портирования, я не нашел в прошивке для L7e похожих кодовых и строковых комбинаций для псевдо-плейлиста.
|
AlexKooper |
![]() |
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Moto-Roker, пересчет смещений очень просто выполняется:
Смещение сг1 для любой прошивки можно посмотреть в FB3 - чтение кодовых групп. У них есть стартовый адрес, для 373 платформы это 10080000 а для 4513 4515 платформы - 10092000 и т.п. К этому смещению нужно прибавить смещение, указанно в патче (оно указано относительно начала сг1) Сделать это можно в калькуляторе винды, предварительно включив инженерный вид и переключив его на hex-операции. Просто суммируете смещение патча со смещение сг1. GALL, какая платформа у л7е? Сообщение отредактировал AlexKooper - 29.8.2007, 5:18 |
Moto-Roker |
![]() |
Мастер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 174 Регистрация: 11.2.2007 Пользователь №: 121 727 Модель телефона: HZ Прошивка: HZ Рейтинг: 15 ![]() |
AlexKooper,
R452D |
AlexKooper |
![]() |
|
![]() Авторитет ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 2 838 Регистрация: 27.7.2005 Из: Йошкар-Ола Пользователь №: 47 140 Модель телефона: E398 Прошивка: AlexKooper mod v.47 Рейтинг: 1337 ![]() |
Хорошо, продолжаем портирование!
Для пересчетов смещений рекомендую выпросить у хавермани прогу HexCal.exe, она автоматом прибавляет-вычитает смещение 1008000 или другое заданное. Сообщение отредактировал AlexKooper - 29.8.2007, 15:06
| |
![]() ![]() |
Текстовая версия | Сейчас: 31.7.2025, 1:08 |
Форум живёт: