CreateToolhelp32Snapshot - Access denied

0

Cześć, mam pytanie. Jeszcze tydzień temu wszystko smigało, a dziś ten sam skrypt nie ma dostępu do danych procesu.

	HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, pid);
	if (hSnapshot == INVALID_HANDLE_VALUE)
	{
		cout << GetLastError();
	}
	else
	{
		MODULEENTRY32 ModuleEntry32;

		ModuleEntry32.dwSize = sizeof(MODULEENTRY32);

		do
		{
			_tprintf(TEXT("\n\n     MODULE NAME:     %s"), ModuleEntry32.szModule);
			_tprintf(TEXT("\n     executable     = %s"), ModuleEntry32.szExePath);
			_tprintf(TEXT("\n     process ID     = 0x%08X"), ModuleEntry32.th32ProcessID);
			_tprintf(TEXT("\n     ref count (g)  =     0x%04X"), ModuleEntry32.GlblcntUsage);
			_tprintf(TEXT("\n     ref count (p)  =     0x%04X"), ModuleEntry32.ProccntUsage);
			_tprintf(TEXT("\n     base address   = 0x%08X"), (DWORD)ModuleEntry32.modBaseAddr);
			_tprintf(TEXT("\n     base size      = %d"), ModuleEntry32.modBaseSize);

		} while (Module32Next(hSnapshot, &ModuleEntry32));

		CloseHandle(hSnapshot);
	}

GetLastError zwraca 5 czyli:

ERROR_ACCESS_DENIED

5 (0x5)

Access is denied.

Skąd nagle ten brak dostępu i czy moge cos z tym zrobić?

1

Dwie możliwości:

  1. Brak uprawnień - uruchom jako administrator.
  2. Błędne ID procesu.
0

Ani jedno ani drugie :D
Uruchamiane jaki administrator daje taki sam rezultat, a pobrany pid zgadza się z id procesu z tasklist.

0

Próbowałeś dodać flagę TH32CS_SNAPNOHEAPS?

0

Tą flage przyjmuje funkcja dla (Windows CE 5.0) u mnie jest ona niezdefiniowana.

1

No w takim razie anti-cheat blokuje tworzenie uchwytów. Jak chcesz się bawić w celach edukacyjnych to dodaj -insecure do opcji uruchamiania na Steamie.
Albo napisz sterownik trybu jądra.

0

Ooo kurde anti-cheat xD Zapomniałem wyłączyć ac faceit

Dzięki, close :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1