/* Benjamin DELPY `gentilkiwi` http://blog.gentilkiwi.com benjamin@gentilkiwi.com Licence : https://creativecommons.org/licenses/by/4.0/ */ #pragma once #include #define WIN32_NO_STATUS #define SECURITY_WIN32 #include #include #include #include #include #include #include #include #ifdef _M_X64 #define MIMIKATZ_ARCH_A "x64" #else ifdef _M_IX86 #define MIMIKATZ_ARCH_A "x86" #endif #define MIMIKATZ_A "mimikatz" #define MIMIKATZ_VERSION_A "2.1 alpha" #define MIMIKATZ_CODENAME_A "A La Vie, A L\'Amour" #define MIMIKATZ_FULL_A MIMIKATZ_A " " MIMIKATZ_VERSION_A " (" MIMIKATZ_ARCH_A ") built on " __DATE__ " " __TIME__ #define MIMIKATZ_SECOND_A "\"" MIMIKATZ_CODENAME_A "\"" #ifndef NT_SUCCESS #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0) #endif #define LM_NTLM_HASH_LENGTH 16 void klog(FILE * logfile, PCWCHAR format, ...); void klog_password(FILE * logfile, PUNICODE_STRING pPassword); void klog_sid(FILE * logfile, PSID pSid); typedef struct _REMOTE_LIB_FUNC { DWORD outputSize; PVOID outputData; DWORD inputSize; BYTE inputData[ANYSIZE_ARRAY]; } REMOTE_LIB_FUNC, *PREMOTE_LIB_FUNC;