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