Exécution dans une VM

Le
Didier
Bonjour,

Une piste SVP : j'ai besoin de savoir si l'application que je développe (en
C++), et qui tourne sous Windows XP/VISTA et + tard Seven, est en train de
s'exécuter dans une Machine Virtuelle ?

J'ai déjà trouvé une solution simple pour VMware avec la présence des
périphériques virtuels.

Mais je cherche une solution générique. Est ce que par exemple, avec la mise
en place graduelle des hyperviseurs, quelques API spécifiques permettent de
savoir dans quel noyau windows, émulé ou non, se trouve le processus ?

Merci
Didier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #18497641
On 27 jan, 10:23, "Didier"
Bonjour,

Une piste SVP : j'ai besoin de savoir si l'application que je développe (en
C++), et qui tourne sous Windows XP/VISTA et + tard Seven, est en train d e
s'exécuter dans une Machine Virtuelle ?

J'ai déjà trouvé une solution simple pour VMware avec la présence des
périphériques virtuels.

Mais je cherche une solution générique. Est ce que par exemple, avec la mise
en place graduelle des hyperviseurs, quelques API spécifiques permetten t de
savoir dans quel noyau windows, émulé ou non, se trouve le processus ?



Il y a éventuellement la méthode avec l'instruction STR =>
(non testé dans VM)

#include int main()
{
unsigned char uMem[4] = {0};
__asm str uMem;
if ((uMem[0] == 0x00) && (uMem[1] == 0x40))
printf("Dans Virtual Machinen");
else
printf("Hors Virtual Machinen");
return 0;
}
Didier
Le #18499971
> "Christian ASTOR" de news:




Il y a éventuellement la méthode avec l'instruction STR =>
(non testé dans VM)

#include int main()
{
unsigned char uMem[4] = {0};
__asm str uMem;
if ((uMem[0] == 0x00) && (uMem[1] == 0x40))
printf("Dans Virtual Machinen");
else
printf("Hors Virtual Machinen");
return 0;
}




Merci beaucoup, ça marche....

Je ne comprends pas trop comment et pourquoi la valeur du Task Register peut
changer selon l'environnement VM ou pas VM, je ne suis pas suffisamment calé
en assembleur x86....

Question subsidiaire optionnelle : Est ce qu'on peut considérer que cette
méthode est fiable ?
Christian ASTOR
Le #18501681
On 27 jan, 15:19, "Didier"
Question subsidiaire optionnelle : Est ce qu'on peut considérer que cet te
méthode est fiable ?- Masquer le texte des messages précédents -



Sans doute pas à 100%, selon le type de VM.
Il y a d'autres méthodes :
http://flierlu.blogspot.com/2008/04/virtualization-detection.html
Publicité
Poster une réponse
Anonyme