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

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

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

1641854497275.png

Что мне с ней нужно сделать, чтобы получить адрес в таком формате - 0xBBC68?
За помощь буду очень признателен!
 
Пользователь
Статус
Оффлайн
Регистрация
30 Апр 2019
Сообщения
143
Реакции[?]
34
Поинты[?]
5K
Забаненный
Статус
Оффлайн
Регистрация
31 Дек 2021
Сообщения
12
Реакции[?]
13
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ребят, помогите кто шарит в IDA и в ConVar. Есть команда mat_fullbright смещение уже есть на руках - 0xBBC68 но, я хочу научится доставать сам подобные оффсеты через IDA.

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

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

Что мне с ней нужно сделать, чтобы получить адрес в таком формате - 0xBBC68?
За помощь буду очень признателен!
Oт какoгo значения oффсет ?
 
Pa$$ter
Пользователь
Статус
Оффлайн
Регистрация
9 Июн 2020
Сообщения
241
Реакции[?]
83
Поинты[?]
12K
Если мы говорим про конвары, гораздо лучше не получать их значения статически, т.к. это будет ломатся при апдейтах игры, а вместо этого сделать парсер конваров как (код из моей пастульки):
C++:
    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;
    }
 
Пользователь
Статус
Оффлайн
Регистрация
30 Апр 2019
Сообщения
143
Реакции[?]
34
Поинты[?]
5K
Oт какoгo значения oффсет ?
Вот три проверенных на 11.01.2022:
Код:
cl_grenadepreview = 0xDD7D88
mp_weapons_glow_on_ground = 0xDCCF50
mat_fullbright = 0xBBC68
Если мы говорим про конвары, гораздо лучше не получать их значения статически, т.к. это будет ломатся при апдейтах игры, а вместо этого сделать парсер конваров как (код из моей пастульки):
C++:
    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) уже ответили. Спасибо за помощь!
 
Последнее редактирование:
Сверху Снизу