| |
|
zapret
Moder
Регистрация: 27.5.07 Сообщений: 1577 Репутация: 1813 Откуда: Königsberg-Калининград
|
#61 [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); думаю дай-ко портану ага.. а если в название вчитаться - становится ясно, что ее в телефоне то нету нету оранжевого диода прикрепляю программу для более быстрого переворачивания адресов и выитания\прибавления оффсета
Прикрепленный к сообщению файл: per_v.2.2.zip ( 3.91 kb; 390 hits) Скачать файл HxD.zip ( 736.83 kb; 209 hits) Скачать файл
samsung galaxy S3 4.2.2 W580\K750i\k550
если собрали учет занятого места в прошивке - обращайтесь
|
Спасибо сказали: Va_st, Zormax, Joker XT, Man1980, sam22, Den750, VoiD, timos_06, Double_A, Pharaon, Deitro, 68-artem, yr4ik_07, BloodyMessage, ArmageddON, qwert, Zart, Ricollin, TOLIK111, DarkDarin, InDiGo, PUZ, Fanse, RedNaxLex, Dragon94, Frost-by, Krab, ANSARIK, metalist-tula, Rusty, ENSAIER, User_Vetal, NakedGun, TahaSpawn, vodoo999, flips, $lavko, RomaRi, dimony
|
Zormax
Admin
Регистрация: 12.12.05 Сообщений: 5826 Репутация: 5274 Откуда: Nizhniy Novgorod
|
#62 [28.09.08, 21:08] Re: FAQ. Наиболее легкий способ портирования функций
В привате спросили: 4Cхххххх - это оперативка. в DB2020 адреса начинаются на 2XXXXX в DB2010 и DB2000 на 4XXXXXX
Если портите на одинаковых платформах, то адрес оперативы будет либо таким же, либо на 4 больше, конечно может и больше быть или меньше, но в основном либо такой либо отличатся на 0x4
если разные платформы, то ищите адрес в оригинальной проше где эта оператива, смотрте там код что выше и ниже и ищите такой же код у себя.
т.е. если я портирую с w610 db2020 на w710 db2020 и функция на w610 имеет следующий вид:
0AEC: 00000000 94901820 ;82BB: FONT_DESC *GetFontDesc(void);
то адрес для либы w710 будет или такой же или 94901824 или 94901816 ?? ответ: или такой же или 90901820 или 98901820 адрес переверни и работай с 4 в конце ты же 4 в самом начале меняешь Добавлено 28.9.08 21:09 Опять же не факт что это правильно, адрес может и на большее кол-во байт отличатся, но это уже другая история. [ Редактировано Zormax в 28.9.08 21:10 ]
TOOKY T83 (1.3.1-L2), MK808B
|
agregat
Новичок
Регистрация: 27.9.08 Сообщений: 8 Репутация: 0
|
#63 [28.09.08, 21:23] Re: FAQ. Наиболее легкий способ портирования функций
Zormax, где об этой истории можно узнать подробнее??? а то перебирать что то не очень охото
|
Zormax
Admin
Регистрация: 12.12.05 Сообщений: 5826 Репутация: 5274 Откуда: Nizhniy Novgorod
|
#64 [28.09.08, 21:33] Re: FAQ. Наиболее легкий способ портирования функций
Надо с оригинальным адресом смотреть LDR в LDR обычно указание загрузить мол адрес и если есть в скобках типа: R1 = 2XXXXXX LDR R2, (R1,0x4)
значит прибавляется 4 а нам надо вычитать эти 4
TOOKY T83 (1.3.1-L2), MK808B
|
KrasH
VIP Developer
Регистрация: 12.10.07 Сообщений: 993 Репутация: 3014 Откуда: Шахты
|
#65 [28.09.08, 23:41] Re: FAQ. Наиболее легкий способ портирования функций
Пример установки хука... KBD *SetProc(void *proc(int key,int,int mode)): ldr r1, ram ;грузим str r0, [r1,4] ;пишем в рам+4 bx lr ;идём на адр.возврата Пишу с тела так шо не пинать! И того в ram+4 будет клавы обработчик...
Добавлено 28.9.08 23:43
Между платфорамами порт отнимает от 6 до 20 минут в среднем Ищеться в основном по хрефам,пагам и прочей близко лежащей мелочи
Samsung GT-I9000 Galaxy S SE C510 R1FA035 + M2 1Gb + HPM-82 WMR: 248608836491 WMZ: 305377005044 Спасибо mazhor(1500wmr),polza(600wmr), & to other(~1100wmr)
|
agregat
Новичок
Регистрация: 27.9.08 Сообщений: 8 Репутация: 0
|
#66 [29.09.08, 00:46] Re: FAQ. Наиболее легкий способ портирования функций
хм....что такое LDR, как и чем его получить и чем и как смотреть? и ещё если можно то ткните на какую нить понятную инфу по этому LDR )) [ Редактировано agregat в 28.9.08 23:58 ]
|
Zormax
Admin
Регистрация: 12.12.05 Сообщений: 5826 Репутация: 5274 Откуда: Nizhniy Novgorod
|
#67 [29.09.08, 07:20] Re: FAQ. Наиболее легкий способ портирования функций
agregat, В теме "Учимся писать патчи"
TOOKY T83 (1.3.1-L2), MK808B
|
M@rvin
Expert
Регистрация: 22.12.07 Сообщений: 252 Репутация: 292 Откуда: Москва
|
#68 [01.10.08, 21:44] Re: FAQ. Наиболее легкий способ портирования функций
Я вот пробовал сделать по факу. Как узнать сколько нужно байт выбирать? И как узнать где кончается та или иная функция
nokia n97 mini))) sw 12.0.110
w580 R8BE001+эльфы)+патчи))+моддинг+ граф патч от меня)))))-мертв
+немного кривые руки
|
zapret
Moder
Регистрация: 27.5.07 Сообщений: 1577 Репутация: 1813 Откуда: Königsberg-Калининград
|
#69 [01.10.08, 21:52] Re: FAQ. Наиболее легкий способ портирования функций
Артур666, я б ща как ответил, но боюсь обидишься. . Как узнать сколько нужно байт выбирать сколько хочешь - столько и бери. И как узнать где кончается та или иная функция тебя это не волнует. тебе нужно найти только ее начало и получить тем самым адрес ее. как правило функа начинается байтом b5 заканчивается байтом 00. но не всегда
samsung galaxy S3 4.2.2 W580\K750i\k550
если собрали учет занятого места в прошивке - обращайтесь
|
GaS
Expert
Регистрация: 18.1.08 Сообщений: 644 Репутация: 2553 Откуда: г.Кимры Россия
|
#70 [01.10.08, 23:33] Re: FAQ. Наиболее легкий способ портирования функций
вот я смотрю тема набирает обороты, а главное что название " Наиболее легкий..." народ притягивает, но ФАК юрчика на мой взгляд более нагляднее и новичкам только туда...до недавнего времени сам нифига не петрил в этом, а сейчас в основном всё понятно, правда есть и трудные функи, но в ИДА их хоть можно сравнить визуально и на ошибку меньше шансов...
SONY Xperia GO ,J105 R1HA035
|
zapret
Moder
Регистрация: 27.5.07 Сообщений: 1577 Репутация: 1813 Откуда: Königsberg-Калининград
|
#71 [01.10.08, 23:37] Re: FAQ. Наиболее легкий способ портирования функций
GaS, да откровенно говоря я уже сто раз пожалел, что создал фак почему-то новечкам он походу еще труднее дается, чем опытным.. когда ктонить из этих новечков станет по-опытне, то поймет, что все же это самый элементарный спосб, не требующий особого напряга. единственное - возможность ошибки, но опять же я таким способом еще не разу не ошибался..
samsung galaxy S3 4.2.2 W580\K750i\k550
если собрали учет занятого места в прошивке - обращайтесь
|
Похожие темы
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
|
|
|