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

Вопрос Траблы с client.dll

  • Автор темы Автор темы b27
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2021
Сообщения
3
Реакции
0
Доброго времени суток, решил попробовать себя в написании простенького bhop`а, и сразу же столкнулся с проблемой, а именно с нахождением модуля client.dll. processID csgo найти получается, а вот модуль находить не хочет, в консоль выводит 0. Хотелось бы знать, что и где именно не так. Использовал мемори класс MemMan.
C++:
Expand Collapse Copy
int main()
{
    DWORD processID = memory.getProcess("csgo.exe");
    val.gameModule = memory.getModule(processID, "client.dll");
    std::cout << processID << std::endl;
    std::cout << val.gameModule << std::endl;
    return 0;
}
Код получения модуля:
C++:
Expand Collapse Copy
uintptr_t MemMan::getModule(DWORD procId, const char* modName)
{
    HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);
    MODULEENTRY32 mEntry;
    mEntry.dwSize = sizeof(mEntry);

    do
    {
        if (!strcmp(mEntry.szModule, modName))
        {
            CloseHandle(hModule);
            return (DWORD)mEntry.hModule;
        }
    } while (Module32Next(hModule, &mEntry));
    return 0;
}
P.s. Если у кого-то есть ссылочка на гайд по созданию мемори класса, буду рад ознакомиться :CoolStoryBob:
 
Код:
Expand Collapse Copy
 uintptr_t GetModuleBaseAddress(DWORD procId, const char* modName)
    {


        uintptr_t modBaseAddr = 0;
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);
        if (hSnap != INVALID_HANDLE_VALUE)
        {
            MODULEENTRY32 modEntry;
            modEntry.dwSize = sizeof(modEntry);
            if (Module32First(hSnap, &modEntry))
            {
                do
                {
                    if (!_stricmp(modEntry.szModule, modName))
                    {
                        modBaseAddr = (uintptr_t)modEntry.modBaseAddr;
                        break;
                    }
                } while (Module32Next(hSnap, &modEntry));
            }
        }
        CloseHandle(hSnap);
        return modBaseAddr;

    }

а тебе норм там закрывать хендл до получения модуля?)
 
Назад
Сверху Снизу