#vm #detect #timing

inside-vm

使用时间检测虚拟机

2 个不稳定版本

0.2.0 2021年7月11日
0.1.0 2021年7月9日

#186模拟器

MIT/Apache

7KB

rtw crate rtw documentation

inside-vm

检测代码是否在虚拟机中运行。

仅在 x86 和 x86-64 上工作。

工作原理

测量调用 cpuid 时的平均 CPU 周期,并与阈值进行比较,如果值较高,则假设代码正在虚拟机中运行。

快速入门

git clone https://github.com/PicoJr/inside-vm
cd inside-vm/
cargo run --example test-inside-vm

输出:avg cycles for __cpuid: 108

与虚拟机内比较

[vagrant@archlinux vagrant]$ ./target/release/examples/test-inside-vm 

输出:avg cycles for __cpuid: 30578

API

use inside_vm::inside_vm;

let inside = inside_vm();
println!("inside vm: {}", inside);

鸣谢

https://evasions.checkpoint.com/techniques/timing.html#difference-vm-hosts

变更日志

请参阅 CHANGELOG 以了解发布历史。

许可

双许可 MIT 或 Apache 许可证 V2.0。

无运行时依赖