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

    Поиск адреса режима Noclip в 32-битной игре, при условии почти одинаковых структур в памяти

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

      Пытаюсь найти адрес, который хранит флаг состояние режима "noclip", где 1 - включено и 0 - выключено в Call of Duty: Black Ops 2. В предыдущих играх серии, начиная с Modern Warfare 2 с помощью Cheat Engine я смог найти адрес, он расположен по смещению в несколько байт от базовго адреса "сущности игрока". На данный момент нашел адрес для игр CoD: MW2/MW3/Black Ops. Благо все эти игры 32-битные и разработчики используют один и тот же игровой движок, который немного отличается от игры к игре. В Modern Warfare 2 я нашел адрес через поиск и изменение значения в Cheat Engine, включая и выключая noclip. Однако во всех перечисленных мною играх есть опкод, который умеет читать значение из адреса и сравнивать его с числом 8 (я не знаю зачем).

      Вот этот опкод и байты для Modern Warfare 2:

      F680 54AD0000 08 test byte ptr [eax+0000AD54],08
      

      Байты и маска для поиска сигнатур в OllyDbg:

      \xF6\x80\x54\xAD\x00\x00\x08 - байты
      xx????x - маска
      

      Если искать в бальшом диапазоне адресов то можно найти не много адресов с опкодами (максимум 4), далее каждый найденный адрес с опкодом можно найти в Cheate Engine и узнать к каким адресам опкод имеет доступ, результат будет 1. Далее в найденном адресе можно поменять значени с 0 на 1 и убедиться что это адрес состояния noclip. Таким образом я нашел адреса для MW2/MW3/Black Ops.

      По итогу во всех играх адрес noclip находится в структуре "сущности игрока" примеры:
      MW2:

      player + 0xAD54 - noclip
      player + 0x24 - Z координата
      

      MW3:

      player + 0xAE04 - noclip
      

      BO:

      player + 0x1C0C - noclip
      

      Но с Black Ops 2 возникли сложности, я также попытался через опкод найти адрес, я его нашёл, этот адрес расположен таким образом:
      BO2:

      player + 0x1C34 - noclip
      

      НО значения 1 и 2 ничего не дают, я сделал скрипт который увеличивает значение на 1 и уменьшает значение на 1 при нажатии горячих клавиш. По итогу при определённых значениях игрок просто замирает на месте и не может двигать камерой, а также стрелять, как будто все его действия блокируются, а при других значениях блокировка отключается. Диапазон для каждого из двух состояний примерно 5 единиц.

      По итогу не получилось у меня полетать через noclip или ufo. Может быть мне нужен другой адрес, смещение или значение?

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