Гайд Как сделать Gravity (Fly) Hack для Unity игры

Новичок
Статус
Оффлайн
Регистрация
27 Янв 2025
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Шаг 1: Получение значения гравитации с помощью Asset Ripper
Первым делом нам понадобится программа
Пожалуйста, авторизуйтесь для просмотра ссылки.
, которую можно скачать с GitHub. Этот инструмент позволяет извлекать ресурсы из игр, созданных на Unity.

  1. Скачайте и установите Asset Ripper с официальной страницы на GitHub.
  2. Запустите Asset Ripper и загрузите в него папку с игрой, из которой вы хотите извлечь данные.
  3. Нажмите на кнопку "Export Unity Project". Это создаст проект Unity, который вы сможете открыть в редакторе Unity.
  4. Откройте полученный проект в Unity. Перейдите в Project Settings и выберите вкладку "Physics". Здесь вы увидите параметр "Gravity" с тремя полями: X, Y и Z. Нас интересует значение Y. Обычно, если разработчик не изменял это значение, оно равно -9.81. Если это так, вы можете использовать программу
    Пожалуйста, авторизуйтесь для просмотра ссылки.
    для дальнейшей работы.
Шаг 2: Получение поинтера значения гравитации с помощью Cheat Engine
Теперь, когда мы знаем значение гравитации, мы можем использовать Cheat Engine для получения поинтера этого значения.

  1. Запустите Cheat Engine и откройте игру, в которой вы хотите изменить гравитацию.
  2. В Cheat Engine выберите процесс игры.
  3. В поле поиска выберите тип float и введите значение гравитации Y, которое вы получили на предыдущем шаге.
  4. Нажмите "First Scan". После этого вы получите список значений.
  5. Измените значение гравитации в игре (например, прыгните или упадите), а затем вернитесь в Cheat Engine и введите новое значение в поле поиска. Нажмите "Next Scan".
  6. Повторяйте этот процесс, пока не останется одно или несколько значений. Выберите нужное значение, щелкните правой кнопкой мыши и выберите "Pointer scan for this address".
Шаг 3: Написание external fly hack на C#
Теперь, когда у нас есть поинтер, мы можем написать простой хак для полета на C#. Для этого мы будем использовать библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
.

Вот пример кода:

C#:
using Capitalov;
using System.Runtime.InteropServices;

class Program
{

    [DllImport("user32.dll")]
    public static extern short GetAsyncKeyState(int vKey);
    static void Main()
    {
        float realValue = -30;
        float newValue = 3;

        MemoryRaider memory = new MemoryRaider();
        memory.Attach("Bean Parkour");

        IntPtr unity = memory.GetModuleBase("UnityPlayer.dll");

        IntPtr pointer1 = memory.ReadPointer(unity + 0x149F7C0);
        IntPtr pointer2 = memory.ReadPointer(pointer1 + 0x30);

        while (true)
        {
            if ((GetAsyncKeyState(0x20) & 0x8000) != 0)
            {
                memory.Write<float>(pointer2 + 0x7A8, newValue);
            }
            else
            {
                memory.Write<float>(pointer2 + 0x7A8, realValue);
            }
        }
    }
}
 
Сверху Снизу