Вопрос Чтение памяти

Начинающий
Статус
Оффлайн
Регистрация
5 Июн 2023
Сообщения
12
Реакции[?]
0
Поинты[?]
0
У меня есть адрес памяти "ac_client.exe"+0018AC04 и мне нужно найти значение в этом адресе помогите мне
 
Кот на арбузе
Пользователь
Статус
Оффлайн
Регистрация
27 Окт 2019
Сообщения
314
Реакции[?]
104
Поинты[?]
70K
У меня есть адрес памяти "ac_client.exe"+0018AC04 и мне нужно найти значение в этом адресе помогите мне
На сколько я помню GetModuleHandle(0) вернёт базовый адрес, то есть по факту получишь адрес "ac_client.exe", прибавляешь своё 0x18AC04, получаешь адрес в памяти, чтобы получить значение из этого адреса нужно сделать дереференс указателя.
Например по этому адресу целочисленное значение ака int, тогда пишем
code:
int value = [I]reinterpret_cast<int[/I]>(baseAddress + 0x18AC04);
(З.Ы. вместо int подставь свой тип данных, будто float или структура, без разницы, главное чтобы тип данных совпадал)
(З.Ы2. я не знаю почему здесь [I] и [/I], почему-то форматирование работает там где не должно, там должны быть *)

C++:
BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
{
    if (reason == DLL_PROCESS_ATTACH)
    {
        const auto baseAddress = reinterpret_cast<uintptr_t>(GetModuleHandleA(nullptr));
        int value = *reinterpret_cast<int*>(baseAddress + 0x18AC04);
        std::printf("value: %i\n", value);
    }
    return TRUE;
}
 
Сверху Снизу