Оффсеты

Для тех, кто хочет сделать мир лучше.
Ответить
Сообщение
Автор
Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#1 Сообщение 16.09.2010, 20:44

Я не знаю как правильно назвать тему, постараюсь объясните подробней, думаю знающие люди дожны понять
Уже относительно давно занимался изменением прошивки(ПО) своего телефона Sony Ericsson
Там в прошивке были строки, функции или любые другие данные, и к ним можно было обратится через адрес именуемый оффсетом, он был const+<адрес в HEX редакторе>, ну ещё байты переворачивались(тоесть адрес 44fc2bc4, а в прошике он был c42bfc44)(const это начальный адрес прошивки).
Вот если мне нужно было заменить путь к какой-то папке, и он был длинный, и вместо старого не помещался, то просто этот путь писался в конце прошивки(или в любом другом свободном месте), и просто все ссылки на старое расположение пути заменялись на новое.
Что то такое должно быть и для windows приложения, вот только как правиль это назвать я не знаю, и поэтому найти не могу.
Последний раз редактировалось GanGSISoft 16.09.2010, 20:46, всего редактировалось 1 раз.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#2 Сообщение 16.09.2010, 21:12

GanGSISoft
В Windows для перемещения файлов используется drag&drop %)
А если по теме - то что собственно нужно? Похексить можно почти всё, только зачем тебе это понадобилось (конкретнее)?
Вообще читай доки про PE (Portable Executable) - формат файлов .exe
Хотя если нужно менять значения, считаемые в рантайме можно хексить оперативу, там подругому уже)

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#3 Сообщение 16.09.2010, 21:20

Ну вот простейший пример, игра хранит сохранения в "c:\game" я хочк сделать в "c:\Gammmee", поэтому хочу "c:\Gammmee" дописать в конец exe файла, и все ссылки на старый путь заменить новыми.

Аватара пользователя
x_000
Полковник
Полковник
Сообщения: 4889
Зарегистрирован: 25.02.2008
Откуда: Deutsches Reich
Благодарил (а): 6 раз
Поблагодарили: 18 раз

#4 Сообщение 17.09.2010, 13:35

GanGSISoft
как как, MOZGIII все верно говорит, берешь документацию по формату РЕ, внимательно читаешь, узнаешь, как можно раздвинуть секцию данных и делаешь это
или, если повезет, то за концом строки будет еще свободное место, туда тоже можно расширять
либо оффсеты на строку ищи в дизассемблированном коде, там заменяешь на адрес любого свободного места в секции данных(которое обязательно будет, а вот прямо за строкой, для ее непосредственного расширения, может и не быть)

Аватара пользователя
SHADOW
Полковник
Полковник
Сообщения: 4024
Зарегистрирован: 13.05.2009
Благодарил (а): 61 раз
Поблагодарили: 327 раз
Контактная информация:

#5 Сообщение 17.09.2010, 18:22

GanGSISoft
Советую установить OllyDbg. Ищешь по всем модулям к данному EXE файлу текст /game/ , потом ищешь ссылки(references) к данному адресу, по которому находится текст. Если все правильно сделал, то найдешь подобное:

Код: Выделить всё

MOV DWORD PTR SS:[адрес],EDI
Ясное дело, что вместо EDI может стоять и EAX, и EBX, и другие регистры.

Затем ищешь свободное место в файле. Если нету места, то создаешь новую секцию(небольшого размера).
Вписываешь в свободное пространство нужный тебе текст(в данном случае новый путь), и меняешь адрес с выше написанного кода MOV DWORD PTR SS:[адрес],EDI на новый.
Последний раз редактировалось SHADOW 17.09.2010, 18:25, всего редактировалось 3 раза.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#6 Сообщение 17.09.2010, 18:34

сложно всё, нельзя ли взять адрес в HeX редакторе, а как нибудь вычислить этот оффсет, как в той же прошивке телефона?

Аватара пользователя
SHADOW
Полковник
Полковник
Сообщения: 4024
Зарегистрирован: 13.05.2009
Благодарил (а): 61 раз
Поблагодарили: 327 раз
Контактная информация:

#7 Сообщение 17.09.2010, 18:41

GanGSISoft
если нету места для дописывания, то без отладчика будет оооочень сложно

Ответить