00:56
@FutureSecurity I'm going to say it'll depend on the target because i7/i9 have instructions that specifically are useful for virtualization. The x86 is the processor that I am least familiar with; however, I went through the exercise of this because I have a virtual image that I use locally for semiconductor simulation and a farm of crappy computers from around the Uni. The i5 throw aways were orders of magnitude slower running the images.
I believe that it is generally disabled. I have patches for MacOS that trap and emulate the instruction from a toolkit.
Generally, due to the fact that it'd be totally easy to ruin that, I would say that the CPUID and the rdtsc instructions are by far the most exploitable items you had.
__asm__ volatile("rdtsc" : "=a" (a), "=d" (d));
dret = ((unsigned long long)a) | (((unsigned long long)d) << 32);
__asm__ volatile("rdtsc" : "=a" (a), "=d" (d));
dret2 = ((unsigned long long)a) | (((unsigned long long)d) << 32);
diffrdtsc=dret2-dret1;
dret = ((unsigned long long)a) | (((unsigned long long)d) << 32);
__asm__ volatile("rdtsc" : "=a" (a), "=d" (d));
dret2 = ((unsigned long long)a) | (((unsigned long long)d) << 32);
diffrdtsc=dret2-dret1;
« first day (2908 days earlier) ← previous day next day → last day (2064 days later) »
Transcript for
Jun28
Jun '1929
Jul1
The Side Channel
Mostly randomly generated noise. – crypto.stackexchange.com