mirror of
https://github.com/lukaszraczylo/go-obfuscation.git
synced 2026-10-15 05:58:22 +00:00
.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
//go:build linux
|
||||
|
||||
package antiemul
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func init() {
|
||||
platformCheck = func() bool {
|
||||
if checkCPUInfo() {
|
||||
return true
|
||||
}
|
||||
if checkDMI() {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func checkCPUInfo() bool {
|
||||
data, err := os.ReadFile("/proc/cpuinfo")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
content := strings.ToUpper(string(data))
|
||||
signatures := []string{"QEMU", "VIRTUAL", "KVM"}
|
||||
for _, sig := range signatures {
|
||||
if strings.Contains(content, sig) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func checkDMI() bool {
|
||||
data, err := os.ReadFile("/sys/devices/virtual/dmi/id/product_name")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
product := strings.ToUpper(strings.TrimSpace(string(data)))
|
||||
vmStrings := []string{
|
||||
"QEMU", "VIRTUAL", "KVM", "VMWARE", "VBOX",
|
||||
"VIRTUALBOX", "XEN", "HYPER-V", "PARALLELS",
|
||||
}
|
||||
for _, vm := range vmStrings {
|
||||
if strings.Contains(product, vm) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user