f2065 8,060 Report post Posted July 12, 2009 полдня убил на поиск непонятного глюка в патче… оказалось - виноват BinEdit: .equ r6_calladdr 0x20MOV R2, r6_calladdr и вот что он из этого компилирует:20BD6440: 321C MOV R2, R6 Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
AlexeyK 214 Report post Posted July 14, 2009 А почему вот BinEdit не делает подмену своих собственных длинных переходов ?! Где именно не подменяет? Вроде раньше подменял. Или это в редакторе патчей? Если возможно необходим пример патча. Да,все хотел попросить сделать и подмену для своих же переходов..Также хочу пару хотелок подбросить...1) Компилирование патча в поле запуска кода...Это планировалось, возможно скоро будет, только тут есть своя специфика, код должен компилироваться как плагин.Кстати,хочу заметить, что в последней версии BE где-то засела ошибка в компиляторе..Как-то дважды щелкнув на пустую строку между кодом - выдал BE ошибку (про что-то типа ...Bounds).. Последние BE.Вот какая ошибка.Если в терминале запустили код, и тел повис - соответственно он перезагрузился. BE считает, что тел подключен. После перезагрузки тел опять готов к бою, но - если в терминале не отключится от телефона, а еще раз запустить код (даже рабочий), BE говорит "В телефоне не нашлось достаточно места....", а затем вылетает ошибкa - Round of BoundsОшибку проверю, кажется знаю в чём дело. В любом случае после переподключении телефона необходимо переинициализировать COM соединение, так как оно потеряно.ошибок в компиляторе много…он непонятно как обрабатывает ошибки в коде.сегодян полдня не мог понять почему патч не работает, потом стал декомпилировать - смотрю а там LDR R2, 0x4nnnnnnn. А в листинге было написано типаLDR R2, metka+1…metka: В этом коде нет ошибок, это вполне допустимый синтаксис. В данном случае метка рассматривается как адрес расположения данных. LDR R2, metka ... .align 2 metka: .word 0xDATA эквивалентно LDR R2, =0xDATA ... metka: .data при этом metka+1 в LDR откругляется до числа кратного 4Так можно указывать загрузку данных уже существующих в прошивке, без повторного их размещения. Ошибка будет только если адрес metka+1 будет слишком далеко от адреса команды LDR. полдня убил на поиск непонятного глюка в патче… оказалось - виноват BinEdit: .equ r6_calladdr 0x20MOV R2, r6_calladdr и вот что он из этого компилирует:20BD6440: 321C MOV R2, R6При анализе строк кода все переменные сначала проверяются на имена регистров. Где то уже давно писал, что надо избегать в названиях меток использовать префиксы похожие на имена регистров. Постараюсь профиксить этот глюк. 3 Одна из последних версий binedit здесь. Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted July 14, 2009 Где именно не подменяет? Вроде раньше подменял. Или это в редакторе патчей? Если возможно необходим пример патча.Не подменяет на вкладке "КОД". Стандартные конструкции все отлично подменяет,а свои созданные компилятором:PUSH {R0,R1}LDR R0, =function+1STR R0, [sP, #0x4]POP {R0,PC}вот такие не подменяет...Ошибку проверю, кажется знаю в чём дело. В любом случае после переподключении телефона необходимо переинициализировать COM соединение, так как оно потеряно.Это понятно,да - просто бывает забываю, и жалко было код потерять из-за ошибки, заново писал Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
AlexeyK 214 Report post Posted July 14, 2009 Нашёл ошибку при дизассемблирование команды TEQ. Значение 8B102B21 дизассемблируется как эта команда. Хотя для неё требуется другое значение 8B103B21, по документации. Или я ошибаюсь? Изменяемый бит в данном коде отражает будут ли по данным операции изменяться биты статусного регистра. К арифметическим командам добавляется <S> (ADD -> ADDS)В данном случае для arm v4 этот бит не учитывается, для arm v5 вроде уже требуется его обязательное присутствие. PS. В ARM v5 появилось DSP расширение команд, как раз все они определяются этим битом. В данном случае это командаSMLAW0CS R11, R11, R0, R1По возможности добавлю дизассемблирование и компиляцию команд DSP расширения. Нашёл баг: в редакторе патчей ставим курсор на первый символ хекса и жмём стрелку влево на клавиатуре.Вылетает с такой ошибкойпоправлю. Здравствуйте!почему так выходит?открываю программу--нажимаю инсрументы--редактор патчей, затемя выбираю патч от прошивки D780XEHE1, нажимаю проверка патча--потом определение размеров и типов блоков, программа меня просит прошивку,я выбираю D780XEHE1 и она мне выдает: индекатор прошивки не совпадает с индикатором патча.обработка прервана!!! и так вообще с любым патчем этой прошивки!где я неправ?что проге надо?Возможно для этой прошивки не правильно определяется идентификатор прошивки. Попробуй сначала загрузить прошивку, потом патч. Если не поможет дважды кликни по полю "Прошивка" в параметрах патча. 4 Одна из последних версий binedit здесь. Share this post Link to post Share on other sites
AlexeyK 214 Report post Posted July 14, 2009 ' date='14.07.2009, 3:50' post='451344']Не подменяет на вкладке "КОД". Стандартные конструкции все отлично подменяет,а свои созданные компилятором:PUSH {R0,R1}LDR R0, =function+1STR R0, [sP, #0x4]POP {R0,PC}вот такие не подменяет... Это понятно,да - просто бывает забываю, и жалко было код потерять из-за ошибки, заново писал Подмену проверю, раньше вроде работало Если программа вылетела, то перед запуском можно куда нибудь скопировать временные файлы компилятора, там вроде должен код сохранятся. 3 Одна из последних версий binedit здесь. Share this post Link to post Share on other sites
f2065 8,060 Report post Posted July 15, 2009 А почему в справке написано что:BCS label ; если больше без учёта знакакак несложно экспериментально проверить - это «больше или равно»… Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
f2065 8,060 Report post Posted July 30, 2009 (edited) У кого-нибудь получается S3-патчи компилировать ?BinEdit не пишет файл данных отмены. Пишет типа что файл Cancel_C:\dir\1.s3 существует.Похоже на баг формирования имени cancel-файла ещё баг нашёл:s3-прошивка, если был сохранён BE-файл - открывается некорректно - адреса все смещены.приходится каждый раз BE-файлы удалять Edited July 30, 2009 by f2065 Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted July 30, 2009 AlexeyK - я уже писал, но походу это забылось. Изменить статус "ошибки", когда адрес подменяется редиректом при компиляции. Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
AlexeyK 214 Report post Posted July 31, 2009 ' date='30.07.2009, 7:20' post='454098']AlexeyK - я уже писал, но походу это забылось. Изменить статус "ошибки", когда адрес подменяется редиректом при компиляции.вроде поправил, но надо проверить 4 Одна из последних версий binedit здесь. Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 Есть небольшой вопрос - Как в BinEdit"е заменять IFG-графику? С 16-битными все ОК - заменяются на ура! Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 Есть небольшой вопрос - Как в BinEdit"е заменять IFG-графику? С 16-битными все ОК - заменяются на ура!А в чем проблема?Пишешь патч.Берешь адрес САМОЙ ifg-картинки, ищещь адрес в поиске как данные. Найдет адрес (мб даже 2 и более).Пишешь в компиляторе следующее:.start найденный_адрес.word my_ifg .start свободный_адресmy_ifg:.insertdata "полный путь к моей ifg-картинке" Вот и все. Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 ' date='07.08.2009, 12:50' post='455550']Берешь адрес САМОЙ ifg-картинки, ищещь адрес в поиске как данные. Найдет адрес (мб даже 2 и более).Ввёл адрес, потыкал несколько раз на обведённую кнопку (смотри скрин) но результата никакого! Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 Ввёл адрес, потыкал несколько раз на обведённую кнопку (смотри скрин) но результата никакого!1) Идем издалека.Для начала - это кнопка ищет конкретный HEX-код. Если пользоваться ей - то нужно в поиск вбивать перевернутый адрес.2) А у тебя адрес даже не натуральный в поиске - ты попробуй перейди по нему - и что увидишь?3) Нужно ввести реальный адрес (из 8 цифр), потом нажать на кнопку , и тогда BE выдаст найденные адреса.(конечно есть другие способы,но этот самый понятный). Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 Ввёл правильно адрес (смотрим скрин), потыкал кнопку D, но ничего не нашёл! Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 Ввёл правильно адрес (смотрим скрин), потыкал кнопку D, но ничего не нашёл! Потому что...212AE888 - это адрес не САМОЙ картинки.Это уже указатель на нее (т.е. как я говорил - найденный адрес).Поэтому в компиляторе BE пишешь:.start 0x212AE888.word my_ifg.start свободный адресmy_ifg:ну и т.д. Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 Всё вроде как понятно,но есть вопросы: Что такое "свободный адрес" и "полный путь к картинке IFG"? Где в компиляторе эти команды записывать? Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 Всё вроде как понятно,но есть вопросы: Что такое "свободный адрес" и "полный путь к картинке IFG"? Где в компиляторе эти команды записывать?Свободный адрес - это то место в прошивке, куда ты собираешься поместить новую IFG. (потому что IFG чаще имеют размер, больший, чем заменяемая).Полный путь - это значит не только путь до папки с твоей IFG картинкой, а включая и название смого IFG.Вот пример замены: .start 0x212AE888.word my_ifg .start 0xадрес_ненужной_картинкиmy_ifg:.insertdata "C:\My Mobile phone\My IFG graphic\power_on1_.ifg" 1 Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 А куда в ARM компиляторе эти команды записывать?В "полном пути" символы обязательно должны быть латинскими? Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 А куда в ARM компиляторе эти команды записывать?В "полном пути" символы обязательно должны быть латинскими?Файл - Новый файл, и вот в окошко пишешь.Символы могут быть также русскими.p.s. Если компилятор выдает ошибку "Файл не найден", замени один слеш на два.Т.е.:"C:\\My Mobile phone\\...." Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 ' date='07.08.2009, 8:40' post='455632']Свободный адрес - это то место в прошивке, куда ты собираешься поместить новую IFG. (потому что IFG чаще имеют размер, больший, чем заменяемая).А патч заработает, если я вставлю в "свободный адрес" такой же адрес как и в .start 0x212AE888? Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 А патч заработает, если я вставлю в "свободный адрес" такой же адрес как и в .start 0x212AE888?Не знаю,что ты именно имеешь ввиду. Лучше дай этот адрес, на котором хочешь расположиться - я посмотрю - и там уже подробнее объясню. Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Anthracite 198 Report post Posted August 7, 2009 (edited) Этот адрес в моей цитате написан, то есть 0x212AE888!Берешь адрес САМОЙ ifg-картинкиЯ этот адрес нашёл в карте ресурсов! Edited August 7, 2009 by димон95 Motorola V50 (2003) -> Siemens M50 (2003-2005) -> LG B2000 (2005-2007) -> Alcatel OT-310 (2007-2008) -> Samsung D900i (2008-2011) -> LG P500 (2011-2012) -> Пока Fly с изолентой -> Xiaomi M1S Youth + Google Nexus 7 2013 32 Gb Share this post Link to post Share on other sites
[AlaSToR] 4,923 Report post Posted August 7, 2009 Этот адрес в моей цитате написан, то есть 0x212AE888!Нет, нельзя!Там лежат как данные - многие картинки.Тебе нужен именно свободный адрес - расположиться на картинке неиспользуемой. Я этот адрес нашёл в карте ресурсов!В карте ресурсов при IFG-картинке самое главное= это указатель на ifg-картику, т.е. что как раз адрес - 0x212AE888.Если неизмененная карта, полученная прогой IFG_RW - то в карте пишется и указатель (в поле <img ptr..) , и не натуральный адрес самой картинки (в поле title=). Samsung FilesLength Checker v2.0 от 21.03.2009 STY Themes Manager v1.0 от 24.06.2009 ColorTab Editor v3.0 от 01.09.2012 NewSwift SSF Manager v2.0 от 01.09.2012 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Хотите обучиться патчам платформы Swift? Пожалуйста Share this post Link to post Share on other sites
Mako 1,429 Report post Posted August 24, 2009 Почти год не брал в руки БинЕдит... Напомните/разъясните что такое все-таки a_ProcessNames ( в оперативе) -процедура или таблица адресов?Дамп похож на arm-код, а в симах указывается такое имя.И получается что код прошивки грузится в оперу не с 30000000(18000000)-как я до сих пор считал,а с 30001000.Возможно первые 4096 байт и Data byte, но уж больно похоже на код00000000: 000082F4 STR R0,[R2] 00000004: 0CF09FE5 LDR PC=#0x30005C90 00000008: 0000A0E3 MOV R0, #0x0 0000000C: 0080BDE8 LDMFD SP!, {PC} 00000010: 0000D000 SBCEQS R0, R0, R0 00000014: 2C510030 ANDCC R5, R0, R12,LSR#2 00000018: 905C0030 DCD 0x30005C90 0000001C: 0FB430B5 LDRLTT R11,[R0,-0x40F] ! 00000020: 91B00F90 MULLS PC, R1, R0 00000024: 0C4816A9 LDMGEDB R6, {R2,R3,R11,LR} 00000028: 0E917844 LDRMIBT R9,[R8],-0x10E ! 0000002C: 08900B48 STMMIDA R11, {R3,R12,PC} 00000030: 78440990 ANDLS R4, R9, R8,ROR,R4 00000034: 0FAD281C STCNE p13,C10,[R8],-0x3C ! 00000038: 01AB0EAA BGE loc_003AAC44 0000003C: 159900F0 AND R9, R0, R5,LSL,R9 00000040: 37FD041C STCNE p13,C15,[R4],-0xDC 00000044: 291C0020 ANDCS R1, R0, R9,LSR#24 00000048: 01F0C8F9 STMIB R8, {R0,R12-PC}^ 0000004C: 201C11B0 ANDLTS R1, R1, R0,LSR#24 00000050: 30BC08BC STCLT p12,C11,[R8],-0xC0 00000054: 04B01847 LDRMI R11,[R8,-R4] 00000058: AF130000 ANDEQ R1, R0, PC,LSR#7 0000005C: B7130000 ANDEQ R1, R0, R7,LSR,R3 00000060: 7847 BX И, попутно, мож кто разъяснит значение артиклей у имен в симе a_ ,v_, s_, gp_ и т.п. / Чтобы боялись чужие, не обязательно бить своих.../ Share this post Link to post Share on other sites
SaNek 532 Report post Posted August 24, 2009 Mako, Предполагаю,p_ - Pointer (указатель)gp_ - Global Pointer (глобальный указатель)a_ - Array (массив)ga_ - Global Array (глобальный массив)v_ - Variable (переменная)gv_ - Global Variable (глобальная переменная) А вот s_,gs_ это скорее всегоs_ - Struct (структура)gs_ - Global Struct (глобальная структура) 3 Mobile: LG GT540 Android v2.3.7 Photo : Nikon DSLR D5000 (16GB Transcend) "Unusual style" Модифицированная прошивка для SGH-E200/E200XEGJ2 "Windows Vista" Модифицированная прошивка для SGH-E200/E200XEGJ2 Share this post Link to post Share on other sites