GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Взлом Unturned (Unity, Mono)

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (начинающим)
    2 Сообщения 2 Posters 210 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • Suplin3S
      Suplin3
      отредактировано Suplin3

      Доброго всем времени суток! Решил тут на днях попрактиковаться во взломе, а именно во взломе игр на юнити в реализации mono.
      Всё было хорошо до одного момента...
      Первым делом нашёл значение стамины, отсканировал на это значение цепочку указателей. Далее закинул Assembly-CSharp.dll в dnSpy и увидел очень красивую картину, которая позволила найти гору других полезный значений:
      PlayerLife in dnSpy

      Перенёс всё что нужно в CE, с помощью смещений от стамины:
      Чит-Энджин

      Далее я путём сканирования значений нашёл все 3 координаты игрока и установил, что они находятся в виде Vector3 в классе Transform, инстанс которого, создаётся в классе SteamPlayer:
      Model in class SteamPlayer

      А уже в классе SteamPlayer находится инстанс класса игрока, в котором есть инстанс класса жизни игрока в котором и лежат: стамина, хп, еда и т.д.
      Вот я и подвёл к главному вопросу. Как можно получить указатель на класс SteamPlayer зная адрес координат. И как получить размер класса(например), чтобы использовать это как смещения инстанса Player от SteamPlayer и PlayerLife от Player'а?
      Буду крайне благодарен тому, кто поможет! Не могу найти решения уже 2 бессонные ночи.

      Если что-то забыл, то уточняйте пожалуйста! Всё разложу по полочкам.
      Ещё раз спасибо тому, кто поможет!

      1 ответ Последний ответ Ответить Цитировать 0
      • P
        paracetamol
        отредактировано

        Если главная цель найти указатель на структуру и способ не имеет значения, то я бы рекомендовал сменить подход к задаче.
        К примеру у меня была цель найти указатель на класс игрока в Terraria (.NET) - я нашёл здоровье, потом нашёл инструкцию, которая в него пишет, в инструкции адрес куда писать регистр+смещение, предположил, что в регистре искомый адрес и проверил эту гипотезу через dissect data/structure всё в том же CE, делаю инъекцию, которая вытаскивает его в символ который выводится в CE и который можно использовать в других скриптах, что я и делал.
        Думаю dissect будет одинаково работать и в вашем случае.
        22406b65-4727-463b-9cd5-c608a5766fe7-image.png
        1 - игра сама вычисляет адрес структуры
        2 - и потом прибавляя смещения находит то ей сейчас из этой структуры нужно

        Коротко: ваша игра как-то догадывается как искать стамину и прочее, нужно просто за ней проследить и перехватить на моменте, когда она найдёт то что и вам тоже нужно.

        1 ответ Последний ответ Ответить Цитировать 0
        • Первое сообщение
          Последнее сообщение