- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 445
- Реакции
- 10
Народ, кто сейчас плотно ковыряет CryEngine 3?
Решил на досуге освежить знания по классике Warface и взялся за написание internal софта для саморазвития. Столкнулся с типичной задачей при реализации силуэтов: как грамотно отфильтровать энеми от своих?
В теории все прозрачно, цепочка вызовов для фильтрации выглядит примерно так:
Но есть затык с поиском этих структур в IDA Pro. Интересуют конкретные зацепки:
Что имеем:
Билд 32-битный, движок местами перелопачен. Пытаюсь копать через строковые ссылки, но в этом клиенте много инлайнов, что превращает реверс в ту еще головную боль. Если у кого завалялись рабочие паттерны или вы знаете, по каким логам в консоли проще всего выйти на эти интерфейсы — делитесь опытом.
Кто как обычно ищет эти смещения в IDA, есть проверенные способы зацепиться за структуры?
Решил на досуге освежить знания по классике Warface и взялся за написание internal софта для саморазвития. Столкнулся с типичной задачей при реализации силуэтов: как грамотно отфильтровать энеми от своих?
В теории все прозрачно, цепочка вызовов для фильтрации выглядит примерно так:
Код:
pFrameWork->GetIActorSystem()->GetActor(pEnt->GetID())
Но есть затык с поиском этих структур в IDA Pro. Интересуют конкретные зацепки:
- Как надежнее всего вытащить IActorSystem из IGameFramework?
- Как найти GetActor внутри IActorSystem, если там куча виртуальных функций?
- Нахождение GetID в классе IEntity — есть ли стабильные сигнатуры?
Что имеем:
Билд 32-битный, движок местами перелопачен. Пытаюсь копать через строковые ссылки, но в этом клиенте много инлайнов, что превращает реверс в ту еще головную боль. Если у кого завалялись рабочие паттерны или вы знаете, по каким логам в консоли проще всего выйти на эти интерфейсы — делитесь опытом.
При реверсе CryEngine важно помнить про структуру VTable. Обычно IGameFramework лежит в основе всего взаимодействия, и вытащить из него ActorSystem можно через смещение в таблице виртуальных функций, но оно часто прыгает от патча к патчу. Не забывайте про MRAC, если планируете хукать функции напрямую — защита на это триггерится моментально.
Кто как обычно ищет эти смещения в IDA, есть проверенные способы зацепиться за структуры?