mimikatz/modules/rpc/kull_m_rpc_dpapi-entries.h
Benjamin DELPY abaa6ca9b1 [new] dpapi::cache can now be saved/loaded/flushed
[new] net::group & net::alias
2016-08-02 01:02:57 +02:00

45 lines
2.1 KiB
C

#pragma once
#include "kull_m_rpc.h"
#include "../kull_m_crypto.h"
typedef struct _KUHL_M_DPAPI_MASTERKEY_ENTRY {
GUID guid;
BYTE keyHash[ SHA_DIGEST_LENGTH ];
} KUHL_M_DPAPI_MASTERKEY_ENTRY, *PKUHL_M_DPAPI_MASTERKEY_ENTRY;
typedef struct _KUHL_M_DPAPI_CREDENTIAL_ENTRY {
DWORD flags;
GUID guid;
WCHAR *sid;
BYTE md4hash[ LM_NTLM_HASH_LENGTH ];
BYTE md4hashDerived[ SHA_DIGEST_LENGTH ];
BYTE sha1hash[ SHA_DIGEST_LENGTH ];
BYTE sha1hashDerived[ SHA_DIGEST_LENGTH ];
BYTE md4protectedhash[ LM_NTLM_HASH_LENGTH ];
BYTE md4protectedhashDerived[ SHA_DIGEST_LENGTH ];
} KUHL_M_DPAPI_CREDENTIAL_ENTRY, *PKUHL_M_DPAPI_CREDENTIAL_ENTRY;
typedef struct _KUHL_M_DPAPI_DOMAINKEY_ENTRY {
GUID guid;
BOOL isNewKey;
DWORD keyLen;
BYTE *key;
} KUHL_M_DPAPI_DOMAINKEY_ENTRY, *PKUHL_M_DPAPI_DOMAINKEY_ENTRY;
typedef /* [decode][encode] */ struct _KUHL_M_DPAPI_ENTRIES {
DWORD MasterKeyCount;
PKUHL_M_DPAPI_MASTERKEY_ENTRY *MasterKeys;
DWORD CredentialCount;
PKUHL_M_DPAPI_CREDENTIAL_ENTRY *Credentials;
DWORD DomainKeyCount;
PKUHL_M_DPAPI_DOMAINKEY_ENTRY *DomainKeys;
} KUHL_M_DPAPI_ENTRIES, *PKUHL_M_DPAPI_ENTRIES;
size_t KUHL_M_DPAPI_ENTRIES_AlignSize(handle_t _MidlEsHandle, KUHL_M_DPAPI_ENTRIES * _pType);
void KUHL_M_DPAPI_ENTRIES_Encode(handle_t _MidlEsHandle, KUHL_M_DPAPI_ENTRIES * _pType);
void KUHL_M_DPAPI_ENTRIES_Decode(handle_t _MidlEsHandle, KUHL_M_DPAPI_ENTRIES * _pType);
void KUHL_M_DPAPI_ENTRIES_Free(handle_t _MidlEsHandle, KUHL_M_DPAPI_ENTRIES * _pType);
#define kull_m_dpapi_oe_DecodeDpapiEntries(/*PVOID */data, /*DWORD */size, /*KUHL_M_DPAPI_ENTRIES **/pObject) kull_m_rpc_Generic_Decode(data, size, pObject, (PGENERIC_RPC_DECODE) KUHL_M_DPAPI_ENTRIES_Decode)
#define kull_m_dpapi_oe_FreeDpapiEntries(/*KUHL_M_DPAPI_ENTRIES **/pObject) kull_m_rpc_Generic_Free(pObject, (PGENERIC_RPC_FREE) KUHL_M_DPAPI_ENTRIES_Free)
#define kull_m_dpapi_oe_EncodeDpapiEntries(/*KUHL_M_DPAPI_ENTRIES **/pObject, /*PVOID **/data, /*DWORD **/size) kull_m_rpc_Generic_Encode(pObject, data, size, (PGENERIC_RPC_ENCODE) KUHL_M_DPAPI_ENTRIES_Encode, (PGENERIC_RPC_ALIGNSIZE) KUHL_M_DPAPI_ENTRIES_AlignSize)