aboutsummaryrefslogtreecommitdiff
path: root/Exfiltration/mimikatz-1.0/modules/mod_windows.cpp
blob: a54c5b7ee1541dcc349a261f1df526ae71e99a52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*	Benjamin DELPY `gentilkiwi`
	http://blog.gentilkiwi.com
	benjamin@gentilkiwi.com
	Licence : http://creativecommons.org/licenses/by/3.0/fr/
*/
#include "mod_windows.h"

BOOL WINAPI mod_windows::enumHWNDCallback(HWND hwnd,  pair<DWORD, vector<mod_windows::KIWI_HWND_ENTRY> *>  * mesHWNDS)
{
	DWORD processId = 0;
	if(DWORD threadId = GetWindowThreadProcessId(hwnd, &processId))
	{
		if((mesHWNDS->first == 0) || (processId == mesHWNDS->first))
		{
			KIWI_HWND_ENTRY monEntree = {hwnd, processId, threadId};
			mesHWNDS->second->push_back(monEntree);
		}
	}
	return TRUE;
}


bool mod_windows::getHWNDsFromProcessId(vector<mod_windows::KIWI_HWND_ENTRY> * mesHWNDS, DWORD processId)
{
	return (EnumWindows(reinterpret_cast<WNDENUMPROC>(enumHWNDCallback), reinterpret_cast<LPARAM>(&make_pair<DWORD, vector<mod_windows::KIWI_HWND_ENTRY> *>(processId, mesHWNDS))) != FALSE);
}