Reflective Code Loading
Auf attack.mitre.org ansehen →16 Syscalls implementieren diese Technik
- NtAllocateVirtualMemory
Reserviert, committet oder beides eine virtuelle Speicherregion in einem Zielprozess.
- NtAllocateVirtualMemoryEx
Reserviert oder committet virtuellen Speicher mit erweiterten Parametern (bevorzugter NUMA-Knoten, CFG, Adressanforderungen).
- NtProtectVirtualMemory
Ändert den Schutz eines committeten virtuellen Speicherbereichs in einem Zielprozess.
- NtFlushInstructionCache
Invalidiert den Instruction-Cache für eine Region in einem Zielprozess, damit frisch geschriebener Code ausgeführt werden kann.
- NtCreateSection
Erzeugt ein Section-Objekt, gestützt durch eine Datei oder das System-Pagefile, für Shared-Memory-Mapping.
- NtCreateSectionEx
Erzeugt ein Section-Objekt mit erweiterten Parametern (NUMA-Knoten, Adress-Anforderungen, User-Physical-Pages).
- NtExtendSection
Vergrößert eine vorhandene, durch Pagefile oder Datei gestützte Section auf eine höhere Maximalgröße.
- NtMapViewOfSection
Bildet eine View eines Section-Objekts in den virtuellen Adressraum eines Zielprozesses ab.
- NtMapViewOfSectionEx
Erweiterter Section-Mapping-Syscall (ab Windows 10 1809), der MEM_EXTENDED_PARAMETER-Vorgaben akzeptiert.
- NtCreateThreadEx
Erzeugt einen neuen Thread in einem Zielprozess, optional suspendiert, mit Unterstützung von Attribute-Listen.
- NtContinue
Stellt einen CPU-CONTEXT im aktuellen Thread wieder her und setzt die Ausführung an CONTEXT.Rip fort.
- NtCreateEnclave
Allokiert eine neue Enklave (SGX oder VBS/VTL1) im Adressraum eines Zielprozesses.
- NtInitializeEnclave
Schließt eine Enklave nach Image-Load ab — prüft Signaturen und überführt sie in den ausführbaren Zustand.
- NtCallEnclave
Überführt die Ausführung vom VTL0-Host-Code in eine Routine innerhalb einer initialisierten Enklave.
- NtTerminateEnclave
Räumt eine Enklave ab, gibt deren VTL1-Speicher frei und signalisiert noch in der Enklave befindliche Threads.
- NtLoadEnclaveData
Kopiert einen seitenaligned Puffer (Code oder Daten) vom VTL0-Host in den VTL1-Bereich einer Enklave vor der Initialisierung.