aboutsummaryrefslogtreecommitdiff
path: root/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.h
blob: 3870228032d0d93bb74623c81323653d7fd89f08 (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*	Benjamin DELPY `gentilkiwi`
	http://blog.gentilkiwi.com
	benjamin@gentilkiwi.com
	Licence : http://creativecommons.org/licenses/by/3.0/fr/
*/
#pragma once
#include "globdefs.h"
#include "mod_process.h"
#include "mod_memory.h"
#include "mod_windows.h"
#include <iostream>

class mod_mimikatz_winmine
{
private:
	typedef struct structMonDemineur{
		DWORD32 nbMines;
		DWORD32 longueur;
		DWORD32 hauteur;
		DWORD32 alignOffset;
		BYTE tabMines[26][32];
	} structMonDemineur;
	
	typedef struct structHandleAndAddr{
		HANDLE hWinmine;
		DWORD pidWinmine;
		structMonDemineur * addrMonDemineur;
		PTHREAD_START_ROUTINE addrPause;
		PTHREAD_START_ROUTINE addrResume;
		PTHREAD_START_ROUTINE addrStart;
	} structHandleAndAddr;

	static bool giveHandleAndAddr(structHandleAndAddr * monHandleAndAddr);
	static bool startThreadAt(unsigned long structOffset);
	static bool infosOrCheat(vector<wstring> * arguments, bool cheat = false);

public:
	static vector<KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND> getMimiKatzCommands();

	static bool infos(vector<wstring> * arguments);
	static bool start(vector<wstring> * arguments);
	static bool pause(vector<wstring> * arguments);
	static bool reprise(vector<wstring> * arguments);
	static bool cheat(vector<wstring> * arguments);
};