- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 635
- Реакции
- 17
Залетел в реверс актуального RobloxPlayerBeta, пытаюсь вытянуть живые офсеты под Hyperion.
Стандартные методы через обычные дамперы сейчас сосут — дампы в той же Гидре выходят просто нулевыми. Похоже, Hyperion (Byfron) конкретно заморочился со Scattered Mapping и ленивой загрузкой модулей. Решил не долбиться в закрытые двери и пошел через ядро.
Текущий стек разработки:
Как это работает сейчас:
Поскольку база процесса пустая, я итерирую RX-регионы через
Что удалось вытянуть и в чем затык:
Уже нашел
Собственно, вопрос к местным гуру реверса: стоит ли дальше упарываться в динамический скан памяти или лучше все-таки попытаться реконструировать чистый статический дамп для анализа в IDA? Кто как сейчас фиксит волатильность AOB под Byfron и на что опираетесь — на строки или на графы функций?
Интересно узнать, как вы боретесь с постоянно меняющимися оффсетами в последних апдейтах.
Стандартные методы через обычные дамперы сейчас сосут — дампы в той же Гидре выходят просто нулевыми. Похоже, Hyperion (Byfron) конкретно заморочился со Scattered Mapping и ленивой загрузкой модулей. Решил не долбиться в закрытые двери и пошел через ядро.
Текущий стек разработки:
- Драйвер маппится через kdmapper.
- Для чтения памяти юзаю
MmCopyVirtualMemory, чтобы не светить хендлами и забить на OpenProcess. - Связь юзермод-ядро организована через shared memory с NULL DACL.
Как это работает сейчас:
Поскольку база процесса пустая, я итерирую RX-регионы через
VirtualQueryEx. Наткнулся на интересный динамический блок размером около 13.5MB, который подтягивается из BYF*.tmp. Вместо того чтобы пытаться отребилдить PE-заголовок (что сейчас та еще боль), я просто закидываю эти регионы в драйвер и прохожусь по ним AOB-сканером.Что удалось вытянуть и в чем затык:
Уже нашел
luau_gettop через сигнатуры, но есть сомнения в их долговечности. Сейчас цель — достать luau_execute, lua_getfield, lua_settop и identity offset. Проблема в том, что Hyperion мутирует код и сигнатуры слетают быстрее, чем я успеваю их записывать.Эта функция забита мусором по самое не хочу. Чтобы подтвердить находку и не ловить BSOD при попытке вызова, советую смотреть на XREFs от специфических строк ошибок Luau или искать константы главного VM-лупа. Если сигнатура кидает вас в центр жирного switch-кейса — это оно.
Собственно, вопрос к местным гуру реверса: стоит ли дальше упарываться в динамический скан памяти или лучше все-таки попытаться реконструировать чистый статический дамп для анализа в IDA? Кто как сейчас фиксит волатильность AOB под Byfron и на что опираетесь — на строки или на графы функций?
Интересно узнать, как вы боретесь с постоянно меняющимися оффсетами в последних апдейтах.