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

Вопрос Roblox — Поиск таблицы _G (globals table) в текущем билде

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
514
Реакции
13
Очередной завоз обнов в Roblox и очередные приколы с оффсетами. Пилю UNC экзекутор под билд version-26c90be22e0d4758. Module stomping через SEC_IMAGE в mfcore.dll залетает отлично, получение L (lua_State) через цепочку ScriptContext -> ExtraSpace тоже стабильное (через L+0x18 глобал валидируется).

Но сейчас уперся в стену: не могу выловить таблицу _G, чтобы регать новые UNC функции через luaH_set.

Что уже пробовал:
  1. L+0x48 (стандартный LuaState::gt) — поинтер читается, но по адресу в первом байте 0x00 вместо 0x06 (LUA_TTABLE).
  2. index2adr(L, -10002) по RVA 0x41B0950 — возвращает TValue, где в поле value лежит global_State (G), а не сама таблица _G.
  3. Closure.env (+0x10) на всех найденных CClosures (нашел 13 штук) — там либо нули, либо tt=0x00.

Из того, что уже накопал и вытащил:
  1. ptrenckey offset:
    Код:
    Expand Collapse Copy
    0x4B8
  2. Полностью разобраны структуры: Closure, TValue, Proto, TString.
  3. Живые функции: luaF_newCclosure, luaS_newlstr, luaH_set/setstr.

Дампер пасует на поиске lua_setfield и lua_pushcclosurek, так как анкор-строки типа "not enough memory to allocate C closure" в .rdata тупо стерли. Из выживших якорей остались только стринги ошибок рантайма и залоченных метатаблиц.

_VERSION (x11)
The metatable is locked
delay function requires
runtime error
attempt to index

Собственно, вопрос к тем, кто ковыряет актуальный движок: куда они могли увести gt в lua_State? Есть ли альтернативный путь достучаться до глобалов через уже известные структуры или живая сигна под lua_setfield?

Готов обменяться оффсетами, если кто-то тоже сейчас сидит над этим билдом.
 
Назад
Сверху Снизу