Ani ASM ten přístup nemá. Z cache se v tom útoku nevytahují data, ale informace o přítomnosti nebo nepřítomnosti stránky.
Meltdown spočívá v tom, že procesor do cache vloží stránku i na základě hodnoty, ke které nemáte přístup. Zjednodušená verze:
- máte pole_stranek[256]
- vyvoláte neočekávaný skok, takže prediktor nechá spekulativně vyhodnotit následující kód
- přečtete pole_stranek[*0x12345678] - spekulativně vykonané
Ta adresa je pro Vás normálně nepřístupná, Hodnota z dané adresy se použije jako index do pole, a ten prvek z toho pole skončí v cache.
Pak přečtete všechny prvky z pole_stranek a měříte čas každého přístupu. Stránky, které v cache nebyly se musí načíst a tudíž přístup trvá déle (400 taktů). Ta stránka, která tam byla je přístupná "hned" (200 taktů). No a index té "rychlé" stránky je hodnota, kterou jste neměl vědět. Opakujte pro adresy z celé paměti.