Asynchronous Procedure Call
Voir sur attack.mitre.org →10 syscalls implémentent cette technique
- NtQueueApcThread
Place un appel de procédure asynchrone (APC) en mode utilisateur dans la file d'un thread cible.
- NtQueueApcThreadEx
Place un APC utilisateur dans la file d'un thread avec un objet réserve optionnel ou un flag special-user-APC pour livraison forcée.
- NtTestAlert
Vérifie si le thread appelant a une alerte en attente et délivre, le cas échéant, les APC user-mode en file.
- NtAllocateReserveObject
Pré-alloue un reserve object noyau (APC ou completion) afin que les opérations futures ne puissent échouer sous pression mémoire.
- NtResumeThread
Décrémente le compteur de suspension d'un thread, reprenant l'exécution lorsque le compteur atteint zéro.
- NtAlertResumeThread
Reprend un thread suspendu et l'alerte simultanément pour délivrer toute APC en attente.
- NtSetContextThread
Définit le contexte des registres CPU d'un thread — primitive noyau derrière le détournement de thread et la redirection de shellcode.
- NtWaitForSingleObject
Attend qu'un objet dispatcher devienne signalé ou que le timeout optionnel expire.
- NtWaitForMultipleObjects
Attend jusqu'à MAXIMUM_WAIT_OBJECTS objets dispatcher avec une sémantique WaitAny ou WaitAll.
- NtSetTimer
Arme un objet timer avec une due time, une période optionnelle et une routine APC optionnelle déclenchée à l'expiration.