DWORD ModulePointer(char* ModuleName)
{
MODULEENTRY32 lpModuleEntry;
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
if (!hSnapShot)
return NULL;
lpModuleEntry.dwSize = sizeof(lpModuleEntry);
BOOL __RunModule = Module32First(hSnapShot, &lpModuleEntry);
char* szModule;
szModule = (char*)lpModuleEntry.szModule;
while (__RunModule)
{
if (!strcmp(szModule, ModuleName))
{
CloseHandle(hSnapShot);
return (DWORD)lpModuleEntry.modBaseAddr;
}
__RunModule = Module32Next(hSnapShot, &lpModuleEntry);
}
CloseHandle(hSnapShot);
return NULL;
}

DWORD CMemory::Module(char* szModuleName)
{
HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
MODULEENTRY32 mEntry;
mEntry.dwSize = sizeof(mEntry);
do
{
if (!strcmp(mEntry.szModule, szModuleName))
{
CloseHandle(hModule);
return (DWORD)mEntry.modBaseAddr;
}
} while (Module32Next(hModule, &mEntry));
return false;
}
DWORD CMemory::Module( char* szModuleName )
{
HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
MODULEENTRY32 mEntry;
mEntry.dwSize = sizeof( MODULEENTRY32 );
if ( Module32First( hModule, &mEntry ) )
{
bool bModuleFound = false;
do
{
if (!strcmp( mEntry.szModule, szModuleName ) && bModuleFound = true )
break;
} while ( Module32Next( hModule, &mEntry ) );
}
CloseHandle( hModule );
return bModuleFound ? reinterpret_cast< DWORD >( mEntry.modBaseAddr ) : 0;
}
if (!strcmp( mEntry.szModule, szModuleName ) )
{
bModuleFound = true;
break;
}
if (!WindowCSGO) { WindowCSGO = FindWindow(NULL, L"Counter-Strike: Global Offensive");}
if (!ProcessID) { GetWindowThreadProcessId(WindowCSGO, &ProcessID);}