4个版本
使用旧的Rust 2015
0.3.2 | 2023年6月11日 |
---|---|
0.3.1 | 2023年2月5日 |
0.3.0 | 2023年2月5日 |
0.2.0 | 2023年2月5日 |
#116 in 模拟器
2,957 每月下载量
7KB
inside-vm
检测代码是否在虚拟机内部运行。
在x86和x86-64上工作。稍后提供aarch64支持
它是如何工作的
在调用cpuid
时测量平均CPU周期,并将其与阈值比较,如果值较高,则假定代码在VM内部运行。
快速入门
git clone https://github.com/Talhahpatelia/inside-vm_arch_support
cd inside-vm_arch_support/
cargo run --example test-inside-vm
输出:avg cycles for __cpuid: 108
与在VM内部相比
[vagrant@archlinux vagrant]$ ./target/release/examples/test-inside-vm
输出:avg cycles for __cpuid: 30578
API
use inside_vm_arch_support::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。