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

Float Значение


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

Здесь напишу как найти Float значение, и как написать скрипт (С помощью Cheat Engine) буду рассказывать всё подробно

Взял игру Need For Speed Undercover (Будем взламывать закись азота)

1) Открываем Cheat Engine

2) Выбираем процесс игры "nfs.exe"

3) Выбираем тип значения ("Value Type") открылся список из списка выбираем "4 byte"

4) Выбираем тип сканирования ("Scan Type") открылся список из списка выбираем "Unknown initial value" (Это означает "Поиск неизвестного значения")

5) Заходим в игру, выбираем профиль, выбираем машину на которой установлено нитро

6) Сворачиваем игру, возвращаемся к программе, нажимаем "Fist Scan" (Это означает "Начать поиск")

7) Заходим в игру, и используем закись азота (т.е уменьшаем или прибавляем этот процесс называется "Отсеивание")

8) Сворачиванием игру, возвращаемся к программе, нажимаем "Next Scan" (это означает "Следующие сканирование" или "Отсеивание")

9) Продолжаем так делать несколько раз пока не найдётся несколько адрес (Ваш адрес или нет можно проверить путём "Замораживание адреса", слево есть такой маленький квадратик, нажмите на него (Этим вы заморозили адрес, т.е адрес изменяться не будет) заморозили адрес, вошли в игру, если закись азота не уменьшается то адрес наш

10) Сворачиваем игру, возвращаемся к программе, по нашему найденному адрес жмём по правой кнопки мышкой и нажимаем "Find out what accesses this adress" (Это означает "Брекпоинт на доступ")

11) Возвращаемся в игру и уменьшаем или прибавляем кол - во закиси азота

12) Сворачиваем игру, возвращаемся к программе, и в не большом окне появились инструкции, ищем примерно такое значение "fld dword ptr [ecx+000000b4]" (Мы должны именно с этой инструкцией работать)

13) Справо нажимаем "Show disassembler" (Это означает "Показать дизассемблер")

14) Далее (Сверху есть панель) жмём "Tools" ----> "Auto Assembler" (Это означает "Инструменты" ---> "Ассемблер")

15) Далее (Сверху есть панель) жмём "Template" ----> Cheat Table flamework code" (Это означает "Шаблон" ----> "вставление секций [ENABLE] и [DISABLE]"

16) Далее "Template" ----> "Code ingection" (Это означает "Шаблон" ----> "Внедрение кода")

17) Далее приступаем к написанию скрипта

Должен получиться вот такой скрипт:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

007358B0:
jmp newmem
nop
returnhere:

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov [ecx+000000b4],(float)1

originalcode:
fld dword ptr [ecx+000000b4] <---- Наша инструкция



exit:
jmp returnhere



[DISABLE]
//code from here till the end of the code will be used to disable the cheat
007358B0:
fld dword ptr [ecx+000000b4]
//Alt: db D9 81 B4 00 00 00
dealloc(newmem) <---- Убираем dealloc(newmem) в конец скрипта чтобы игра не глючила и не вылетала

18) Далее "File" ----> "Assign to current cheat table" (Это означает "Файл" ----> "Связь с текущей таблицей")

19) Чтобы активировать скрипт нужно его заморозить

Есть второй способ нахождения Float значения:

1) Открываем Cheat Engine

2) Выбираем процесс игры "nfs.exe"

3) Выбираем тип значения ("Value Type") открылся список из списка выбираем "Float"

4) Выбираем тип сканирования ("Scan Type") открылся список из списка выбираем "Unknown initial value" (Это означает "Поиск неизвестного значения") (Также вместо "Unknown initial value" ("Поиск неизвестно значения") можно сделать "Exact Value" ("Поиск точного значения") и где написано "Value" (Значение) написать 1

5) (Потом когда уменьшили или увеличили закись азота "Процесс отсеивания") в "Scan Type" ("Тип сканирования") в открылся список и выбираем "Decreased Value" ("Значение уменьшилось") или "Increased Value" ("Значение увеличилось")

Дальше всё также как и в первой способе!

Автор: 24K

Изменено пользователем 24K
  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

За труды по написанию, конечно, плюс, но есть одно большое "НО!": Это тупо рассказ о том, КАК делался скрипт. Никаких намеков на объяснение того ПОЧЕМУ он делался именно так в тексте нет. Следовательно, этот способ актуален ТОЛЬКО для этой игры и НИЧЕМУ новичка не научит. Потом пойдут нубские вопросы, на которые некоторые форумчане снова начнут реагировать неадекватно, потому что для ПРОДВИНУТЫХ эти самые "ПОЧЕМУ" очевидны, а вот для новичка - нет. Рекомендую переработать статью так, чтобы она действительно могла служить туториалом для новичка, и чтобы у него после прочтения не возникали нубские вопросы.

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

А объяснить, что делает инструкция? (:

-Она хранит наш запас нитро :-D

Xipho не надо так грузить -=CaliberWerkz=-'а! Он сделал все правильно и даже сказал что можно изменять тип значения(!) в самом скрипте. На сколько я помню, то ему всего 12 лет(он где-то писал об этом).

Из того что он не сказал еще о скриптах и значениях

это то что можно менять тип например тип 4 байта=типу float=типу double, а если посмотреть ети типы в HEX'e то значения у них все равные!!! А в скрипте можно было писать по-разному (float)1 например в том же HEX'e "mov [ecx+000000b4], HEX значение"

Я думаю что калибер сделал все на отлично, а кого заинтересует тот найдет больше и копнет глубже.

CaliberWerkz МОЛОДЕЦ и УМНИК что сделал такую хорошую инструкцию по взлому!!! Так держать :-D

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

За труды по написанию, конечно, плюс, но есть одно большое "НО!": Это тупо рассказ о том, КАК делался скрипт. Никаких намеков на объяснение того ПОЧЕМУ он делался именно так в тексте нет. Следовательно, этот способ актуален ТОЛЬКО для этой игры и НИЧЕМУ новичка не научит. Потом пойдут нубские вопросы, на которые некоторые форумчане снова начнут реагировать неадекватно, потому что для ПРОДВИНУТЫХ эти самые "ПОЧЕМУ" очевидны, а вот для новичка - нет. Рекомендую переработать статью так, чтобы она действительно могла служить туториалом для новичка, и чтобы у него после прочтения не возникали нубские вопросы.

посижу подумаю над новой версии статьи

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

3) Выбираем тип значения ("Value Type") открылся список из списка выбираем "4 byte"

Вообще убила))...Согласен с другими, ты показал как делать скрипт "когда значение float"...

посижу подумаю над новой версии статьи

Не нужно новую статью написать, ты только редактируй и добавь так,чтобы новичкам понятно было.

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

  • 1 год спустя...

1) Есть большая вероятность, что указатель может быть не правильно найден

2) Есть большая вероятность, что на поиск указателя уйдёт много сил и времени, и он так и не будет найден или не будет правильно найден

3) Есть большая вероятность, что простой скрипт даже без сканирования сигнатуры будет написан очень быстро и искать указатели не нужно при этом

4) Если у игры постоянно выходят патчи ИЛИ делаем читы для других игроков, то есть большая вероятность, что скрипты будут более эффективнее чем указатели. Указатели не будут работать, а скрипты будут работать. Есть несколько вариантов как это сканирование сделать. Просто сигна, сигна с дырками, сигна с дырками с дизассемблером+сгенериррованная инъекция кода. У каждого способа свой шанс на успех на разных патчах игр.

5) Скриптами можно сделать некоторые читы махом - например добавить все ресурсы в Герои Меча и Магии

6) Скриптами можно делать Убийство с одного раза

7) Скриптами CE Lua можно сделать почти все что угодно связанное с читами, хоть бота, который будет сам играть за Вас.

Минусы скриптов:

1) Требуется опыт написания скриптов - набить руку при создании скриптов на куче игр.

2) На скриптах АА (автоассемблера CE) порой нужно делать фильтры на регистры, значения адресов и т.п. иначе например будут все бессмертны и враги, и друзья. Это может быть сложным.

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

  • 1 месяц спустя...
×
×
  • Создать...

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

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