Assembleur 80x86 | SKINIT |
---|---|
AMD-V | Secure Init and Jump with Attestation |
Syntaxe
SKINIT EAX |
Description
Cette instruction permet de réinitialiser de façon sécuritaire le microprocesseur et de démarrer un logiciel de confiance comme un VMM.
Algorithme
SI ((EFER.SVMEN = 0) ET PAS (CPUID 8000_0001.ECX(SKINIT)) OU (PAS PROTECTED_MODE)) ALORS EXCEPTION #UD() FIN SI SI CPL ≠ 0 ALORS EXCEPTION #GP() FIN SI Initialise l'état du microprocesseur pour un signal INIT CR0.PE ← 1 CS.sel ← 0008h CS.attr ← 32-bit code, lecture/exécution CS.base ← 0 CS.limit ← FFFFFFFFh SS.sel ← 0010h SS.attr ← pile 32-bits, lecture/écriture, haute expansion SS.base ← 0 SS.limit ← FFFFFFFFh EAX ← EAX ∩ FFFF0000h EDX ← famille/modèle/niveau ESP ← EAX + 00010000h Efface le GPR autre que EAX, EDX, ESP EFER ← 0 VM_CR.DPD ← 1 VM_CR.R_INIT ← 1 VM_CR.DIS_A20M ← 1 Active SL_DEV, et protège 64 Kilooctets de mémoire physique de démarrage à l'adresse physique du registre EAX GIF ← 0 Lecture de la longueur du SL de l'offset 0002h du SLB Copie l'image du SL dans le TPM pour attestation Lecture du point d'entrée SL de l'offset 0000h du SLB Saut au point d'entrée SL, à EIP = EAX + offset de point d'entrée |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
SKINIT EAX | 0Fh 01h DEh | Cette instruction permet d'effectuer l'initialisation sécurisé et le saut avec l'attestation. |
Dernière mise à jour : Lundi, le 8 septembre 2014