Verilave ใฎใใณใฌใชใผไบบใจใณใธใใข Can Bรถlรผkใฏใx86-64 ใใญใปใใตใฎๅฝไปคใปใใใซๆชไฝฟ็จใงๆๆธๅใใใฆใใชใใชใใฌใผใใฃใณใฐ ใณใผใใ่ฆใคใใพใใใ
ใใฎใใใชใชใใณใผใใๅญๅจใใใใจใๅคๆใใพใใ! ใใจใใจๆญป็ฃใ ใฃใใใผใ ใใใใฐใใคใผในใฟใผใจใใฐใฎใใใซ่ฆใใใใผใ ใใใใฐใๅฟใใใใใใฐใ้จๅ็ใซๅฎ่ฃ ใใใใใผใ ใฎใใใซ่ฆใใใใผใ ใใใใๆฅใฎ็ฎใ่ฆใใใจใฏใใใพใใใใพใใใ็ฅใขใผใใๅ จไฝใ้ใใใใซ่ฆใใใชใใณใผใใใใใคใใใใใใญใปใใตไฟ่ญทใใใคใในใใใใใใใใฎๅ ้จใใคใฏใญใณใผใใๆธใๆใใใใใใใจใใใงใใพใใBรถlyuk ใฏใใใใๆคๅบใใใใญใปในใ่ชๅๅใใๅฝผใฎใขใใญใผใใฏ้ๅธธใซ็ฌๅต็ใงใใใใจใๅคๆใใพใใใ
ๆชไฝฟ็จใฎใชใใณใผใใ่ฆใคใใ้ใฎๅ้กใฏใใในใไธญใซ้ขไฟใ็นๅฎใใใฎใ้ฃใใใใจใงใใๅฝไปคใฏใไธ้จใฎใฌใธในใฟใงใฏๆฉ่ฝใใพใใใไปใฎใฌใธในใฟใงใฏๆฉ่ฝใใพใใใใกใขใช ใขใผใใงใตใใผใใใใฆใใๅฝไปคใจใใใงใชใๅฝไปคใใใใพใใ
Kang Belluk ใฏใใตใคใ ใใฃใใซใไฝฟ็จใใฆใใปใผใในใฆใฎใใญใปใใตๅฝไปคใๆคๅบใใๆนๆณใ้็บใใพใใใใใฎๆนๆณใฏใใใญใปใใตใฎ้่ฆใชๆฉ่ฝใซๅฏพๅฆใใใจใใ็นใง่ๅณๆทฑใใใฎใงใใๅฎๅ จใชใณใผใใฏใใใงๅ ฅๆใงใใพใ: haruspex.can.ac / Githubใ
Kan Belluk ใฏ่ช่บซใฎใใญใฐใงใๅฝผใฎใขใใญใผใใฎๆฌ่ณชใซใคใใฆ่ฉณใใ่ชใฃใฆใใพใใ
ใใคใฏใญๅฝไปคใฏใฉใใใๆฅใใฎใงใใ?
ๆ่ฟใฎใใญใปใใตใฏใ้ๅธธใซ่ค้ใชใใคใฏใญใขใผใญใใฏใใฃใๅใใฆใใพใใๅคใ่ฏใใใณใผใใผใฏใใจใฐใผใฏใใฃใใฎใณใใณใใ็ดๆฅใใณใผใใใชใใชใใพใใใใใญใปใใตใฎใใคใฏใญใณใผใใซๅพใฃใฆใใใใใใใคใฏใญๅฝไปคใซใใณใผใใใๅฎ่กใใผใใซ้ไฟกใใพใใๆๆฐใฎ Intel ใใญใปใใตใงใฏใ2 ใคใฎใขใธใฅใผใซใใใใ่กใใพใใ
ใใคใฏใญๅฝไปค็ฟป่จณใจใณใธใณ (MITE) - ๅ็ดใชใฌใฌใทใผๅฝไปคใ 4 ใคไปฅไธใฎใใคใฏใญๅฝไปคใซๅคๆใใพใใ
(MS) โ , CISC Intel .
(DSB), iCache. , , Intel. :
, Sandsifter. #UD (, - ), , .
, . โ , , , . ? โ ! : (speculative execution).
? , . . , . . , .
CALL. :
call x
<speculated code>
x:
lea rax, [rip+z]
xchg [rsp], rax
ret
z:
, . XCHG
, , , , . , . CHG
, MOV
, LOCK
, . .
, , . . , . :
auto ip = ia32::get_ip() & ~63ull;
std::copy_n( ( volatile uint8_t* ) ip, 512, ( volatile uint8_t* ) ip );
ia32::sfence();
for ( size_t n = 0; n != 512; n += 64 )
ia32::clflush( ip + n );
. , . , , . . -, #SMI
(System Management Interrupt ), , PMC ( ). -, , , . , IA32_MSR_SMI_COUNT
. โ #NMI. . #MC, .
, Mod(x)
, . โ , , . 15 NOP
0xCE
, #UD
. 0x00-0xFF
, 0x0F
, , { 0x66
, 0xF2
, 0xF3
} Intel . ModR/M, .
: NOP, , 0xCE
, , for-real-#UD
.
ยซยป, , for-real-#UD
. . :
โโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโ
โ (index) โ decoding โ mits โ ms โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโค
โ 90 โ 'nop' โ 54 โ 80 โ /*Baseline*/
โ 6690 โ 'data16 nop' โ 53 โ 67 โ
โ f290 โ 'nop' โ 53 โ 80 โ
โ f20f90 โ 'seto byte ptr [rax-0x6f6f6f70]' โ 48 โ 80 โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโ
nop , MITE. , MITS , MS . , , , 0x0F
. , . 54954 .
const propertyMatch = (i1, i2) => {
return i2.ms == i1.ms && i2.outOfOrder == i1.outOfOrder && i2.iclass == i1.iclass;
};
// Purge redundant prefixes.
//
for (const k1 of Object.keys(instructions)) {
// Skip if already deleted.
//
const i1 = instructions[k1];
if (!i1) {
continue;
}
// Iterate each prefix (apart from 0f):
//
for (const pfx of prefixList) {
// If the instruction exists:
//
const k2 = pfx + k1;
if (k2 in instructions) {
// If the instruction has matching properties as the derived from parent, delete the entry.
//
const i2 = instructions[k2];
if (propertyMatch(i1, i2)) {
// MITS#1 == MITS#2 can indicate same instruction if instruction halts.
// Otherwise MITS#1 has to be one more than MITS#2 since it should execute one more NOP.
//
if (i1.mits != i2.mits) {
if (i1.mits != i2.mits + 1) {
continue;
}
} else if (i1.mits > faultBaseline.mits) {
continue;
}
delete instructions[k2];
}
}
}
}
- 72869 . 1699 , !
// Purge redundant suffixes.
//
for (const k1 of Object.keys(instructions)) {
// Skip if already deleted or not relevant.
//
const i1 = instructions[k1];
if (!i1 || k1.length <= 2) {
continue;
}
// Find maching entries:
//
for (const k2 of Object.keys(instructions)) {
// If it is matching except the last byte:
//
if (k2.startsWith(k1.substr(0, k1.length - 2)) && k2 != k1) {
// If it has matching properties ignoring the length, erase it
//
const i2 = instructions[k2];
if (propertyMatch(i1, i2)) {
delete instructions[k2];
}
}
}
}
, , , . MS nop, , , . MITS , , , , ( , MS MITS, ), ( NOP ).
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 668690 โ 'xchg byte ptr [rax-0x6f6f6f70], dl' โ 47 โ 88 โ true โ false โ
โ 6c โ 'insb ' โ 39 โ 112 โ true โ true โ
โ 6d โ 'insd ' โ 39 โ 99 โ true โ true โ
โ 6e โ 'outsb ' โ 39 โ 98 โ true โ true โ
โ 6f โ 'outsd ' โ 39 โ 98 โ true โ true โ
โ 8e90 โ 'mov ss, word ptr [rax-0x6f6f6f70]' โ 42 โ 86 โ true โ true โ
โ c290 โ 'ret 0x9090' โ 43 โ 107 โ true โ true โ // <--- Likely errors since
โ c3 โ 'ret ' โ 41 โ 106 โ true โ true โ // <-/ CF will be interrupted
โ ca90 โ 'ret far 0x9090' โ 39 โ 145 โ true โ true โ // but will continue from a valid IP.
โ cb โ 'ret far ' โ 39 โ 145 โ true โ true โ
โ cc โ 'int3 ' โ 39 โ 94 โ true โ true โ
โ cd90 โ 'int 0x90' โ 39 โ 91 โ true โ true โ
โ cf โ 'iretd ' โ 39 โ 136 โ true โ true โ
โ e490 โ 'in al, 0x90' โ 39 โ 110 โ true โ true โ
โ e590 โ 'in eax, 0x90' โ 39 โ 110 โ true โ true โ
โ e690 โ 'out 0x90, al' โ 39 โ 110 โ true โ true โ
โ e790 โ 'out 0x90, eax' โ 39 โ 110 โ true โ true โ
โ ec โ 'in al, dx' โ 39 โ 109 โ true โ true โ
โ ed โ 'in eax, dx' โ 39 โ 109 โ true โ true โ
โ ee โ 'out dx, al' โ 39 โ 109 โ true โ true โ
โ ef โ 'out dx, eax' โ 39 โ 109 โ true โ true โ
โ f1 โ 'int1 ' โ 39 โ 112 โ true โ true โ
โ f4 โ 'hlt' โ 39 โ 124 โ true โ true โ
โ 0f0090 โ 'lldt word ptr [rax-0x6f6f6f70]' โ 47 โ 93 โ true โ true โ
โ 0f0098 โ 'ltr word ptr [rax-0x6f6f6f70]' โ 39 โ 110 โ true โ true โ
โ 0f0080 โ 'sldt word ptr [rax-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f0081 โ 'sldt word ptr [rcx-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f0088 โ 'str word ptr [rax-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f00a0 โ 'verr word ptr [rax-0x6f6f6f70]' โ 47 โ 91 โ true โ true โ
โ 0f00a8 โ 'verw word ptr [rax-0x6f6f6f70]' โ 47 โ 91 โ true โ true โ
โ 0f00d8 โ 'ltr ax' โ 39 โ 108 โ true โ true โ
โ 0f0190 โ 'lgdt ptr [rax-0x6f6f6f70]' โ 47 โ 94 โ true โ true โ
โ 0f0198 โ 'lidt ptr [rax-0x6f6f6f70]' โ 47 โ 94 โ true โ true โ
โ 0f0180 โ 'sgdt ptr [rax-0x6f6f6f70]' โ 47 โ 89 โ true โ false โ
โ 0f0188 โ 'sidt ptr [rax-0x6f6f6f70]' โ 47 โ 88 โ true โ false โ
โ 0f01b0 โ 'lmsw word ptr [rax-0x6f6f6f70]' โ 39 โ 103 โ true โ true โ
โ 0f01b8 โ 'invlpg byte ptr [rax-0x6f6f6f70]' โ 39 โ 114 โ true โ true โ
โ 0f01a0 โ 'smsw word ptr [rax-0x6f6f6f70]' โ 47 โ 85 โ true โ false โ
โ f20f22a4 โ 'mov cr4, rsp' โ 39 โ 103 โ true โ true โ
โ f20f2396 โ 'mov dr2, rsi' โ 39 โ 110 โ true โ true โ
โ f20f2380 โ 'mov dr0, rax' โ 39 โ 109 โ true โ true โ
โ f20fc788 โ 'cmpxchg8b qword ptr [rax-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โ f20fc78a โ 'cmpxchg8b qword ptr [rdx-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โ f38690 โ 'xrelease xchg byte ptr [rax-0x6f6f6f70], dl' โ 47 โ 88 โ true โ false โ
โ f38790 โ 'xrelease xchg dword ptr [rax-0x6f6f6f70], edx' โ 47 โ 88 โ true โ false โ
โ f38890 โ 'xrelease mov byte ptr [rax-0x6f6f6f70], dl' โ 47 โ 84 โ true โ false โ
โ f38990 โ 'xrelease mov dword ptr [rax-0x6f6f6f70], edx' โ 47 โ 84 โ true โ false โ
โ f36c โ 'rep insb ' โ 39 โ 112 โ true โ true โ
โ f36d โ 'rep insd ' โ 39 โ 112 โ true โ true โ
โ f36e โ 'rep outsb ' โ 39 โ 111 โ true โ true โ
โ f36f โ 'rep outsd ' โ 39 โ 111 โ true โ true โ
โ f3a4 โ 'rep movsb byte ptr [rdi], byte ptr [rsi]' โ 43 โ 118 โ true โ true โ //
โ f3a6 โ 'rep cmpsb byte ptr [rsi], byte ptr [rdi]' โ 43 โ 123 โ true โ true โ //
โ f3a7 โ 'rep cmpsd dword ptr [rsi], dword ptr [rdi]' โ 43 โ 123 โ true โ true โ //
โ f3aa โ 'rep stosb byte ptr [rdi]' โ 43 โ 125 โ true โ true โ // Likely errors since
โ f3ac โ 'rep lodsb byte ptr [rsi]' โ 43 โ 106 โ true โ true โ // rcx is undefined.
โ f3ad โ 'rep lodsd dword ptr [rsi]' โ 43 โ 106 โ true โ true โ //
โ f3ae โ 'rep scasb byte ptr [rdi]' โ 43 โ 123 โ true โ true โ //
โ f3af โ 'rep scasd dword ptr [rdi]' โ 43 โ 123 โ true โ true โ //
โ f30f0082 โ 'sldt word ptr [rdx-0x6f6f6f70]' โ 46 โ 87 โ true โ false โ
โ f30f0088 โ 'str word ptr [rax-0x6f6f6f70]' โ 46 โ 87 โ true โ false โ
โ f30f0180 โ 'sgdt ptr [rax-0x6f6f6f70]' โ 46 โ 89 โ true โ false โ
โ f30f018a โ 'sidt ptr [rdx-0x6f6f6f70]' โ 46 โ 88 โ true โ false โ
โ f30f01a1 โ 'smsw word ptr [rcx-0x6f6f6f70]' โ 46 โ 85 โ true โ false โ
โ f30f2190 โ 'mov rax, dr2' โ 39 โ 107 โ true โ true โ
โ f30f22a4 โ 'mov cr4, rsp' โ 39 โ 103 โ true โ true โ
โ f30f2380 โ 'mov dr0, rax' โ 39 โ 109 โ true โ true โ
โ f30f238e โ 'mov dr1, rsi' โ 39 โ 110 โ true โ true โ
โ f30f7890 โ '' โ 39 โ 87 โ true โ true โ
โ f30f7990 โ '' โ 39 โ 87 โ true โ true โ
โ f30fc789 โ 'cmpxchg8b qword ptr [rcx-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โ f30fc78f โ 'cmpxchg8b qword ptr [rdi-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โ f30fc7b0 โ 'vmxon qword ptr [rax-0x6f6f6f70]' โ 39 โ 116 โ true โ true โ
โ f30fc733 โ 'vmxon qword ptr [rbx]' โ 39 โ 119 โ true โ true โ
โ f30fc776 โ 'vmxon qword ptr [rsi-0x70]' โ 39 โ 120 โ true โ true โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
ยซSpeculation Fenceยป ( ) ? , , :
? , . . , .
divps xmm4, xmm5 #UD'ing, 0xCE , . . :
vmovups ymm0, [temp]
vmovups ymm1, [temp]
vmovups ymm2, [temp]
vmovups ymm3, [temp]
vzeroupper
addps xmm0, xmm1
vaddps ymm2, ymm0, ymm3
vaddps ymm1, ymm0, ymm2
vaddps ymm3, ymm0, ymm1
vaddps ymm0, ymm0, [temp]
vaddps ymm1, ymm0, [temp]
vaddps ymm2, ymm0, [temp]
vaddps ymm3, ymm0, [temp]
vaddps ymm0, ymm0, ymm1
vaddps ymm2, ymm0, ymm3
vaddps ymm1, ymm0, ymm2
vaddps ymm3, ymm0, ymm1
vaddps ymm0, ymm0, [temp]
vaddps ymm1, ymm0, [temp]
vaddps ymm2, ymm0, [temp]
vaddps ymm3, ymm0, [temp]
vaddps ymm0, ymm0, ymm1
vaddps ymm2, ymm0, ymm3
vaddps ymm1, ymm0, ymm2
vaddps ymm3, ymm0, ymm1
vaddps ymm0, ymm0, [temp]
vaddps ymm1, ymm0, [temp]
vaddps ymm2, ymm0, [temp]
vaddps ymm3, ymm0, [temp]
vaddps ymm0, ymm0, ymm1
vaddps ymm2, ymm0, ymm3
vaddps ymm1, ymm0, ymm2
vaddps ymm3, ymm0, ymm1
lea rax, [rip+z]
xchg [rsp], rax
ret
, ยซยป, , , . , :
-- These indeed leak data under speculative execution:
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 8690 โ 'xchg byte ptr [rax-0x6f6f6f70], dl' โ 48 โ 88 โ false โ false โ
โ e090 โ 'loopne 0xffffffffffffff92' โ 56 โ 87 โ false โ false โ
โ fb โ 'sti ' โ 56 โ 83 โ false โ false โ
โ fc โ 'cld ' โ 53 โ 83 โ false โ false โ
โ 0f0080 โ 'sldt word ptr [rax-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f0081 โ 'sldt word ptr [rcx-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f0088 โ 'str word ptr [rax-0x6f6f6f70]' โ 47 โ 87 โ true โ false โ
โ 0f00c0 โ 'sldt eax' โ 51 โ 85 โ false โ false โ
โ 0f00c8 โ 'str eax' โ 51 โ 85 โ false โ false โ
โ 0f0009 โ 'str word ptr [rcx]' โ 51 โ 87 โ false โ false โ
โ 0f0180 โ 'sgdt ptr [rax-0x6f6f6f70]' โ 47 โ 89 โ true โ false โ
โ 0f0188 โ 'sidt ptr [rax-0x6f6f6f70]' โ 47 โ 88 โ true โ false โ
โ 0f01a0 โ 'smsw word ptr [rax-0x6f6f6f70]' โ 47 โ 85 โ true โ false โ
โ 0f01a1 โ 'smsw word ptr [rcx-0x6f6f6f70]' โ 47 โ 85 โ true โ false โ
โ 0f01d0 โ 'xgetbv ' โ 51 โ 88 โ false โ false โ
โ 0f01d5 โ 'xend' โ 51 โ 84 โ false โ false โ
โ 0f01e0 โ 'smsw eax' โ 51 โ 84 โ false โ false โ
โ 0f010f โ 'sidt ptr [rdi]' โ 51 โ 88 โ false โ false โ
โ 0f0140 โ 'sgdt ptr [rax-0x70]' โ 50 โ 89 โ false โ false โ
โ 0f2098 โ 'mov rax, cr3' โ 51 โ 88 โ false โ false โ
โ 0f2080 โ 'mov rax, cr0' โ 51 โ 85 โ false โ false โ
โ 0f31 โ 'rdtsc ' โ 52 โ 93 โ false โ false โ
โ 0f77 โ 'emms' โ 52 โ 111 โ false โ false โ
โ 0fa1 โ 'pop fs' โ 52 โ 87 โ false โ false โ
โ 0fa390 โ 'bt dword ptr [rax-0x6f6f6f70], edx' โ 51 โ 86 โ false โ false โ
...
โ f30f0082 โ 'sldt word ptr [rdx-0x6f6f6f70]' โ 46 โ 87 โ true โ false โ
โ f30f0088 โ 'str word ptr [rax-0x6f6f6f70]' โ 46 โ 87 โ true โ false โ
โ f30f0006 โ 'sldt word ptr [rsi]' โ 50 โ 87 โ false โ false โ
โ f30f000a โ 'str word ptr [rdx]' โ 50 โ 87 โ false โ false โ
โ f30f0180 โ 'sgdt ptr [rax-0x6f6f6f70]' โ 46 โ 89 โ true โ false โ
โ f30f018a โ 'sidt ptr [rdx-0x6f6f6f70]' โ 46 โ 88 โ true โ false โ
โ f30f01a1 โ 'smsw word ptr [rcx-0x6f6f6f70]' โ 46 โ 85 โ true โ false โ
โ f30f010f โ 'sidt ptr [rdi]' โ 50 โ 88 โ false โ false โ
โ f30f0126 โ 'smsw word ptr [rsi]' โ 50 โ 85 โ false โ false โ
โ f30f0140 โ 'sgdt ptr [rax-0x70]' โ 49 โ 89 โ false โ false โ
โ f30faed0 โ 'wrfsbase eax' โ 50 โ 87 โ false โ false โ
โ f30faed8 โ 'wrgsbase eax' โ 50 โ 87 โ false โ false โ
โ f30faec0 โ 'rdfsbase eax' โ 50 โ 86 โ false โ false โ
โ f30faec8 โ 'rdgsbase eax' โ 50 โ 86 โ false โ false โ
โ f30fb391 โ 'btr dword ptr [rcx-0x6f6f6f70], edx' โ 50 โ 86 โ false โ false โ
โ f30fb39f โ 'btr dword ptr [rdi-0x6f6f6f70], ebx' โ 50 โ 86 โ false โ false โ
โ f30fbb92 โ 'btc dword ptr [rdx-0x6f6f6f70], edx' โ 50 โ 86 โ false โ false โ
โ f30fbb94 โ 'btc dword ptr [rax+rdx*4-0x6f6f6f70], edx' โ 49 โ 86 โ false โ false โ
โ f30fc789 โ 'cmpxchg8b qword ptr [rcx-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โ f30fc78f โ 'cmpxchg8b qword ptr [rdi-0x6f6f6f70]' โ 46 โ 95 โ true โ false โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
-- Yet these do not:
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 6c โ 'insb ' โ 39 โ 112 โ true โ true โ
โ 6d โ 'insd ' โ 39 โ 99 โ true โ true โ
โ 6e โ 'outsb ' โ 39 โ 98 โ true โ true โ
โ 6f โ 'outsd ' โ 39 โ 98 โ true โ true โ
โ 8e90 โ 'mov ss, word ptr [rax-0x6f6f6f70]' โ 42 โ 86 โ true โ true โ
โ 9d โ 'popfq ' โ 55 โ 87 โ false โ true โ
โ c290 โ 'ret 0x9090' โ 43 โ 107 โ true โ true โ
โ c3 โ 'ret ' โ 41 โ 106 โ true โ true โ
โ c890 โ 'enter 0x9090, 0x90' โ 50 โ 93 โ false โ true โ
โ ca90 โ 'ret far 0x9090' โ 39 โ 145 โ true โ true โ
โ cb โ 'ret far ' โ 39 โ 145 โ true โ true โ
โ cc โ 'int3 ' โ 39 โ 94 โ true โ true โ
โ cd90 โ 'int 0x90' โ 39 โ 91 โ true โ true โ
โ cf โ 'iretd ' โ 39 โ 136 โ true โ true โ
โ e190 โ 'loope 0xffffffffffffff92' โ 64 โ 83 โ false โ true โ
โ e490 โ 'in al, 0x90' โ 39 โ 110 โ true โ true โ
โ e590 โ 'in eax, 0x90' โ 39 โ 110 โ true โ true โ
โ e690 โ 'out 0x90, al' โ 39 โ 110 โ true โ true โ
โ e790 โ 'out 0x90, eax' โ 39 โ 110 โ true โ true โ
โ ec โ 'in al, dx' โ 39 โ 109 โ true โ true โ
โ ed โ 'in eax, dx' โ 39 โ 109 โ true โ true โ
โ ee โ 'out dx, al' โ 39 โ 109 โ true โ true โ
โ ef โ 'out dx, eax' โ 39 โ 109 โ true โ true โ
โ f1 โ 'int1 ' โ 39 โ 112 โ true โ true โ
โ f390 โ 'pause' โ 52 โ 86 โ false โ true โ
โ f4 โ 'hlt' โ 39 โ 124 โ true โ true โ
โ fd โ 'std ' โ 53 โ 83 โ false โ true โ
โ 0f0090 โ 'lldt word ptr [rax-0x6f6f6f70]' โ 47 โ 93 โ true โ true โ
โ 0f0098 โ 'ltr word ptr [rax-0x6f6f6f70]' โ 39 โ 110 โ true โ true โ
โ 0f00a0 โ 'verr word ptr [rax-0x6f6f6f70]' โ 47 โ 91 โ true โ true โ
โ 0f00a8 โ 'verw word ptr [rax-0x6f6f6f70]' โ 47 โ 91 โ true โ true โ
โ 0f00d0 โ 'lldt ax' โ 51 โ 91 โ false โ true โ
โ 0f00d8 โ 'ltr ax' โ 39 โ 108 โ true โ true โ
...
โ 0f00e0 โ 'verr ax' โ 51 โ 90 โ false โ true โ
โ 0f00e8 โ 'verw ax' โ 51 โ 90 โ false โ true โ
โ 0f0190 โ 'lgdt ptr [rax-0x6f6f6f70]' โ 47 โ 94 โ true โ true โ
โ 0f0198 โ 'lidt ptr [rax-0x6f6f6f70]' โ 47 โ 94 โ true โ true โ
โ 0f01b0 โ 'lmsw word ptr [rax-0x6f6f6f70]' โ 39 โ 103 โ true โ true โ
โ 0f01b8 โ 'invlpg byte ptr [rax-0x6f6f6f70]' โ 39 โ 114 โ true โ true โ
โ 0f01d1 โ 'xsetbv ' โ 51 โ 117 โ false โ true โ
โ 0f01d2 โ '' โ 39 โ 87 โ true โ true โ
โ 0f01d4 โ 'vmfunc ' โ 39 โ 83 โ true โ true โ
โ 0f2193 โ 'mov rbx, dr2' โ 39 โ 107 โ true โ true โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
-, i7 6850k:
โโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 0f01d2 โ '' โ 39 โ 87 โ true โ true โ
โ 0f01c6 โ '' โ 39 โ 83 โ true โ true โ
โ 0f01cc โ '' โ 39 โ 104 โ true โ true โ
โ 0f0c90 โ '' โ 39 โ 138 โ true โ true โ /* Recent CRBUS leaking instruction, 90 is the next NOP. */
โ 0f0e โ 'femms' โ 52 โ 101 โ false โ true โ /* Recent CRBUS leaking instruction */
โ 0faed0 โ '' โ 39 โ 87 โ true โ true โ
โ 0fc790 โ '' โ 39 โ 87 โ true โ true โ
โ 660f3883 โ '' โ 39 โ 81 โ true โ true โ
โ 660f3860 โ '' โ 39 โ 87 โ true โ true โ
โ 660f3a80 โ '' โ 39 โ 87 โ true โ true โ
โ f30f7890 โ '' โ 39 โ 87 โ true โ true โ
โ f30f7990 โ '' โ 39 โ 87 โ true โ true โ
โ f30fe7fc โ '' โ 73 โ 80 โ false โ true โ
โโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
mov cr2
, reg
.
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 0f2090 โ 'mov rax, cr2' โ 51 โ 83 โ false โ false โ
โ 0f2098 โ 'mov rax, cr3' โ 51 โ 88 โ false โ false โ
โ 0f2080 โ 'mov rax, cr0' โ 51 โ 85 โ false โ false โ
โ 0f2290 โ 'mov cr2, rax' โ 51 โ 87 โ false โ true โ /* ! */
โ 0f2298 โ 'mov cr3, rax' โ 39 โ 161 โ true โ true โ
โ 0f2299 โ 'mov cr3, rcx' โ 39 โ 151 โ true โ true โ
โ 0f229b โ 'mov cr3, rbx' โ 39 โ 155 โ true โ true โ
โ 0f2280 โ 'mov cr0, rax' โ 39 โ 110 โ true โ true โ
โ 0f2281 โ 'mov cr0, rcx' โ 39 โ 153 โ true โ true โ
โ 0f22a0 โ 'mov cr4, rax' โ 39 โ 103 โ true โ true โ
โ 0f22a1 โ 'mov cr4, rcx' โ 39 โ 120 โ true โ true โ
โ 0f22a4 โ 'mov cr4, rsp' โ 39 โ 104 โ true โ true โ
โ 660f22a4 โ 'mov cr4, rsp' โ 39 โ 103 โ true โ true โ
โ f20f22a4 โ 'mov cr4, rsp' โ 39 โ 103 โ true โ true โ
โ f30f22a4 โ 'mov cr4, rsp' โ 39 โ 103 โ true โ true โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
CPL int imm8
, int1
.
โโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโผโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ cc โ 'int3 ' โ 39 โ 94 โ true โ true โ
โ cd90 โ 'int 0x90' โ 39 โ 91 โ true โ true โ
โ f1 โ 'int1 ' โ 39 โ 112 โ true โ true โ
โโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโดโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
mov ss
โ , cli
โ . lss
, lgs
.
โโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ (index) โ decoding โ mits โ ms โ serializing โ speculationFence โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โ 8890 โ 'mov byte ptr [rax-0x6f6f6f70], dl' โ 49 โ 80 โ false โ false โ
โ 8990 โ 'mov dword ptr [rax-0x6f6f6f70], edx' โ 49 โ 80 โ false โ false โ
โ 668890 โ 'mov byte ptr [rax-0x6f6f6f70], dl' โ 48 โ 80 โ false โ false โ
โ 8a90 โ 'mov dl, byte ptr [rax-0x6f6f6f70]' โ 49 โ 80 โ false โ false โ
โ 8b90 โ 'mov edx, dword ptr [rax-0x6f6f6f70]' โ 49 โ 80 โ false โ false โ
โ 8c90 โ 'mov word ptr [rax-0x6f6f6f70], ss' โ 50 โ 80 โ false โ false โ
โ 8e90 โ 'mov ss, word ptr [rax-0x6f6f6f70]' โ 42 โ 86 โ true โ true โ /* ! */
โ fa โ 'cli ' โ 56 โ 80 โ false โ false โ
โ 0fb290 โ 'lss edx, ptr [rax-0x6f6f6f70]' โ 39 โ 89 โ true โ true โ /* ! */
โ 0fb590 โ 'lgs edx, ptr [rax-0x6f6f6f70]' โ 47 โ 89 โ true โ false โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
โ Nginx, - -
โ :
โ : vCloud API
โ vApp VMware vCenter + ESXi
Telegram-, . .