Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Получение начального адреса процесса (base_address)

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,410
Реакции
454
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветствую! Моя задача получить base_address, какими бы функциями я бы не пользовался всегда выводит NULL. Кто-нибудь может подсказать функция для его получения?

Я пользовался функциями из разных исходников, даже из интернета (guidedhacks), но это не принесло мне никаких результатов. Вот код, который я использую и мне выводит NULL

C++:
Expand Collapse Copy
DWORD_PTR GetProcessBaseAddress(DWORD processID)
{
    DWORD_PTR   baseAddress = 0;
    HANDLE      processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
    HMODULE* moduleArray;
    LPBYTE      moduleArrayBytes;
    DWORD       bytesRequired;

    if (processHandle)
    {
        if (EnumProcessModules(processHandle, NULL, 0, &bytesRequired))
        {
            if (bytesRequired)
            {
                moduleArrayBytes = (LPBYTE)LocalAlloc(LPTR, bytesRequired);

                if (moduleArrayBytes)
                {
                    unsigned int moduleCount;

                    moduleCount = bytesRequired / sizeof(HMODULE);
                    moduleArray = (HMODULE*)moduleArrayBytes;

                    if (EnumProcessModules(processHandle, moduleArray, bytesRequired, &bytesRequired))
                    {
                        baseAddress = (DWORD_PTR)moduleArray[0];
                    }

                    LocalFree(moduleArrayBytes);
                }
            }
        }

        CloseHandle(processHandle);
    }

    return baseAddress;
}

PS: Игра не CS:GO (да игра вообще не имеет разницы, собственно), но это самый активный раздел. Надеюсь на помощь знающих!
 
Последнее редактирование:
Назад
Сверху Снизу