alert7写的检测linux是否运行在VMWARE中的一个程序

博客给出一段代码,通过gcc编译checkVM.c文件生成可执行程序。代码定义结构体idtr,获取IDT地址,根据地址判断Linux系统是运行在真实环境还是VMware虚拟机中。
/* * gcc -Wall -o checkVM checkVM.c * check linux OS in VMare ? * by alert7 * */ #include #include struct idtr { unsigned short limit; unsigned int base; } __attribute__ ((packed)); unsigned int get_addr_idt() { struct idtr idtr; asm("sidt %0" : "=m" (idtr)); return idtr.base; } int main(int argc, char ** argv) { unsigned int ptr_idt; ptr_idt=get_addr_idt(); printf("IDT Addr %p /n",ptr_idt); if ( (ptr_idt>>24)==0xc0) printf("Real Linux/n"); else printf("Maybe in VMare/n"); return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值