来自:一言
var xhr = new XMLHttpRequest(); xhr.open('get', 'https://v1.hitokoto.cn/'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { var data = JSON.parse(xhr.responseText); var hitokoto = document.getElementById('hitokoto'); hitokoto.innerText = data.hitokoto; } } xhr.send();
对虚拟机一些特征进程,文件进行判断。如果存在的话,就判断为虚拟机,从而退出进程,或者执行一些别的安全操作。[aru_3]
ps:该方法只是简单的反虚拟机,没有免杀功能,免杀需要另外做。
下面是我用go简单的写了几个检测虚拟机的函数,希望对大家有所帮助。
func PathExists(path string) (bool, error) { //判断文件是否存在
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
func fack(path string) { //判断虚拟机关键文件是否存在
b, _ := PathExists(path)
if b {
fmt.Printf("当前是虚拟机环境,别分析了,哥。")
os.Exit(1) //如果是虚拟机就退出当前进程
}
}
func check() {
fack("C:\\windows\\System32\\Drivers\\Vmmouse.sys")
fack("C:\\windows\\System32\\Drivers\\vmtray.dll")
fack("C:\\windows\\System32\\Drivers\\VMToolsHook.dll")
fack("C:\\windows\\System32\\Drivers\\vmmousever.dll")
fack("C:\\windows\\System32\\Drivers\\vmhgfs.dll")
fack("C:\\windows\\System32\\Drivers\\vmGuestLib.dll")
fack("C:\\windows\\System32\\Drivers\\VBoxMouse.sys")
fack("C:\\windows\\System32\\Drivers\\VBoxGuest.sys")
fack("C:\\windows\\System32\\Drivers\\VBoxSF.sys")
fack("C:\\windows\\System32\\Drivers\\VBoxVideo.sys")
fack("C:\\windows\\System32\\vboxdisp.dll")
fack("C:\\windows\\System32\\vboxhook.dll")
fack("C:\\windows\\System32\\vboxoglerrorspu.dll")
fack("C:\\windows\\System32\\vboxoglpassthroughspu.dll")
fack("C:\\windows\\System32\\vboxservice.exe")
fack("C:\\windows\\System32\\vboxtray.exe")
fack("C:\\windows\\System32\\VBoxControl.exe")
}
func main() {
a, _ := windows.GetUserPreferredUILanguages(windows.MUI_LANGUAGE_NAME) //获取当前系统首选语言
if a[0] != "zh-CN" {
fmt.Printf("当前不是中文系统")
os.Exit(1) //网上的沙盒等系统都是英文界面,我们可以利用这个进行判断
} else {
check() //先进行判断系统语言,然后再进行判断虚拟机关键文件是否存在
//这边检测完了,就可以执行你想执行的代码了,如shellcode
}
}
温馨提示
只是一些简单的虚拟机的想法,大佬们勿喷[aru_15],又是被自己菜哭的一天[aru_16]