Вопрос Как достать смещение - mat_fullbright с помощью IDA Pro?

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
30 Апр 2019
Сообщения
143
Реакции
35
Ребят, помогите кто шарит в IDA и в ConVar. Есть команда mat_fullbright смещение уже есть на руках - 0xBBC68 но, я хочу научится доставать сам подобные оффсеты через IDA.

Вот готовая таблица:

1641854497275.png


Что мне с ней нужно сделать, чтобы получить адрес в таком формате - 0xBBC68?
За помощь буду очень признателен!
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ребят, помогите кто шарит в IDA и в ConVar. Есть команда mat_fullbright смещение уже есть на руках - 0xBBC68 но, я хочу научится доставать сам подобные оффсеты через IDA.

Вот готовая таблица:

Посмотреть вложение 187905

Что мне с ней нужно сделать, чтобы получить адрес в таком формате - 0xBBC68?
За помощь буду очень признателен!
Oт какoгo значения oффсет ?
 
Если мы говорим про конвары, гораздо лучше не получать их значения статически, т.к. это будет ломатся при апдейтах игры, а вместо этого сделать парсер конваров как (код из моей пастульки):
C++:
Expand Collapse Copy
    std::unordered_map<std::string, uintptr32_t> ConVars{};
    bool DumpCVars()
    {
        uintptr32_t vstdlib_base = (uintptr32_t)Game.GetModuleAddress(xorstr2_("vstdlib.dll"));

        uintptr32_t m_pICVar = Game.Read<uintptr32_t>(vstdlib_base + O.interface_engine_cvar);
        if (!m_pICVar)
            return false;

        uintptr32_t shortCuts = Game.Read<uintptr32_t>(m_pICVar + 52);
        uintptr32_t hashMapEntry = Game.Read<uintptr32_t>(shortCuts);

        static char ConVarName[MAX_PATH]{};

        while (hashMapEntry != 0)
        {
            uintptr32_t pConVar = Game.Read<uintptr32_t>(hashMapEntry + 4);

            if (hashMapEntry == pConVar)
                return false;

            uintptr32_t pConVarName = Game.Read<uintptr32_t>(pConVar + 12);
            Game.ReadRaw(pConVarName, ConVarName, MAX_PATH);
            ConVars[ConVarName] = pConVar;
            SecureZeroMemory(ConVarName, MAX_PATH);

            hashMapEntry = pConVar;
        }
        return true;
    }
 
Oт какoгo значения oффсет ?
Вот три проверенных на 11.01.2022:
Код:
Expand Collapse Copy
cl_grenadepreview = 0xDD7D88
mp_weapons_glow_on_ground = 0xDCCF50
mat_fullbright = 0xBBC68
Если мы говорим про конвары, гораздо лучше не получать их значения статически, т.к. это будет ломатся при апдейтах игры, а вместо этого сделать парсер конваров как (код из моей пастульки):
C++:
Expand Collapse Copy
    std::unordered_map<std::string, uintptr32_t> ConVars{};
    bool DumpCVars()
    {
        uintptr32_t vstdlib_base = (uintptr32_t)Game.GetModuleAddress(xorstr2_("vstdlib.dll"));

        uintptr32_t m_pICVar = Game.Read<uintptr32_t>(vstdlib_base + O.interface_engine_cvar);
        if (!m_pICVar)
            return false;

        uintptr32_t shortCuts = Game.Read<uintptr32_t>(m_pICVar + 52);
        uintptr32_t hashMapEntry = Game.Read<uintptr32_t>(shortCuts);

        static char ConVarName[MAX_PATH]{};

        while (hashMapEntry != 0)
        {
            uintptr32_t pConVar = Game.Read<uintptr32_t>(hashMapEntry + 4);

            if (hashMapEntry == pConVar)
                return false;

            uintptr32_t pConVarName = Game.Read<uintptr32_t>(pConVar + 12);
            Game.ReadRaw(pConVarName, ConVarName, MAX_PATH);
            ConVars[ConVarName] = pConVar;
            SecureZeroMemory(ConVarName, MAX_PATH);

            hashMapEntry = pConVar;
        }
        return true;
    }
Да, я это понимаю. Я уже узнавал про это. Вот моя тема: https://yougame.biz/threads/234434/#post-2454059
Просто было интересно как это можно сделать конкретно через IDA. На UC:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad) уже ответили. Спасибо за помощь!
 
Последнее редактирование:

Похожие темы

Назад
Сверху Снизу