#91 [22.09.08, 19:40] FAQ. Наиболее легкий способ портирования функций
Решил значит накактать 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); думаю дай-ко портану ага.. а если в название вчитаться - становится ясно, что ее в телефоне то нету нету оранжевого диода
прикрепляю программу для более быстрого переворачивания адресов и выитания\прибавления оффсета
на w610, но вот если перевернуть 58FF1820, то получаем 2018FF58, далее вычитаем оффсет, для к790 44140000, получаем - DC04FF58. Вот он и вопрос: где в мэйне от к790 найти этот адрес, они ведь там все на 44****** и 45****** начинаются?
[ Редактировано metalist-tula в 6.4.09 12:35 ]
W610/R6BC002 в кузове K550Jet Black, Чип-тюнинг J20i/R7CA064 , сток
BigHercules
Elfmaker
Регистрация: 19.1.07 Сообщений: 246 Репутация: 1925 Откуда: Воронеж
#97 [06.04.09, 13:10] Re: FAQ. Наиболее легкий способ портирования функций
metalist-tula пишет: Немножко может быть озадачу вас: Хочу вот портировать функцию:
на w610, но вот если перевернуть 58FF1820, то получаем 2018FF58, далее вычитаем оффсет, для к790 44140000, получаем - DC04FF58. Вот он и вопрос: где в мэйне от к790 найти этот адрес, они ведь там все на 44****** и 45****** начинаются?
[ Редактировано metalist-tula в 6.4.09 12:35 ]
Это (2018FF58) адрес в ОЗУ (RAM). В мэйне ты можешь найти только ссылки на него. И соответсвенно, те функции, которые его используют. Ищи аналогичные функции в той прошивке на которую ты хочешь портировать. И смотри какой адрес используется в них. Это и будет нужный тебе адрес.
#98 [06.04.09, 13:17] Re: FAQ. Наиболее легкий способ портирования функций
BigHercules писал:
Ищи аналогичные функции..
Это какие? И их искать, руководствуясь библиотекой?
Хотя, подумав, понял.. Нужно найти в мэйне, на который портируем фунцию, адрес, который ссылается на это место в ОЗУ. Так ведь? Тогда возникает вопрос - как? Лопатить идой всю прошивку пока не попадём пальцем в небо?
[ Редактировано metalist-tula в 6.4.09 13:26 ]
Добавлено 6.4.09 22:21
Вообщем, пробывал искать адреса, которые ссылаются на 2018FF58, смельтером искал (списки>поиск ссылок), так вот в мэйне от К790 адресов нашлось более 100, а в W610 - ни одного.
W610/R6BC002 в кузове K550Jet Black, Чип-тюнинг J20i/R7CA064 , сток
#101 [08.04.09, 18:03] Re: FAQ. Наиболее легкий способ портирования функций
UltraShot, То-есть? мне в переходить по адресу: D0F92D4C, или CCF92D4C ? Я такого адреса не нашел в прошивке... Искал байты по прошивке, тоже безрезультатно...
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.