5 #ifndef _UPDATE_GUESTS_H__ 6 #define _UPDATE_GUESTS_H__ 28 #define MAX_VERSION_STRING_SIZE 64 31 #define MAX_FUNCTION_NAME_SIZE 64 34 #define CAMI_MAGIC_WORD 'IMAC' 37 #define CAMI_MAX_ENTRY_COUNT 0x4000 62 #define UPDATE_CAMI_MIN_VER_MAJOR 1 63 #define UPDATE_CAMI_MIN_VER_MINOR 4 106 DWORD StructuresTable;
153 DWORD KmStructuresTable;
157 DWORD UmStructuresTable;
319 _In_ void *ProtectedProcess
322 #endif // !_UPDATE_GUESTS_H__ DWORD _Reserved2
Reserved for future use.
QWORD MaxIntroVersion
Maximum introcore version which supports this OS.
DWORD _Reserved2
Reserved for future use.
void IntCamiClearUpdateBuffer(void)
Uninitialize the update buffer and notify the integrator that we don't need it anymore.
DWORD CustomProtectionOffset
Protection flags for this OS. (pointer to a CAMI_CUSTOM_OS_PROTECTION struct)
DWORD SignatureId
The unique ID of the signature.
Describe the introcore protection options.
DWORD CoreOptionsOffset
Intro core options. File pointer to a CAMI_PROT_OPTIONS structure.
CAMI_STRING_ENCODING
Describes the encoding of a string received from the CAMI file.
DWORD _Reserved1
Reserved for future use.
DWORD BuildNumber
Build number for this Windows OS.
WORD PatternLength
The length of the pattern. (count of DWORDs)
QWORD _Reserved2
Reserved for future use.
struct _CAMI_VERSION CAMI_VERSION
Describe the CAMI version.
BYTE SkipOnBoot
TRUE if this function should not be hooked on boot.
DWORD Flags
Auxiliary data.
QWORD MinIntroVersion
Minimum introcore version which supports this OS.
struct _CAMI_PROC_PROT_OPTIONS CAMI_PROC_PROT_OPTIONS
Describe the introcore protection options for a process.
QWORD _Reserved2
Reserved for future use.
DWORD _Reserved3
Reserved for future use.
QWORD _Reserved2
Reserved for future use.
DWORD ProcOptionsCount
The number of entries in the ProcOptionsTable.
DWORD Minor
Minor version of this file.
WORD _Reserved1
Reserved for future use.
struct _CAMI_PATTERN_SIGNATURE * PCAMI_PATTERN_SIGNATURE
Describe a CAMI file windows descriptor. Load support for a windows guest.
struct _CAMI_VERSION * PCAMI_VERSION
Section will contain linux related information.
QWORD _Reserved3
Reserved for future use.
Describe the introcore protection options for a process.
int INTSTATUS
The status data type.
struct _CAMI_HEADER CAMI_HEADER
Describe the CAMI file header.
DWORD _Reserved3
Reserved for future use.
DWORD ArgumentsCount
Arguments count.
DWORD VersionStringOffset
VersionString pointer (pointer to a CAMI_WIN_VERSION_STRING struct)
Describe the CAMI version.
QWORD MinIntroVersion
Minimum introcore version which supports this OS.
INTSTATUS IntCamiGetVersion(DWORD *MajorVersion, DWORD *MinorVersion, DWORD *BuildNumber)
Get the version of the loaded CAMI support file.
struct _CAMI_LIX_HOOK CAMI_LIX_HOOK
Describe a function to be hooked by introcore.
struct _CAMI_CUSTOM_OS_PROTECTION CAMI_CUSTOM_OS_PROTECTION
Describe the introcore protection options for a guest.
Describe a pattern signature.
struct _CAMI_OPAQUE_STRUCTURE * PCAMI_OPAQUE_STRUCTURE
INTSTATUS IntCamiSetUpdateBuffer(const BYTE *UpdateBuffer, DWORD BufferLength)
Initialize the update buffer with the one from the integrator.
Describe a function to be hooked by introcore.
Section will contain information about a supported OS.
Describe the CAMI file header.
Describe a CAMI file Linux descriptor. Load support for a Linux guest.
DWORD OptionsOffset
File pointer to a CAMI_PROT_OPTIONS.
DWORD Offset
Offset inside the buffer.
Describe a function to be hooked by introcore.
DWORD EntryCount
How many entries of this type are in the DescriptorTable.
DWORD DescriptorTable
Pointer to a CAMI descriptor table.
DWORD _Reserved2
Reserved for future use.
Describe the arguments for a function.
DWORD PointerToSectionsHeaders
RVA of a CAMI_SECTION_HEADER table.
DWORD MembersCount
How many members are available for this structure.
QWORD ServerVersionStringSize
Size of the server version string, if exists.
DWORD _Reserved1
Reserved for future use.
Describe a CAMI file section header.
DWORD Extended
The file pointer of this structure's extension.
DWORD Members
A file pointer to members of this structure. (pointer to a DWORD array)
BOOLEAN Is64
If this OS is 64 bits.
INTSTATUS IntCamiUpdateProcessProtectionInfo(void *ProtectedProcess)
Update a process' protection flags using the ones from CAMI.
QWORD VersionStringSize
Size of the version string.
DWORD BuildNumber
Build number.
DWORD ShemuOptionsOffset
Shemu options. File pointer to a CAMI_PROT_OPTIONS structure.
DWORD ProcOptionsTable
Process protection options. Pointer to a CAMI_PROC_PROT_OPTIONS array.
DWORD FileSize
The size of the update file. Should be equal with the value of BufferSize.
BYTE HookHandler
The hook handler index from the API_HOOK_DESCRIPTOR.
#define MAX_VERSION_STRING_SIZE
Maximum size of a version string.
INTSTATUS IntCamiProtectedProcessFree(void)
Uninitialize the global holding custom process protection options.
DWORD _Reserved1
Reserved for future use.
Section will contain protection flags.
QWORD MaxIntroVersion
Maximum introcore version which supports this OS.
struct _CAMI_WIN_FUNCTION * PCAMI_WIN_FUNCTION
DWORD ArgumentsTable
Arguments file offset. (pointer to a DWORD array)
struct _CAMI_SECTION_HEADER CAMI_SECTION_HEADER
Describe a CAMI file section header.
QWORD _Reserved1
Reserved for future use.
struct _CAMI_WIN_DESCRIPTOR * PCAMI_WIN_DESCRIPTOR
DWORD NumberOfSections
Number of entries in the table bellow.
QWORD _Reserved1
Reserved for future use.
String will be encoded in utf-8.
QWORD ForceOn
Options which will be enabled by default.
QWORD ForceFeedback
Options feedback only.
struct _CAMI_PATTERN_SIGNATURE CAMI_PATTERN_SIGNATURE
Describe a pattern signature.
CAMI_VERSION Version
Version.
DWORD PatternOffset
Pattern file pointer. (pointer to a DWORD array)
struct _CAMI_WIN_VERSION_STRING * PCAMI_WIN_VERSION_STRING
Describe windows version strings.
DWORD HashLength
The length (count of DWORDs) of the pattern.
struct _CAMI_WIN_FUNCTION_PATTERN * PCAMI_WIN_FUNCTION_PATTERN
DWORD _Reserved2
Reserved for future use.
struct _CAMI_LIX_DESCRIPTOR * PCAMI_LIX_DESCRIPTOR
struct _CAMI_OPAQUE_STRUCTURE CAMI_OPAQUE_STRUCTURE
Describe the members of a guest opaque structure.
QWORD ForceOff
Options which will be disabled.
DWORD _Reserved3
Reserved for future use.
INTSTATUS IntCamiProtectedProcessAllocate(DWORD Items)
Initialize the global variable holding custom process protection options.
_CAMI_SECTION_HINTS
CAMI section hints that describe what is to be loaded.
Describe the members of a guest opaque structure.
QWORD _Reserved1
Reserved for future use.
DWORD Hint
Any combination of CAMI_SECTION_HINTS.
Describe a function pattern.
struct _CAMI_WIN_FUNCTION_PATTERN_EXTENSION * PCAMI_WIN_FUNCTION_PATTERN_EXTENSION
struct _CAMI_SECTION_HEADER * PCAMI_SECTION_HEADER
enum _CAMI_SECTION_HINTS CAMI_SECTION_HINTS
CAMI section hints that describe what is to be loaded.
Section will contain windows related information.
DWORD Magic
Magic value. Should be CAMI_MAGIC_WORD.
DWORD NameHash
Function name hash.
DWORD _Reserved3
Reserved for future use.
WORD _Reserved1
Alignment mostly, but may become useful.
DWORD HashOffset
Pattern file pointer. (pointer to a DWORD array)
BOOLEAN Kpti
If this OS has KPTI support.
struct _CAMI_WIN_VERSION_STRING CAMI_WIN_VERSION_STRING
Describe windows version strings.
DWORD Encoding
One of the CAMI_STRING_ENCODING.
DWORD _Reserved3
Reserved for future use.
struct _CAMI_PROT_OPTIONS CAMI_PROT_OPTIONS
Describe the introcore protection options.
struct _CAMI_WIN_FUNCTION_PATTERN_EXTENSION CAMI_WIN_FUNCTION_PATTERN_EXTENSION
Describe the arguments for a function.
DWORD _Reserved2
Reserved for future use.
DWORD ArgumentsCount
Arguments count.
Section will contain distribution signatures.
struct _CAMI_LIX_HOOK * PCAMI_LIX_HOOK
Describe the introcore protection options for a guest.
DWORD Major
Major version of this file.
DWORD _Reserved4
Reserved for future use.
String will be encoded in utf-16.
DWORD ArgumentsTable
Arguments file offset. (pointer to a DWORD array)
Section will contain syscall signatures.
struct _CAMI_WIN_DESCRIPTOR CAMI_WIN_DESCRIPTOR
Describe a CAMI file windows descriptor. Load support for a windows guest.
struct _CAMI_WIN_FUNCTION CAMI_WIN_FUNCTION
Describe a function to be hooked by introcore.
DWORD NameHash
Function name hash.
QWORD ForceBeta
Options beta only.
INTSTATUS IntCamiGetWinSupportedList(BOOLEAN KptiInstalled, BOOLEAN Guest64, DWORD *NtBuildNumberList, DWORD *Count)
Return a list of supported Windows NtBuildNumbers.
QWORD _Reserved4
Reserved for future use.
struct _CAMI_HEADER * PCAMI_HEADER
DWORD CustomProtectionOffset
Protection flags for this OS. (pointer to a CAMI_CUSTOM_OS_PROTECTION).
INTSTATUS IntCamiLoadSection(DWORD CamiSectionHint)
Load CAMI objects from section with given hint.
struct _CAMI_LIX_DESCRIPTOR CAMI_LIX_DESCRIPTOR
Describe a CAMI file Linux descriptor. Load support for a Linux guest.
struct _CAMI_WIN_FUNCTION_PATTERN CAMI_WIN_FUNCTION_PATTERN
Describe a function pattern.