FAQ. Наиболее легкий способ портирования функций : Эльфостроение : Форум |
Страница 1 из 16: [1] 2 3 4 5 ... 16 » |
zapret: |
22.09.08, 19:40 |
Решил значит накактать FAQ по портированию функций библиотеки. как мне кажется уже проще моего - некуда. В примере будет описано портирование функции 0450: 00000000 B9616744 ; 114: int sprintf(char *buf, const char *fmt, ...); с W850 SW-R1KG001 для W580 SW-R8BE001 Что значит нам понадобится: 1) фактически единственная прога HxDen (прикрепил) (вместо нее можно использовать другие подобные проги, к примеру бинэдит. просто что в этой нет ничего лишнего). 2) Так же понадобятся уже сконвертированные прошивки w580 и w850 в формат raw. И так приступим. 1.Открываем программой HxDen обе прошивки. выбираем для начала w850. 2. теперь рассмотрим функцию "B9616744". для начала перевернем ее попарно. получаем 446761b9 . 3 теперь открываем виндовский калькулятор. вычитаем из 446761b9 - оффсет(конкретно в моем случае 44140000. чвой оффсет можно узнать с помошью программы babe2raw) получаем 5361B9 . 4.значит переходим по этому адресу(offset). и вот перед нами участок кода по этому адресу. я беру 7 байт(должно хватить)(в раззных случаях берем по-разному. иногда может хватить и 3 байт, иногда нужно больше) B4 10 B5 82 B0 04 1C 04 - вот они те самые 7 байт. 5. теперь переходим в прощивку w580. жмем Ctrl + F в открывшимся окне в поле Seath for: вводим те самые найденные "B4 10 B5 82 B0 04 1C 04" в поле Datatypes выбираем Hex-values ставим галочку на all и жмепм окей. получаем offset(в левом нижнем углу) 417079. 6.теперь снова открываем калькулятор. вводим получившееся значение "417079" и прибавляем 44140000. получаем 44557079. теперь попарно переварачиваем и получаем 79705544. вот впринципе и все. Этот способ я считаю одним из самых простых. в место м предлагаемой мною проги HxDen можно использовать иду. Этим способом возможно получится портировать не все функции. Будут вопросы - задавайте. врятли получится портировать с одной платформы на другую. (с) zapret007 специально для сайтов mobilefree и se-team P.S. не бросаемся сразу портировать все недастоющие функции. сначала нужно посмотреть ее описание вот к примеру функция для w580 непортированная. ;0B70: xxxxxxxx yyyyyyyy ; 2DC: void OrangeLED_Control(int _free_val, int or_LED_ID, int level, int fade_time); думаю дай-ко портану ага.. а если в название вчитаться - становится ясно, что ее в телефоне то нету нету оранжевого диода прикрепляю программу для более быстрого переворачивания адресов и выитания\прибавления оффсета Прикрепленный к сообщению файл: per_v.2.2.zip (3.91 kb; 390 hits) Скачать файл HxD.zip (736.83 kb; 209 hits) Скачать файл |
sam22: |
22.09.08, 21:12 |
1. можешь картинок добавить? 2. для 2010 подходит? |
Va_st: |
22.09.08, 21:17 |
Да тут картинки лишнее,даже я понял) |
Den750: |
22.09.08, 21:18 |
о то что надо , респект zapret007 +1 |
nvoid: |
22.09.08, 21:21 |
Ха, бедным владельцам DB2010 всё равно придётся ждать, когда на схожее тело функции портируют :D А вот в пределах платформы самое то. |
Oganyan-Arthur: |
22.09.08, 22:06 |
для начала перевернем ее попарно. получаем 446761b9 . 3 теперь открываем виндовский калькулятор. вычитаем из 446761b9 - 44140000 получаем 5361B9 . 6.теперь снова открываем калькулятор. вводим получившееся значение "417079" и прибавляем 44140000. получаем 44557079. теперь попарно переварачиваем и получаем 79705544. вот впринципе и все. Всё правельно! Но что бы упростить до минимума Твой фак, а точнее работу людей есть программка маленькая! Которая делает это всё сама! Как программа называется не знаю - автора тоже не знаю- но очень удобная! На твоём же примере: 1) Открываем прогу! 2) В верхнее левое окошко вставляем адрес "B9616744" 3) нажимаем перевернуть (в правом верхнем окошке получится перевёрнутое значение) 4) С права нажимаем отнять базу (-44140000) (при этом в правом нижнем окошке появится адрес) ! 5) Вот теперь ищем в прошивке! 6) когда нашли offset "417079" Вводим его в оставшееся чистое окошко (левое нижнее) и нажимаем прибавить базу (+44140000) , И в верхнем левом окошке появится найденный адрес! Остаётся его перевернуть ! 7) нажимаем сново перевернуть и готовый адрес получится в правом верхнем окошке! откуда можите скопировать его и вставить в библиотеку! Удачи! |
Deitro: |
22.09.08, 22:20 |
И все-таки хотелось бы чего-то нового. В частности, портирование какой-нибудь сложной функции с 2012 на 2010. Типа неофициальные ходы, непредсказуемые решения, жонглирование байтами в отладчике, скандалы, интриги, расследования Ато на k790 дофига функций, а их слишком трудно портировать. Примеры таким портов очень пригодились бы. Главное - побольше практики. |
zapret: |
22.09.08, 22:20 |
VoiD Ха, бедным владельцам DB2010 всё равно придётся ждать, когда на схожее тело функции портируют :D А вот в пределах платформы самое то. ну впринципе и с платформы на платформу можно пробовать так, но не все функции будут получаться. Добавлено 22.9.08 22:03 sam22, если завтра будет время - может картинок добавлю. |
yr4ik: |
23.09.08, 01:00 |
Да знаю я такой способ, сейчас им много кто портит, поначалу и я тоже.Но в нем с моей точки зрения - легко допустить ошибку, поскольку не видиш всей функции. |
GPcH: |
23.09.08, 02:23 |
Deitro писал: Ато на k790 дофига функций, а их слишком трудно портировать. Если какую функцию нужно будет портануть - пиши. Если же нужно портануть все которые я не успел сделать за время когда у меня был этот телефон - сорри, нет свободного времени, а для меня этот тел уже не интересен, так как у меня сейчас W580 ужо. Само собой за бабки сделаю хоть все, но врядли кто платить будет :) |
Страница 1 из 16: [1] 2 3 4 5 ... 16 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=3383 © 2005-2018 supertrubka.org |