Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Warface CryEngine 3 — Поиск IActorSystem и фильтрация врагов

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
445
Реакции
10
Народ, кто сейчас плотно ковыряет CryEngine 3?

Решил на досуге освежить знания по классике Warface и взялся за написание internal софта для саморазвития. Столкнулся с типичной задачей при реализации силуэтов: как грамотно отфильтровать энеми от своих?

В теории все прозрачно, цепочка вызовов для фильтрации выглядит примерно так:
Код:
Expand Collapse Copy
pFrameWork->GetIActorSystem()->GetActor(pEnt->GetID())

Но есть затык с поиском этих структур в IDA Pro. Интересуют конкретные зацепки:
  1. Как надежнее всего вытащить IActorSystem из IGameFramework?
  2. Как найти GetActor внутри IActorSystem, если там куча виртуальных функций?
  3. Нахождение GetID в классе IEntity — есть ли стабильные сигнатуры?

Что имеем:
Билд 32-битный, движок местами перелопачен. Пытаюсь копать через строковые ссылки, но в этом клиенте много инлайнов, что превращает реверс в ту еще головную боль. Если у кого завалялись рабочие паттерны или вы знаете, по каким логам в консоли проще всего выйти на эти интерфейсы — делитесь опытом.

При реверсе CryEngine важно помнить про структуру VTable. Обычно IGameFramework лежит в основе всего взаимодействия, и вытащить из него ActorSystem можно через смещение в таблице виртуальных функций, но оно часто прыгает от патча к патчу. Не забывайте про MRAC, если планируете хукать функции напрямую — защита на это триггерится моментально.

Кто как обычно ищет эти смещения в IDA, есть проверенные способы зацепиться за структуры?
 
Назад
Сверху Снизу