mirror of
https://github.com/lukaszraczylo/go-obfuscation.git
synced 2026-10-13 05:39:02 +00:00
54 lines
933 B
Go
54 lines
933 B
Go
//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
|
|
}
|