VMware Communities
medisotar
Contributor
Contributor

Hi who know how to bypass this

Hi who know how to bypass this

  1. static inline unsigned long long rdtsc_diff_vmexit() {
  2.          unsigned long long ret, ret2;
  3.          unsigned eax, edx;
  4.          __asm__ volatile("rdtsc" : "=a" (eax), "=d" (edx));
  5.          ret  = ((unsigned long long)eax) | (((unsigned long long)edx) << 32);
  6.          /* vm exit forced here. it uses: eax = 0; cpuid; */
  7.          __asm__ volatile("cpuid" : /* no output */ : "a"(0x00));
  8.          /**/
  9.          __asm__ volatile("rdtsc" : "=a" (eax), "=d" (edx));
  10.          ret2  = ((unsigned long long)eax) | (((unsigned long long)edx) << 32);
  11.          return ret2 - ret;

withs cpuid. etc

Reply
0 Kudos
2 Replies
medisotar
Contributor
Contributor

i dont understand whay hapen vm exit

Reply
0 Kudos
medisotar
Contributor
Contributor

soft what detect this - https://github.com/a0rtega/pafish

Reply
0 Kudos