-
Автор темы
- #1
Шаг 1: Получение значения гравитации с помощью Asset Ripper
Первым делом нам понадобится программа
Теперь, когда мы знаем значение гравитации, мы можем использовать Cheat Engine для получения поинтера этого значения.
Теперь, когда у нас есть поинтер, мы можем написать простой хак для полета на C#. Для этого мы будем использовать библиотеку
Вот пример кода:
Первым делом нам понадобится программа
Пожалуйста, авторизуйтесь для просмотра ссылки.
, которую можно скачать с GitHub. Этот инструмент позволяет извлекать ресурсы из игр, созданных на Unity.- Скачайте и установите Asset Ripper с официальной страницы на GitHub.
- Запустите Asset Ripper и загрузите в него папку с игрой, из которой вы хотите извлечь данные.
- Нажмите на кнопку "Export Unity Project". Это создаст проект Unity, который вы сможете открыть в редакторе Unity.
- Откройте полученный проект в Unity. Перейдите в Project Settings и выберите вкладку "Physics". Здесь вы увидите параметр "Gravity" с тремя полями: X, Y и Z. Нас интересует значение Y. Обычно, если разработчик не изменял это значение, оно равно -9.81. Если это так, вы можете использовать программу Пожалуйста, авторизуйтесь для просмотра ссылки.для дальнейшей работы.
Теперь, когда мы знаем значение гравитации, мы можем использовать Cheat Engine для получения поинтера этого значения.
- Запустите Cheat Engine и откройте игру, в которой вы хотите изменить гравитацию.
- В Cheat Engine выберите процесс игры.
- В поле поиска выберите тип float и введите значение гравитации Y, которое вы получили на предыдущем шаге.
- Нажмите "First Scan". После этого вы получите список значений.
- Измените значение гравитации в игре (например, прыгните или упадите), а затем вернитесь в Cheat Engine и введите новое значение в поле поиска. Нажмите "Next Scan".
- Повторяйте этот процесс, пока не останется одно или несколько значений. Выберите нужное значение, щелкните правой кнопкой мыши и выберите "Pointer scan for this address".
Теперь, когда у нас есть поинтер, мы можем написать простой хак для полета на 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);
}
}
}
}
