Testato su Windows VMware Workstation 16.2.0, con sistema operativo guest Ubuntu Server 22
Almeno un dispositivo USB deve essere collegato alla macchina guest
Modifica 'qh->field4' nel codice ehci.c
Digita 'sudo ./run.sh' per compilare ed eseguire il PoC
Esempio
usa 'lsusb' per determinare l'ID del dispositivo, usa l'ID del dispositivo per impostare 'qh->field4'
il codice vmx alloca una struct con un buffer di dimensione 0x18 (la dimensione può essere controllata nel codice) per leggere la memoria fisica del guest.
la dimensione totale di questa struct sarà 0x400
l'indirizzo di questa struct è 0x26d6caa80d0
alla fine, vmx leggerà 0x800 byte (la dimensione può essere controllata nel codice) di memoria fisica in 0x2606CAA84C0, che corrisponde agli ultimi 0x10 byte di 0x26d6caa80d0 (i primi 0x8 sono già stati letti nella fase di allocazione)
ovviamente, ciò causerà una scrittura fuori dai limiti (OOB).