Trao đổi với tôi

http://www.buidao.com

11/7/09

[Virus] Mẹo nhỏ nhận dạng VMWare

Author: DungCoi
Lâu nay chủ yếu anh em dùng mẹo nhận ra theo thanh ghi nào đó, hay key nào đó trong registry.
Hôm trước code kiết vài thứ, vô tình mình phát hiện cái này vui vui nên share anh em, không biết trước đây có ai phát hiện trước mình chưa nữa

Mẹo rất đơn giản, do DungCoi thử xem thì VMWare cho thiết lập lại đủ thứ nhưng hình như cái tên card màn hình thì cứ khư khư không cho thiết lập -> Cái tên nó hình như (Mình chưa thấy ) nó đổi khi nào, khi nào cũng là VMWare Saga gì đó.

Như vậy ta có một mẹo nhỏ vui vui là kiểm tra xem cái tên card màn hình là gì để nhận dạng có phải ứng dụng đang chạy trên VMWare không , ngồ ngộ, không biết cái này có xứng được gọi là khoa học kỹ thuật gì không chứ thấy hay hay

Code VB6 rất ngắn gọn :
Code:
'Detect VMWare
'Tested : VNWare 6.0 -> 7.0
'Coder : DungCoi (VirusVN.com)
'Email : dungcoivb@gmail.com

'-----------------------------------------
Private Type DISPLAY_DEVICE
cb As Long
DeviceName As String * 32
DeviceString As String * 128
StateFlags As Long
DeviceID As String * 128
DeviceKey As String * 128
End Type
Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
Private Type SYSTEM_INFO
dwOemID As Long
dwPageSize As Long
lpMinimumApplicationAddress As Long
lpMaximumApplicationAddress As Long
dwActiveProcessorMask As Long
dwNumberOrfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
dwReserved As Long
End Type
Private Declare Function EnumDisplayDevices Lib "user32" Alias "EnumDisplayDevicesA" (Unused As Any, ByVal iDevNum As Long, lpDisplayDevice As DISPLAY_DEVICE, ByVal dwFlags As Long) As Boolean
Sub Main()
Dim strVGA As String
strVGA = getVGACard
If InStr(1, LCase(strVGA), "vmware") > 0 Then
MsgBox "Dze dze. VMWare", , "VirusVN.com"
Else
MsgBox "I'm not running on VMWare :P", , "VirusVN.com"
End If


End
End Sub
Public Function getVGACard() As String
Dim DD As DISPLAY_DEVICE
DD.cb = Len(DD)
If EnumDisplayDevices(ByVal 0&, 0, DD, ByVal 0&) Then
getVGACard = Left$(DD.DeviceString, InStr(1, DD.DeviceString, Chr$(0)) - 1)
Else
getVGACard = ""
End If
End Function
Demo :



Source + 1 file thực thi mình để sẵn trong tập tin đính kèm để tiện test

File được đính kèm : http://www.mediafire.com/download.php?om0m2zil2mw

Link: http://virusvn.com/forum/showthread.php?p=11072#post11072