Перейти к содержанию

Делаем высокую скорость ходьбы игрока


Рекомендуемые сообщения

Делаем высокую скорость ходьбы игрока

SpeedHack


Эта статья практически похожа на ту что я писал ранее ( Там шла речь про высокий прыжок игрока )

Ссылка на статью про высокий прыжок

3-Приступим к поиску и взлому.

Подробнее об этом:

Игра Metro2033 уже запущена до меню... к ней подсоединен отладчик Ollydbg.. в прошлой статье ломали высоту прыжка и искали соответствующею текстовую метку ("jump_speed"), в это й ломаем скорость ходьбы и меток у нас будет две ... можно обойтись одной .. но мы будем работать с двумя...

1-"run_coef" (Скорость передвижения в перед)

2-"run_back_coef" (Скорость передвижения назад)

post-117-1324921900,15_thumb.png

Ставим точку остановки на эту метку (F2) и загружаем игру..

post-117-1324922144,05_thumb.jpg

Сработал наш бряк..

post-117-1324922733,15_thumb.jpg

Проходим вниз по коду с помощью клавиши (F8) и доходим вот до этой инструкции movss xmm0,[esp+68] здесь происходит загрузка параметра стандартной ходьбы вперед.. (float 1.90000)...

post-117-1324922971,44_thumb.jpg

Конечный результат нашего параметра ходьбы вперед хранится в [ebp+450].. посмотрим что у нас в ebp простыми вычислениями получаем адрес 154BBD00 смотрим в дамп и после выполнения инструкции movss [ebp+450],xmm0 по нашему адресу наше значение... Инструкции movss [ebp+450],xmm0 записывает наше значение в дамп для дальнейшего использования...Мы получили всю нужную информацию... и теперь мы можем снять бряк и нажать (Run=F9)... Игра до-загружается и смотрим опять в дамп.. да все ок .. там наше значение...

post-117-1324923736,33_thumb.jpg

Поставим на этот адрес точку остановки на чтение... и зайдем в игру и двинемся вперед .. сразу срабатывает точка остановки на чтение..

post-117-1324924663,73_thumb.jpg post-117-1324924675,66_thumb.jpg

Теперь все тоже самое проделаем с второй меткой 2-"run_back_coef" покажу лишь какая конечная инструкция срабатывает когда двигаемся назад..Вот она movss xmm0,[eax+00000454]

post-117-1324926476,74_thumb.jpg

То что выделено красным это инструкция которая работает с движением назад... и сразу в глаза бросается инструкция которая выделена синим... да да это наша инструкция которая работает с движением вперед...этот шаг выполнен на 100%.

4-Пишем скрипты

Подробнее об этом:

В этот раз придется написать два скрипта (приступим к этому)))))

1-Движение вперед скорость=6


alloc(newmem,2048)
label(returnhere)

newmem:
push [eax]
mov [eax],(float)6
movss xmm0,[eax]
pop [eax]
jmp returnhere

metro2033.exe+3649D5:
jmp newmem
nop
nop
nop
returnhere:

[DISABLE]
metro2033.exe+3649D5:
movss xmm0,[eax+00000450]
dealloc(newmem)
[ENABLE]

2-Движение назад скорость=6


alloc(newmem,2048)
label(returnhere)

newmem:
push [eax]
mov [eax],(float)6
movss xmm0,[eax]
pop [eax]
jmp returnhere

metro2033.exe+3649CB:
jmp newmem
nop
nop
nop
returnhere:

[DISABLE]
metro2033.exe+3649CB:
movss xmm0,[eax+00000454]
dealloc(newmem)
[ENABLE]

Стандарт:

Вперед скорость=1.9

Назад скорость=1.4

Чит:

Вперед скорость=6

Назад скорость=6

Скрипты пишутся именно так. потому что в [eax+00000454] и [eax+00000450] хранится стандартные параметры ходьбы .. а если их изменить то в стандарт привести их сможет тока загрузка игры заново ... Но этого нам не нужно...

Задача выполнена... игрок передвигается с тройной скоростью во все направления....

Спс

  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.