Grom-Skynet Опубликовано 26 декабря, 2011 Поделиться Опубликовано 26 декабря, 2011 Делаем высокую скорость ходьбы игрокаSpeedHackЭта статья практически похожа на ту что я писал ранее ( Там шла речь про высокий прыжок игрока )Ссылка на статью про высокий прыжок3-Приступим к поиску и взлому.Подробнее об этом:Игра Metro2033 уже запущена до меню... к ней подсоединен отладчик Ollydbg.. в прошлой статье ломали высоту прыжка и искали соответствующею текстовую метку ("jump_speed"), в это й ломаем скорость ходьбы и меток у нас будет две ... можно обойтись одной .. но мы будем работать с двумя...1-"run_coef" (Скорость передвижения в перед)2-"run_back_coef" (Скорость передвижения назад)Ставим точку остановки на эту метку (F2) и загружаем игру..Сработал наш бряк..Проходим вниз по коду с помощью клавиши (F8) и доходим вот до этой инструкции movss xmm0,[esp+68] здесь происходит загрузка параметра стандартной ходьбы вперед.. (float 1.90000)...Конечный результат нашего параметра ходьбы вперед хранится в [ebp+450].. посмотрим что у нас в ebp простыми вычислениями получаем адрес 154BBD00 смотрим в дамп и после выполнения инструкции movss [ebp+450],xmm0 по нашему адресу наше значение... Инструкции movss [ebp+450],xmm0 записывает наше значение в дамп для дальнейшего использования...Мы получили всю нужную информацию... и теперь мы можем снять бряк и нажать (Run=F9)... Игра до-загружается и смотрим опять в дамп.. да все ок .. там наше значение...Поставим на этот адрес точку остановки на чтение... и зайдем в игру и двинемся вперед .. сразу срабатывает точка остановки на чтение.. Теперь все тоже самое проделаем с второй меткой 2-"run_back_coef" покажу лишь какая конечная инструкция срабатывает когда двигаемся назад..Вот она movss xmm0,[eax+00000454]То что выделено красным это инструкция которая работает с движением назад... и сразу в глаза бросается инструкция которая выделена синим... да да это наша инструкция которая работает с движением вперед...этот шаг выполнен на 100%.4-Пишем скриптыПодробнее об этом:В этот раз придется написать два скрипта (приступим к этому)))))1-Движение вперед скорость=6alloc(newmem,2048)label(returnhere)newmem:push [eax]mov [eax],(float)6movss xmm0,[eax]pop [eax]jmp returnheremetro2033.exe+3649D5:jmp newmemnopnopnopreturnhere:[DISABLE]metro2033.exe+3649D5:movss xmm0,[eax+00000450]dealloc(newmem)[ENABLE]2-Движение назад скорость=6alloc(newmem,2048)label(returnhere)newmem:push [eax]mov [eax],(float)6movss xmm0,[eax]pop [eax]jmp returnheremetro2033.exe+3649CB:jmp newmemnopnopnopreturnhere:[DISABLE]metro2033.exe+3649CB:movss xmm0,[eax+00000454]dealloc(newmem)[ENABLE]Стандарт:Вперед скорость=1.9 Назад скорость=1.4Чит:Вперед скорость=6 Назад скорость=6Скрипты пишутся именно так. потому что в [eax+00000454] и [eax+00000450] хранится стандартные параметры ходьбы .. а если их изменить то в стандарт привести их сможет тока загрузка игры заново ... Но этого нам не нужно...Задача выполнена... игрок передвигается с тройной скоростью во все направления....Спс 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения