#vm #detect #timing

inside-vm_arch_support

使用时间检测虚拟机

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 模拟器

Download history 2329/week @ 2024-03-13 2106/week @ 2024-03-20 1376/week @ 2024-03-27 1761/week @ 2024-04-03 1320/week @ 2024-04-10 936/week @ 2024-04-17 502/week @ 2024-04-24 798/week @ 2024-05-01 2328/week @ 2024-05-08 338/week @ 2024-05-15 1135/week @ 2024-05-22 331/week @ 2024-05-29 1004/week @ 2024-06-05 568/week @ 2024-06-12 636/week @ 2024-06-19 709/week @ 2024-06-26

2,957 每月下载量

MIT/Apache

7KB

rtw crate

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。

无运行时依赖项