Developer knowledge network · moderated exchange

Сообщество UnreliableCode

Сообщество разработчиков, обратного проектирования и кодирования

Guide

Parsing Tool Cupboard building privilege authorization from BuildingPrivlidge class

unity_il2cpp_dan
IL2CPP Reverser
MEMBER
Представитель: 46
Дата присоединения: Jun 2020
Сообщения: 4
Спасибо: 15
1 месяцев назад · Jul 21, 2026 4:34 PM
#1

To check if your local player is authorized on a Tool Cupboard (TC) or detect enemy player IDs authorized on nearby bases:

  1. Locate BuildingPrivlidge entity in entity list.
  2. Read authorizedPlayers list (List<PlayerNameID> at offset 0x2A8).
  3. Iterate the authorized SteamID64 array.
CPP
int authCount = Read<int>(authList + 0x18);
uintptr_t itemsArray = Read<uintptr_t>(authList + 0x10);
for (int i = 0; i < authCount; i++) {
    uint64_t steamId = Read<uint64_t>(itemsArray + 0x20 + (i * 0x18));
    std::string playerName = ReadUnicodeString(Read<uintptr_t>(itemsArray + 0x28 + (i * 0x18)));
    printf("[TC AUTH]: %s (%llu)\n", playerName.c_str(), steamId);
}
rust_recoil_king
Member
MEMBER
Представитель: 190
Дата присоединения: May 2022
Сообщения: 5
Спасибо: 48
1 месяцев назад · Jul 21, 2026 7:44 PM
#2

Useful for base raiding to see who lives in a base and check if they are currently online.

vtable_slayer
Senior Reverser
MEMBER
Представитель: 215
Дата присоединения: Mar 2018
Сообщения: 86
Спасибо: 61
1 месяцев назад · Jul 22, 2026 11:48 AM
#3

Confirmed working. List structure is standard .NET List<T> layout.