- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 505
- Реакции
- 13
Надоело каждый раз после апдейта Раста лезть в дампер и руками выцеплять оффсеты для своего интернала. Хотелось бы сделать нормальный runtime auto-update, чтобы ESP не отваливался после каждого микро-патча от Facepunch.
Пытался через il2cpp::field(klass, "clientEntities", false) вытянуть FieldInfo*, но столкнулся с классикой — поиск через class_get_fields выдает лютую обфускацию вместо вменяемых имен. В итоге имеем кучу мусора, из которого невозможно выцепить нужный указатель по строке.
Какие сейчас есть адекватные варианты обхода этой дичи для Internal софта? Пока вижу несколько путей:
Кто как реализует авто-апдейтер в своих проектах под Rust? Делать через поиск по именам в il2cpp — это путь в никуда, если мы говорим про нормальный софт, который должен жить дольше одного патча.
Делитесь своими идеями или рабочими подходами по поиску структур в памяти Unity-игр.
Пытался через il2cpp::field(klass, "clientEntities", false) вытянуть FieldInfo*, но столкнулся с классикой — поиск через class_get_fields выдает лютую обфускацию вместо вменяемых имен. В итоге имеем кучу мусора, из которого невозможно выцепить нужный указатель по строке.
Суть проблемы в том, что в Unity/IL2CPP метаданные часто забиты обфусцированными именами полей. Искать по жесткой строке вроде 'clientEntities' в рантайме — затея дохлая, так как разрабы переименовывают всё, что движется.
Какие сейчас есть адекватные варианты обхода этой дичи для Internal софта? Пока вижу несколько путей:
- Сигнатуры (Pattern Scanning). Искать куски кода в функциях, которые работают с нужными полями, и вытягивать смещения прямо из опкодов.
- Парсинг методов. Найти метод по имени (они часто менее обфусцированы) через method_get_from_name, а потом натравить на него мини-дизассемблер, чтобы найти смещение поля.
- Использование уникальных типов полей. Если поле имеет редкий тип, можно попробовать перебор всех полей класса и фильтрацию по типу, но это костыль.
Кто как реализует авто-апдейтер в своих проектах под Rust? Делать через поиск по именам в il2cpp — это путь в никуда, если мы говорим про нормальный софт, который должен жить дольше одного патча.
Делитесь своими идеями или рабочими подходами по поиску структур в памяти Unity-игр.