Native API
Auf attack.mitre.org ansehen →224 Syscalls implementieren diese Technik
- NtAllocateVirtualMemoryEx
Reserviert oder committet virtuellen Speicher mit erweiterten Parametern (bevorzugter NUMA-Knoten, CFG, Adressanforderungen).
- NtWriteVirtualMemory
Schreibt einen Puffer des Aufrufers in den virtuellen Adressraum eines Zielprozesses.
- NtReadVirtualMemory
Liest Bytes aus dem virtuellen Adressraum eines Zielprozesses in einen vom Aufrufer bereitgestellten Puffer.
- NtFreeVirtualMemory
Decommitet oder gibt eine virtuelle Speicherregion in einem Zielprozess frei.
- NtQueryVirtualMemory
Liefert Informationen über Seiten im virtuellen Adressraum eines Zielprozesses.
- NtFlushVirtualMemory
Schreibt veränderte Seiten einer dateigestützten View auf die Platte zurück, analog zu FlushViewOfFile.
- NtLockVirtualMemory
Verankert eine virtuelle Speicherregion im Working Set des Prozesses, sodass deren Seiten nicht ausgelagert werden.
- NtUnlockVirtualMemory
Hebt eine zuvor von NtLockVirtualMemory gesetzte Working-Set-Sperre auf.
- NtSetInformationVirtualMemory
Wendet eine Informationsklasse auf eine Liste virtueller Speicherbereiche an: Prefetch, Seitenpriorität oder CFG-Opt-in.
- NtAllocateUserPhysicalPages
Allokiert physische Speicherseiten für Address Windowing Extensions (AWE).
- NtMapUserPhysicalPages
Mappt AWE-allokierte physische Seiten in ein zuvor reserviertes virtuelles Adressfenster.
- NtFreeUserPhysicalPages
Gibt zuvor über NtAllocateUserPhysicalPages allokierte physische Seiten frei und führt sie an den Systemseiten-Pool zurück.
- NtFlushInstructionCache
Invalidiert den Instruction-Cache für eine Region in einem Zielprozess, damit frisch geschriebener Code ausgeführt werden kann.
- NtFlushProcessWriteBuffers
Setzt eine systemweite Speicherbarriere auf jeder CPU mit Threads des aktuellen Prozesses.
- NtCreateSectionEx
Erzeugt ein Section-Objekt mit erweiterten Parametern (NUMA-Knoten, Adress-Anforderungen, User-Physical-Pages).
- NtOpenSection
Öffnet ein Handle auf ein vorhandenes, benanntes Section-Objekt (Shared Memory oder Image-Mapping).
- NtExtendSection
Vergrößert eine vorhandene, durch Pagefile oder Datei gestützte Section auf eine höhere Maximalgröße.
- NtQuerySection
Liefert Basis- oder Image-spezifische Metadaten eines Section-Objekts.
- NtMapViewOfSectionEx
Erweiterter Section-Mapping-Syscall (ab Windows 10 1809), der MEM_EXTENDED_PARAMETER-Vorgaben akzeptiert.
- NtUnmapViewOfSection
Hebt das Mapping einer zuvor gemappten Section-View aus dem Adressraum eines Prozesses auf.
- NtAreMappedFilesTheSame
Prüft, ob zwei gemappte Views durch dieselbe Datei gestützt werden (Identitätstest des File-Objekts).
- NtGetWriteWatch
Liefert die seit dem letzten Reset beschriebenen Seiten einer MEM_WRITE_WATCH-Region.
- NtResetWriteWatch
Setzt den Schreibverfolgungszustand einer MEM_WRITE_WATCH-Region zurück, ohne Dirty Pages abzurufen.
- NtCreatePartition
Erzeugt ein Memory-Partition-Objekt, das den physischen Working-Set einer Prozessgruppe isoliert.
- NtOpenPartition
Öffnet ein bestehendes Memory-Partition-Objekt anhand des Namens und liefert ein Handle für Verwaltung oder Prozess-Anbindung.
- NtManagePartition
Fragt eine bestehende Memory-Partition ab oder verändert sie — Speicher hinzufügen, Seiten verschieben, Memory-List-Konfiguration setzen.
- NtCreateThread
Legacy-Syscall zur Thread-Erzeugung mit manuell aufgebauter INITIAL_TEB; abgelöst durch NtCreateThreadEx.
- NtQueueApcThread
Reiht einen Usermode-APC (Asynchronous Procedure Call) in die Queue eines Zielthreads ein.
- NtQueueApcThreadEx
Reiht einen User-APC für einen Thread mit optionalem Reserve-Objekt oder Special-User-APC-Flag zur erzwungenen Zustellung ein.
- NtTestAlert
Prüft, ob der aufrufende Thread einen anstehenden Alert hat, und stellt ggf. eingereihte User-Mode-APCs zu.
- NtContinue
Stellt einen CPU-CONTEXT im aktuellen Thread wieder her und setzt die Ausführung an CONTEXT.Rip fort.
- NtAlertThreadByThreadId
Weckt einen einzelnen Thread (per TID identifiziert), der in NtWaitForAlertByThreadId parkt — die Kernel-Seite von WakeByAddressSingle.
- NtWaitForAlertByThreadId
Parkt den aufrufenden Thread, bis NtAlertThreadByThreadId ihn weckt — die Kernel-Seite von WaitOnAddress.
- NtAllocateReserveObject
Reserviert vorab ein Kernel-Reserve-Object (APC oder Completion), damit künftige Operationen unter Speichermangel nicht fehlschlagen.
- NtCreateProcess
Legacy-NT-Prozesserzeugung aus einem vorab gebauten Section-Objekt — Vorgänger von NtCreateProcessEx und NtCreateUserProcess.
- NtCreateUserProcess
Erzeugt einen neuen User-Mode-Prozess und dessen initialen Thread aus einem Executable-Image.
- NtCreateProcessEx
Erzeugt einen neuen Prozess aus einem Section-Handle ohne ntdll-Prozessinitialisierung — Baustein des Process Hollowing.
- NtTerminateProcess
Beendet einen Zielprozess samt aller Threads mit einem angegebenen Exit-Status.
- NtSuspendProcess
Suspendiert alle Threads eines Zielprozesses, indem der Suspend-Zähler jedes Threads erhöht wird.
- NtResumeProcess
Verringert den Suspend-Zähler jedes Threads in einem Zielprozess und setzt diejenigen fort, die null erreichen.
- NtGetNextProcess
Durchläuft die Prozessliste des Kernels und liefert ein Handle auf den nächsten Prozess.
- NtIsProcessInJob
Prüft, ob ein Prozess innerhalb eines bestimmten (oder irgendeines) Job-Objekts läuft.
- NtOpenThread
Öffnet ein Handle auf einen vorhandenen Thread, identifiziert per CLIENT_ID, mit den gewünschten Zugriffsrechten.
- NtSuspendThread
Erhöht den Suspend-Zähler eines Ziel-Threads und hält dessen Ausführung an.
- NtResumeThread
Verringert den Suspend-Count eines Threads; bei Wert null wird die Ausführung fortgesetzt.
- NtAlertResumeThread
Setzt einen suspendierten Thread fort und alarmiert ihn gleichzeitig, sodass anstehende APCs zugestellt werden.
- NtTerminateThread
Beendet den angegebenen Thread mit dem übergebenen Exit-Status. NULL-Handle beendet den aktuellen Thread.
- NtGetContextThread
Liest den CPU-Registerkontext (CONTEXT-Struktur) eines suspendierten Threads aus.
- NtSetContextThread
Setzt den CPU-Registerkontext eines Threads — die Kernel-Primitive hinter Thread-Hijacking und Shellcode-Umleitung.
- NtGetNextThread
Liefert ein Handle auf den nächsten Thread eines Zielprozesses durch Durchlaufen der Kernel-Thread-Liste.
- NtOpenProcessToken
Öffnet das einem Prozess zugeordnete Zugriffstoken und gibt ein Handle darauf zurück.
- NtAdjustPrivilegesToken
Aktiviert oder deaktiviert Privilegien in einem angegebenen Zugriffstoken.
- NtQueryInformationToken
Ruft eine angegebene Informationsklasse zu einem Zugriffstoken ab.
- NtSetInformationToken
Schreibt eine Token-Eigenschaft — Integritätslevel, Session-ID, Owner, Standard-DACL, Audit-Policy, Linked-Token.
- NtFilterToken
Erzeugt eine eingeschränkte (gefilterte) Kopie eines bestehenden Access-Tokens durch Deaktivieren von SIDs, Entfernen von Privilegien oder Hinzufügen restricted SIDs.
- NtImpersonateAnonymousToken
Weist dem angegebenen Thread das bekannte ANONYMOUS-LOGON-Token zu.
- NtImpersonateThread
Lässt den Server-Thread den Sicherheitskontext des Client-Threads impersonieren.
- NtCompareTokens
Entscheidet, ob zwei Tokens denselben Zugriff gewähren — gleicher Benutzer, gleiche Gruppen, gleiche Restricted-SIDs, gleiche Privilegien.
- NtCreateToken
Erzeugt ein Access-Token von Grund auf mit frei wählbarem Benutzer, Gruppen, Privilegien, Owner, Standard-DACL und Quelle — durch SeCreateTokenPrivilege geschützt.
- NtCreateLowBoxToken
Leitet ein LowBox- (AppContainer-)Token aus einem bestehenden Token ab — setzt die Package-SID und Capability-Liste, die den Broker-IPC-Zugriff steuern.
- NtAccessCheck
Führt eine Access Check gegen einen Security Descriptor mit einem Impersonation-Token durch und liefert die gewährte Zugriffsmaske zurück.
- NtAccessCheckByType
Führt eine Sicherheitszugriffsprüfung gegen einen Security Descriptor durch und respektiert eine typisierte Objekt-Hierarchie (OBJECT_TYPE_LIST).
- NtAccessCheckByTypeResultList
Führt eine typisierte Zugriffsprüfung mit einer Ergebnisliste pro Objekttyp aus, ohne Audit-Events zu schreiben.
- NtPrivilegeCheck
Prüft, ob die in einem PRIVILEGE_SET genannten Privilegien in einem Impersonation-Token aktiviert sind.
- NtGetCachedSigningLevel
Liest das von Code Integrity gecachete Signaturlevel-Ergebnis, das als NTFS-Extended-Attribute auf einer Datei abgelegt ist.
- NtCompareSigningLevels
Vergleicht zwei SE_SIGNING_LEVEL-Werte gemäß der Code-Integrity-Policy-Ordnung und liefert, ob der erste den zweiten dominiert.
- NtAccessCheckAndAuditAlarm
Führt eine Standard-Zugriffsprüfung aus und schreibt einen Audit-Alarm-Eintrag ins Security-Eventlog.
- NtAccessCheckByTypeAndAuditAlarm
Führt eine typisierte Zugriffsprüfung aus und schreibt einen Audit-Alarm-Eintrag ins Security-Eventlog.
- NtAccessCheckByTypeResultListAndAuditAlarm
Typisierte Zugriffsprüfung mit Ergebnisliste pro Typ, die zugleich Audit-Alarm-Einträge ins Security-Eventlog schreibt.
- NtCloseObjectAuditAlarm
Emittiert den Security-Eventlog-Eintrag, der zu einem früheren Audit-Alarm-Open passt und das Schließen des Handles markiert.
- NtQueryInformationProcess
Liest eine Informationsklasse über einen Prozess aus — universelles Back-End von GetProcessInformation und Arbeitspferd vieler Anti-Debug-Checks.
- NtSetInformationProcess
Verändert eine Klasse von Prozesszustand — Anti-Debug-Selbstbereinigung, CET-Range-Registrierung, ACG/CIG-Policy-Installation, Instrumentation-Callbacks.
- NtQueryInformationThread
Liest eine Thread-Eigenschaft über die THREADINFOCLASS-Enumeration — TEB-Pointer, Hide-from-Debugger-Flag, Zeiten, Exit-Status.
- NtSetInformationThread
Setzt eine Thread-Eigenschaft über die THREADINFOCLASS-Enumeration — bekannt durch ThreadHideFromDebugger.
- NtQuerySystemInformation
Liest eine systemweite Informationsklasse aus — Prozessliste, Kernel-Handle-Tabelle, geladene Treiberliste, Code-Integritäts-Status und mehr.
- NtSetSystemInformation
Generischer Kernel-Setter, ausgewählt über SYSTEM_INFORMATION_CLASS — Zugang zu SystemDebugControl, GDI-Treiberladen und mehr.
- NtRaiseHardError
Löst einen „Hard Error“ aus, den der Kernel an CSRSS zur UI-Anzeige weiterreicht — oder mit SeShutdownPrivilege und FATAL-Severity einen sofortigen Bugcheck (BSOD) auslöst.
- NtQueryInformationByName
Fragt Dateiinformationen per Pfad ohne offenes Handle ab, eingeführt in Windows 10 RS5.
- NtCreateProfile
Erzeugt ein Kernel-Mode-Sampling-Profiler-Objekt, das den Program Counter in ein Histogramm einsortiert.
- NtQueryPerformanceCounter
Liefert den aktuellen Wert des hochauflösenden Performance-Counters und optional dessen Frequenz.
- NtGetCurrentProcessorNumber
Liefert den nullbasierten Index des logischen Prozessors, auf dem der aufrufende Thread gerade läuft.
- NtTraceEvent
Schreibt ein User-Mode-Event über ein registriertes Trace-Handle in eine ETW-Sitzung.
- NtTraceControl
Gemultiplextes Kontroll-IOCTL für das ETW-Subsystem — Sitzungen starten, stoppen, abfragen, flushen und Provider aktivieren/deaktivieren.
- NtCreateDebugObject
Erzeugt ein Kernel-DebugObject — den Debugger-spezifischen Port für Debug-Events der angehängten Prozesse.
- NtDebugActiveProcess
Hängt ein vorhandenes DebugObject an einen laufenden Prozess an — die Kernel-Seite von DebugActiveProcess.
- NtRemoveProcessDebug
Löst ein DebugObject von einem Prozess — die Kernel-Seite von DebugActiveProcessStop.
- NtWaitForDebugEvent
Wartet auf das nächste Debug-Event eines Debug-Objects und liefert einen DBGUI_WAIT_STATE_CHANGE zurück.
- NtDebugContinue
Setzt einen Debuggee-Thread nach einem Debug-Event mit gegebenem NTSTATUS-Continue-Code fort.
- NtCreateEvent
Erzeugt ein benanntes oder unbenanntes Event-Synchronisationsobjekt und liefert ein Handle.
- NtOpenEvent
Öffnet ein Handle auf ein bestehendes benanntes Event-Objekt.
- NtSetEvent
Setzt ein Event-Objekt in den signalisierten Zustand und gibt wartende Threads frei.
- NtResetEvent
Setzt ein Event-Objekt auf nicht-signalisiert zurück und liefert den vorherigen Signalzustand.
- NtPulseEvent
Signalisiert ein Event, gibt wartende Threads frei und setzt es sofort wieder auf nicht-signalisiert.
- NtClearEvent
Setzt ein Event-Objekt auf nicht-signalisiert, ohne den vorherigen Zustand zurückzugeben.
- NtWaitForSingleObject
Wartet, bis ein Dispatcher-Objekt signalisiert wird oder das optionale Timeout abläuft.
- NtWaitForMultipleObjects
Wartet auf bis zu MAXIMUM_WAIT_OBJECTS Dispatcher-Objekte mit WaitAny- oder WaitAll-Semantik.
- NtSignalAndWaitForSingleObject
Signalisiert atomar ein Dispatcher-Objekt und wartet auf ein anderes in einem einzigen, race-freien Übergang.
- NtCreateKeyedEvent
Erzeugt ein Keyed-Event-Objekt — leichtgewichtige Kernel-Sync-Primitive, die Waits und Wakes per Virtual-Address-Key paart.
- NtWaitForKeyedEvent
Blockiert den aufrufenden Thread auf einem Keyed Event, bis ein anderer Thread dasselbe (Event, Key)-Paar freigibt.
- NtReleaseKeyedEvent
Weckt genau einen auf dasselbe (Keyed-Event, Key)-Paar wartenden Thread; blockiert, falls noch kein Waiter vorhanden ist.
- NtCreateMutant
Erzeugt oder öffnet ein benanntes oder unbenanntes Mutant-(Mutex-)Objekt und übernimmt optional die initiale Eigentümerschaft.
- NtCreateTimer
Erzeugt ein Kernel-Timer-Objekt, das später mit NtSetTimer scharfgeschaltet werden kann.
- NtCancelTimer
Bricht eine ausstehende NtSetTimer-Bewaffnung ab und meldet, ob der Timer zum Abbruchzeitpunkt noch aktiv war.
- NtCreateTimer2
Erzeugt ein modernes Hochauflösungs-Timer-Objekt mit Unterstützung für Manual-Reset und No-Wake in einem Aufruf.
- NtSetTimer2
Bewaffnet ein Timer2-Objekt mit Fälligkeitszeit, optionaler Periode und einem T2_SET_PARAMETERS-Block mit Callback und Flags.
- NtCancelTimer2
Bricht ein zuvor bewaffnetes Timer2-Objekt ab und meldet, ob es noch ausstand.
- NtDelayExecution
Suspendiert den aufrufenden Thread für ein angegebenes Intervall, optional im Alertable-Zustand.
- NtQuerySystemTime
Liefert die aktuelle Systemzeit als 64-Bit-Zähler in 100-ns-Intervallen seit 1601-01-01 UTC.
- NtCreateNamedPipeFile
Erzeugt das Server-Ende einer Named-Pipe im Geräte-Namespace \Device\NamedPipe.
- NtCreateMailslotFile
Erstellt die Server-Seite eines Mailslots — einer altertümlichen, einseitigen, datagramm-artigen IPC-Primitive, erreichbar über \Device\Mailslot.
- NtAlpcCreatePort
Erzeugt einen serverseitigen ALPC-Connection-Port, den Clients per NtAlpcConnectPort erreichen können.
- NtAlpcConnectPort
Stellt eine Client-ALPC-Verbindung zu einem benannten Server-Port her und tauscht eine initiale Nachricht aus.
- NtAlpcAcceptConnectPort
Server-seitige ALPC-Accept-Routine — schließt eine ausstehende Client-Verbindung ab und liefert einen Per-Client-Kommunikationsport.
- NtAlpcSendWaitReceivePort
Sendet eine ALPC-Nachricht auf einem Port und wartet optional auf eine Antwort oder die nächste eingehende Nachricht.
- NtAlpcQueryInformation
Fragt Metadaten eines ALPC-Ports ab — Besitzer-Prozess, Message-Statistiken, Server-SID, Port-Attribute.
- NtAlpcImpersonateClientOfPort
Primäre Impersonation-Primitive eines ALPC-Servers — übernimmt den Sicherheitskontext des Clients, der eine Nachricht gesendet hat.
- NtAlpcOpenSenderProcess
Server-seitiger Helper, der ein HANDLE auf den Prozess öffnet, der eine bestimmte ALPC-Nachricht gesendet hat.
- NtAlpcOpenSenderThread
Server-seitiger Helper, der ein HANDLE auf den Thread öffnet, der eine bestimmte ALPC-Nachricht gesendet hat.
- NtAlpcDisconnectPort
Schließt die Client-Seite einer ALPC-Verbindung sauber und signalisiert den Server, bevor das Handle freigegeben wird.
- NtAlpcDeleteSecurityContext
Gibt einen ALPC-SECURITY_QOS-Kontext frei, der zuvor mit NtAlpcCreateSecurityContext erzeugt wurde.
- NtAlpcRevokeSecurityContext
Invalidiert einen gecachten ALPC-SECURITY_QOS-Kontext, ohne dessen Handle-Slot freizugeben.
- NtCreatePort
Erzeugt ein benanntes Server-LPC-Port-Objekt — die Legacy-IPC-Listener-Primitive vor ALPC.
- NtConnectPort
Client-seitige Verbindung zu einem Legacy-LPC-Server-Port, das Pre-ALPC-Pendant zu NtAlpcConnectPort.
- NtAcceptConnectPort
Server-seitige Annahme einer Legacy-LPC-Verbindungsanfrage mit optionalem Shared-View-Mapping.
- NtRequestPort
Sendet eine Fire-and-Forget-LPC-Message auf einem verbundenen Port — ohne Antwort zu erwarten.
- NtRequestWaitReplyPort
Sendet eine synchrone LPC-Anfrage und blockiert bis zur Server-Antwort — die Legacy-RPC-Primitive.
- NtReplyPort
Sendet eine Antwort auf einen Server-LPC-Port zu einer empfangenen Anfrage, ohne zu warten.
- NtReplyWaitReceivePort
Server-LPC-Primitive: beantwortet atomar die vorherige Anfrage und blockiert auf die nächste.
- NtCreateJobObject
Erzeugt ein Job Object — den Kernel-Container für Limits, Accounting und Beendigungs-Policy einer Menge von Prozessen.
- NtAssignProcessToJobObject
Hängt einen Prozess an ein Job Object, sodass dessen Limits, Accounting und Beendigungs-Policy für ihn gelten.
- NtSetInformationJobObject
Setzt eine Policy oder ein Limit auf einem Job Object über eine der JOBOBJECTINFOCLASS-Informationsklassen.
- NtQueryInformationJobObject
Liefert Accounting-, Limit- oder UI-Restriktions-Informationen eines Job-Objekts.
- NtTerminateJobObject
Beendet atomar jeden Prozess, der einem Job-Objekt aktuell zugewiesen ist.
- NtCreateIoCompletion
Erzeugt einen I/O-Completion-Port — die Kernel-Queue, die Threadpool-Arbeitsauslieferung, asynchrone I/O-Benachrichtigung und (bei PoolParty) injizierte Work-Items trägt.
- NtSetIoCompletion
Sendet ein Completion-Paket an einen I/O-Completion-Port — die Kernel-Seite von PostQueuedCompletionStatus und der Lieferpfad für PoolPartys gefälschte Work-Items.
- NtRemoveIoCompletion
Dequeue't ein einzelnes Completion-Paket aus einem I/O-Completion-Port und blockiert, bis eines verfügbar ist oder das Timeout abläuft.
- NtRemoveIoCompletionEx
Holt in einem einzigen Syscall bis zu einer vom Aufrufer angegebenen Anzahl von Completion-Paketen aus einem I/O-Completion-Port.
- NtCancelIoFile
Bricht jede ausstehende I/O-Anforderung ab, die der aufrufende Thread auf einem Datei-Handle gestellt hat.
- NtCancelIoFileEx
Bricht eine bestimmte ausstehende I/O-Anforderung an einer Datei ab, unabhängig vom ausstellenden Thread.
- NtCancelSynchronousIoFile
Bricht einen synchronen I/O-Aufruf ab, der gerade einen anderen Thread blockiert.
- NtCancelWaitCompletionPacket
Bricht ein zuvor zugeordnetes Wait-Completion-Packet ab und löst die Dispatcher-Object-Bindung.
- NtAssociateWaitCompletionPacket
Bindet ein Wait-Completion-Packet an ein Dispatcher-Object, sodass dessen Signal einen Eintrag in einen IOCP postet.
- NtCreateWorkerFactory
Erzeugt ein Kernel-Worker-Factory-Objekt — die Threadpool-Primitive, die PoolParty-Injection missbraucht, um Shellcode ohne NtCreateThreadEx auszuführen.
- NtShutdownWorkerFactory
Weist eine Worker Factory an, keine neuen Threads mehr zu erzeugen, und meldet, wie viele Worker noch ausstehen.
- NtSetInformationWorkerFactory
Setzt eine Konfigurationsklasse einer Worker Factory — darunter, in einigen PoolParty-Varianten, die StartRoutine, die Worker-Threads ausführen.
- NtQueryInformationWorkerFactory
Fragt Konfiguration und Laufzeitzustand einer Worker Factory ab, einschließlich aktueller StartRoutine und Worker-Zahlen.
- NtWorkerFactoryWorkerReady
Signalisiert dem Kernel, dass ein Threadpool-Worker arbeitsbereit ist — Teil des internen ntdll!TppWorkerThread-Handshakes.
- NtReleaseWorkerFactoryWorker
Fordert den Kernel auf, mindestens einen Worker in der Factory verfügbar zu machen — vom User-Mode-Threadpool benutzt, um den Pool beim Einreichen von Arbeit zu wecken.
- NtWaitForWorkViaWorkerFactory
Blockiert einen Threadpool-Worker, bis ein Work-Item in der Completion-Queue der Factory bereit ist — die Hot-Loop, die PoolParty hijackt.
- NtCreateTransaction
Erzeugt ein neues KTM-Transaktionsobjekt (Kernel Transaction Manager), das NTFS-Operationen atomar zusammenfasst.
- NtOpenTransaction
Öffnet ein vorhandenes KTM-Transaktionsobjekt anhand des Namens oder der Unit-of-Work-GUID.
- NtCommitTransaction
Committet eine KTM-Transaktion und schreibt sämtliche darin vorgenommenen Änderungen atomar auf die Platte.
- NtRollbackTransaction
Rollt eine KTM-Transaktion zurück und verwirft sämtliche darin vorgenommenen Änderungen.
- 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.
- NtOpenKey
Öffnet einen bestehenden Registrierungsschlüssel — Kernel-Einstieg hinter RegOpenKeyEx, genutzt für SAM-, SECURITY- und Persistenz-Hives.
- NtDeleteKey
Löscht einen Registrierungsschlüssel beim Schließen des Handles — wird verwendet, um Persistenz und Audit-Key-Artefakte nach Ausführung zu beseitigen.
- NtQueryValueKey
Liest einen Wert aus einem Registrierungsschlüssel — die zielgerichtete Credential- und Config-Sammel-Primitive.
- NtQueryMultipleValueKey
Liest atomar mehrere Registry-Werte eines Schlüssels in einem einzigen Syscall.
- NtRenameKey
Benennt einen bestehenden Registry-Schlüssel an Ort und Stelle um — kein Win32-Wrapper, nur über die NT-API erreichbar.
- NtLoadKey
Mountet eine Registry-Hive-Datei unter einem Zielschlüssel — der Syscall hinter dem Offline-Laden von SAM/SYSTEM.
- NtLoadKey2
Lädt einen Registry-Hive in den Konfigurationsbaum über einen 2-Flag-Wrapper um NtLoadKey.
- NtLoadKeyEx
Moderner Hive-Load-Syscall — Basis für RegLoadKeyW, RegLoadAppKeyW und die AppContainer-Registry-Virtualisierung.
- NtRestoreKey
Überschreibt den Inhalt eines Registry-Schlüssels aus einer Hive-Datei — ersetzt Teilbäume en bloc.
- NtSaveKey
Schreibt einen lebenden Registry-Schlüssel (mitsamt Teilbaum) in eine Hive-Datei — die Kernel-Seite des SAM/SECURITY-Diebstahls.
- NtFlushKey
Erzwingt das Schreiben aller anstehenden Änderungen eines Registry-Schlüssels in seine Hive-Datei.
- NtCompressKey
Erzwingt das Defragmentieren / Kompaktieren der Backing-Datei eines geladenen Registry-Hives.
- NtNotifyChangeKey
Registriert eine asynchrone Benachrichtigung für Änderungen an einem Registry-Schlüssel und (optional) seinem Teilbaum.
- NtNotifyChangeMultipleKeys
Registriert eine einzelne Benachrichtigungsanforderung, die bei Änderung einer von mehreren Registry-Schlüsseln auslöst.
- NtFreezeRegistry
Blockiert temporär systemweit alle Registry-Schreiboperationen; von VSS für konsistente Snapshots genutzt.
- NtThawRegistry
Hebt ein vorheriges Registry-Freeze auf, sodass Schreibvorgänge fortgesetzt werden; Gegenstück zu NtFreezeRegistry.
- NtClose
Schließt ein Kernel-Objekt-Handle (Datei, Schlüssel, Event, Prozess, Thread, Section usw.).
- NtCreateFile
Erstellt oder öffnet eine Datei, ein Verzeichnis, ein Gerät oder eine benannte Pipe — der erste Disk-Aufruf jedes Droppers.
- NtOpenFile
Öffnet ein Handle auf eine vorhandene Datei oder ein Gerät — das leichte No-Create-Pendant zu NtCreateFile.
- NtReadFile
Liest Bytes aus einer Datei, einem Gerät, einer benannten Pipe oder einer gemappten Section in einen User-Puffer — Kernel-Primitive hinter ReadFile.
- NtWriteFile
Schreibt Daten in eine offene Datei, Pipe oder ein Gerät — Kernel-Pendant zu NtCreateFile fürs Ablegen von Payloads.
- NtDeleteFile
Löscht eine Datei per Pfad ohne vorheriges Handle-Öffnen — eine seltene Anti-Forensik-Primitive.
- NtSetInformationFile
Setzt Dateimetadaten über FILE_INFORMATION_CLASS — Umbenennen, Löschen, Allokieren, EOF usw.
- NtQueryInformationFile
Liest Metadaten einer geöffneten Datei — Timestamps, Größe, EAs, Streams, Reparse-Points u. a.
- NtQueryDirectoryFile
Enumeriert ein Verzeichnis auf IRP-Ebene — von Rootkits genutzt, um Dateien durch Manipulation der Rückgabeliste zu verbergen.
- NtDeviceIoControlFile
Sendet ein IOCTL an einen Kernel-Treiber — User-Mode-Einstieg für jeden BYOVD-Primitive-Missbrauch.
- NtFsControlFile
Sendet FSCTL-Codes an ein Dateisystem — eingesetzt für Reparse Points, ADS-Zugriff und Junction-Missbrauch.
- NtLockFile
Erwirbt einen Byte-Range-Lock auf einer geöffneten Datei, optional exklusiv und optional asynchron.
- NtUnlockFile
Gibt einen zuvor erworbenen Byte-Range-Lock auf einer geöffneten Datei frei.
- NtNotifyChangeDirectoryFile
Registriert eine asynchrone Benachrichtigungsanforderung für Dateisystemänderungen in einem geöffneten Verzeichnis-Handle.
- NtNotifyChangeDirectoryFileEx
Erweiterte Verzeichnis-Änderungsbenachrichtigung, bei der der Aufrufer die im Puffer zurückgegebene FILE_NOTIFY_INFORMATION-Klasse wählen kann.
- NtQueryVolumeInformationFile
Liefert Dateisystem- und Volume-Eigenschaften (Label, Größe, Gerätetyp, Attribute) für das Volume hinter einem Datei-Handle.
- NtSetVolumeInformationFile
Verändert beschreibbare Volume-Eigenschaften — vorrangig das Volume-Label — für das Volume hinter einem Datei-Handle.
- NtSetEaFile
Schreibt NTFS Extended Attributes (EAs), die an ein Datei-Handle gebunden sind.
- NtQueryEaFile
Liest NTFS Extended Attributes (EAs) von einem Datei-Handle, optional gefiltert oder seitenweise.
- NtDuplicateObject
Dupliziert ein Handle aus einem Quellprozess in einen Zielprozess, optional mit Anpassung der Zugriffsrechte oder Schließung der Quelle.
- NtQueryObject
Liefert Metadaten zu einem Kernel-Objekt-Handle: Basisinfo, Name, Typ oder systemweite Typtabelle.
- NtSetInformationObject
Setzt Handle-Attribute (Vererbung, Schutz vor Schließung) auf einem Kernel-Objekt-Handle.
- NtCompareObjects
Liefert STATUS_SUCCESS, wenn zwei Handles auf dasselbe zugrundeliegende Kernel-Objekt verweisen.
- NtMakePermanentObject
Setzt das Attribut OBJ_PERMANENT auf ein benanntes Kernel-Objekt, sodass es das Schließen des letzten Handles überdauert.
- NtMakeTemporaryObject
Löscht das Attribut OBJ_PERMANENT, sodass das Kernel-Objekt freigegeben wird, sobald das letzte Handle schließt.
- NtCreateDirectoryObject
Erzeugt ein neues Directory-Objekt im Namensraum des Windows Object Managers.
- NtOpenDirectoryObject
Öffnet ein vorhandenes Directory-Objekt im Namensraum des Windows Object Managers.
- NtQueryDirectoryObject
Enumeriert die Einträge (Name + Typ) innerhalb eines Object-Manager-Verzeichnisses.
- NtCreateSymbolicLinkObject
Erzeugt einen Object-Manager-Symlink von einem Namen zu einem beliebigen NT-Zielstring.
- NtOpenSymbolicLinkObject
Öffnet einen bestehenden Object-Manager-Symlink über seinen Namen und liefert ein Handle für spätere Abfrage oder Löschung.
- NtAddAtom
Fügt eine Zeichenkette in die globale Kernel-Atomtabelle ein (oder erhöht den Refcount) und liefert deren 16-Bit-Atom-ID.
- NtFindAtom
Sucht ein vorhandenes globales Atom über seinen Namen und liefert dessen 16-Bit-ID, ohne den Refcount zu erhöhen.
- NtDeleteAtom
Dekrementiert den Referenzzähler eines globalen Atoms und entfernt es bei Erreichen von Null.
- NtQueryInformationAtom
Liefert Metadaten zu einem einzelnen Atom oder zur gesamten globalen Atom-Tabelle — Name, Refcount, Pin-Count, Nutzungszähler.
- NtQuerySecurityObject
Liest einen self-relativen SECURITY_DESCRIPTOR aus einem beliebigen Kernel-Objekt, das über ein Handle erreichbar ist.
- NtSetCachedSigningLevel
Schreibt ein von Code Integrity gecachetes Signaturlevel-Ergebnis in ein NTFS-Extended-Attribute der Zieldatei.
- NtAddBootEntry
Registriert einen neuen BOOT_ENTRY in der Boot-Konfigurationsdatenbank (BCD) und liefert die zugewiesene ID zurück.
- NtModifyBootEntry
Ersetzt einen vorhandenen BOOT_ENTRY in der BCD durch einen neuen Deskriptor, identifiziert über seine ID.
- NtSetBootEntryOrder
Schreibt die Boot-Reihenfolge der Firmware — das Array der BOOT_ENTRY-IDs, das die Plattform der Reihe nach versucht.
- NtQueryBootOptions
Liest den BCD-Boot-Optionen-Blob des Systems — Debug-Flags, OS-Load-Options, Hypervisor-Einstellungen, Test-Signing.
- NtQueryDriverEntryOrder
Liest die UEFI-DriverOrder-Liste der Plattform — die Reihenfolge, in der UEFI-Driver####-Einträge beim Boot laden.
- NtQuerySystemEnvironmentValue
Liest eine veraltete x86-BIOS/NV-RAM-Systemumgebungsvariable per Name (Pre-UEFI-Schnittstelle).
- NtSetSystemEnvironmentValue
Schreibt eine veraltete x86-BIOS/NV-RAM-Systemumgebungsvariable (Pre-UEFI-Schnittstelle).
- NtQuerySystemEnvironmentValueEx
Liest eine UEFI-Variable, identifiziert durch (Name, Hersteller-GUID), und liefert Daten plus Attribute zurück.
- NtSerializeBoot
Löst die Serialisierung des Boot-Trace-Puffers aus — schließt die beim Systemstart erfassten Performance-Daten ab.
- NtSystemDebugControl
Leitet Kerneldebugger-artige Anfragen weiter (Kernel-R/W, Control Space, Breakpoints, Profiler), ausgewählt über die SysDbgCommand-Enum.
- NtSetSystemPowerState
Versetzt das System in den angeforderten Energiezustand (Schlaf, Ruhezustand, Betrieb).
- NtShutdownSystem
Kernel-Mode-Shutdown-Trigger — schaltet das System in einem Syscall aus, startet es neu oder fährt es herunter.
- NtCreatePagingFile
Erzeugt oder erweitert eine Windows-Pagefile am angeforderten NT-Pfad; erfordert SeCreatePagefilePrivilege.
- NtVdmControl
Steuerungs-Einstiegspunkt der NT Virtual DOS Machine — 16-Bit-DOS/Windows-Unterstützung, auf x64 außer Betrieb.