cachepc

Prime+Probe cache-based side-channel attack on AMD SEV-SNP protected virtual machines
git clone https://git.sinitax.com/sinitax/cachepc
Log | Files | Refs | Submodules | README | sfeed.txt

kvm-targetstep_guest.S (755B)


      1#include "cachepc/const.h"
      2
      3#define TARGET_SET 15
      4
      5.text
      6.align(16)
      7.code16gcc
      8
      9guest:
     10.rept L1_LINESIZE * L1_SETS * 2
     11    nop
     12.endr
     13
     14    mov $0, %cx
     15    mov $CPC_GUEST_START_TRACK, %bx
     16    mov $KVM_HC_CPC_VMMCALL_SIGNAL, %ax
     17    vmmcall
     18
     19    mov $(L1_LINESIZE * (L1_SETS + 11)), %bx
     20    movb (%bx), %bl
     21
     22    mov $(L1_LINESIZE * (L1_SETS + 13)), %bx
     23    movb (%bx), %bl
     24
     25    mov $(L1_LINESIZE * (L1_SETS + 15)), %bx
     26    movb (%bx), %bl
     27
     28    jmp skip
     29.rept L1_LINESIZE * L1_SETS
     30    nop
     31.endr
     32skip:
     33
     34    # these nops should not be single-stepped
     35    # since they are outside the target gfn
     36.rept L1_LINESIZE * L1_SETS * 2
     37    nop
     38.endr
     39
     40    mov $0, %cx
     41    mov $CPC_GUEST_STOP_TRACK, %bx
     42    mov $KVM_HC_CPC_VMMCALL_SIGNAL, %ax
     43    vmmcall
     44
     45    jmp guest
     46