FAQ. Наиболее легкий способ портирования функций : Эльфостроение : Форум |
Страница 7 из 16: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 16 » |
Zormax: |
28.09.08, 21:08 |
В привате спросили: 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 ] |
agregat: |
28.09.08, 21:23 |
Zormax, где об этой истории можно узнать подробнее??? а то перебирать что то не очень охото |
Zormax: |
28.09.08, 21:33 |
Надо с оригинальным адресом смотреть LDR в LDR обычно указание загрузить мол адрес и если есть в скобках типа: R1 = 2XXXXXX LDR R2, (R1,0x4) значит прибавляется 4 а нам надо вычитать эти 4 |
KrasH: |
28.09.08, 23:41 |
Пример установки хука... 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 минут в среднем Ищеться в основном по хрефам,пагам и прочей близко лежащей мелочи |
agregat: |
29.09.08, 00:46 |
хм....что такое LDR, как и чем его получить и чем и как смотреть? и ещё если можно то ткните на какую нить понятную инфу по этому LDR )) [ Редактировано agregat в 28.9.08 23:58 ] |
Zormax: |
29.09.08, 07:20 |
agregat, В теме "Учимся писать патчи" |
M@rvin: |
01.10.08, 21:44 |
Я вот пробовал сделать по факу. Как узнать сколько нужно байт выбирать? И как узнать где кончается та или иная функция |
zapret: |
01.10.08, 21:52 |
Артур666, я б ща как ответил, но боюсь обидишься. . Как узнать сколько нужно байт выбирать сколько хочешь - столько и бери. И как узнать где кончается та или иная функция тебя это не волнует. тебе нужно найти только ее начало и получить тем самым адрес ее. как правило функа начинается байтом b5 заканчивается байтом 00. но не всегда |
GaS: |
01.10.08, 23:33 |
вот я смотрю тема набирает обороты, а главное что название " Наиболее легкий..." народ притягивает, но ФАК юрчика на мой взгляд более нагляднее и новичкам только туда...до недавнего времени сам нифига не петрил в этом, а сейчас в основном всё понятно, правда есть и трудные функи, но в ИДА их хоть можно сравнить визуально и на ошибку меньше шансов... |
zapret: |
01.10.08, 23:37 |
GaS, да откровенно говоря я уже сто раз пожалел, что создал фак почему-то новечкам он походу еще труднее дается, чем опытным.. когда ктонить из этих новечков станет по-опытне, то поймет, что все же это самый элементарный спосб, не требующий особого напряга. единственное - возможность ошибки, но опять же я таким способом еще не разу не ошибался.. |
Страница 7 из 16: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 16 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=3383&start=60 © 2005-2018 supertrubka.org |