Detecção de Máquinas Virtuais
oi lindinhos. daqui falo-vos de coisas simples, desta vez de detecção de máquinas virtuais através do OUI (organizationally unique identifier) presente num MAC address (primeiros 3 bytes). o engraçado disto é pode ser aplicado tanto localmente, como remotamente.
aqui fica um pequeno exemplo capaz de detectar localmente o virtualbox e o vmware player :
#include <stdio.h> #include <string.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> int main(){ unsigned int sfd; unsigned char *mac; struct ifreq ifr; sfd = socket(AF_INET, SOCK_DGRAM, 0); strcpy(ifr.ifr_name, "eth0"); ioctl(sfd, SIOCGIFHWADDR, &ifr); mac = (unsigned char *) ifr.ifr_hwaddr.sa_data; /* virtualbox 3.0.8 / vmware player 3.0.0 OUIs */ if(!(memcmp(mac, "\x08\x00\x27", 3)) || !(memcmp(mac, "\x00\x0c\x29", 3))) puts("VM detected!"); }
a quem interessar, prometo depois voltar a falar sobre o assunto. adeus.
[07:38:23] David says: se nao falares da gatinha esses posts nao funcionam