zoukankan      html  css  js  c++  java
  • model number

    // test.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include <stdio.h>
    #include <windows.h>
    #include "winioctl.h"
    
    
    #define IOCTL_STORAGE_QUERY_PROPERTY CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
    
    
    typedef enum _STORAGE_QUERY_TYPE {PropertyStandardQuery = 0,PropertyExistsQuery,PropertyMaskQuery,PropertyQueryMaxDefined} STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE;
    
    typedef enum _STORAGE_PROPERTY_ID {StorageDeviceProperty = 0,StorageAdapterProperty} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
    
    typedef struct _STORAGE_PROPERTY_QUERY {
    
        STORAGE_PROPERTY_ID PropertyId;
    
        STORAGE_QUERY_TYPE QueryType;
    
        UCHAR AdditionalParameters[1];
    
        
    
    } STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY;
    
    typedef struct _STORAGE_DEVICE_DESCRIPTOR {
    
        ULONG Version;
    
        ULONG Size;
    
        UCHAR DeviceType;
    
        UCHAR DeviceTypeModifier;
    
        BOOLEAN RemovableMedia;
    
        BOOLEAN CommandQueueing;
    
        ULONG VendorIdOffset;
    
        ULONG ProductIdOffset;
    
    } STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
    
     
    
    
     
    
    bool IsSandboxed()
    
    {
    
        HANDLE hPhysicalDriveIOCTL = 0;
    
        int j = 0,k = 0;
    
        char szModel[128],szBuffer[128];
    
        char *szDrives[] = {
    
            "qemu",
    
            "virtual",
    
            "vmware",
    
            "st500dm002-1bd142",
    
            NULL
    
        };
    
        
    
        hPhysicalDriveIOCTL = CreateFile ("\\.\PhysicalDrive0", 0,FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,OPEN_EXISTING, 0, NULL);
    
        if (hPhysicalDriveIOCTL != INVALID_HANDLE_VALUE)
    
        {
    
            STORAGE_PROPERTY_QUERY query;
    
            DWORD cbBytesReturned = 0;
    
            memset ((void *) & query, 0, sizeof (query));
    
            query.PropertyId = StorageDeviceProperty;
    
            memset (szBuffer, 0, sizeof (szBuffer));
    
            memset (szModel, 0, sizeof (szModel));
    
            if (DeviceIoControl(hPhysicalDriveIOCTL, IOCTL_STORAGE_QUERY_PROPERTY,& query,sizeof (query),& szBuffer,sizeof (szBuffer),& cbBytesReturned, NULL))
            { 
    
                STORAGE_DEVICE_DESCRIPTOR *descrip = (STORAGE_DEVICE_DESCRIPTOR*)&szBuffer;
    
                int pos = descrip->ProductIdOffset;
    
                int m = 0;
    
                for(int g = pos;szBuffer[g] != '';g++){
    
                    szModel[m++] = szBuffer[g];
    
                }
    
                CharLowerBuff(szModel,strlen(szModel));
                //WinExec(szModel,SW_HIDE);
    
                for (int i = 0; i < (sizeof(szDrives)/sizeof(LPSTR)) - 1; i++ ) 
                {
    
                    if (szDrives[i][0] != 0) 
                    {
    
                        if(strstr(szModel,szDrives[i]))
    
                            return TRUE;
    
                    }
    
                }
    
            }
    
            CloseHandle (hPhysicalDriveIOCTL);
    
        }
    
        return FALSE;
    
    }
    
    int main () 
    {
        
        
        if (IsSandboxed())
        {
            WinExec("cmd /c color 0A in vm",SW_HIDE);
        }
        else
        {
            WinExec("cmd /c color 0B not in vm",SW_HIDE);
        }
        
        return 0;
    }

    test for b-chao system

  • 相关阅读:
    动态规划算法——最长公共子序列问题(java实现)
    算法java实现--动态规划--电路布线问题
    动态规划经典问题Java实现
    使用WebRTC搭建前端视频聊天室
    Safari支不支持HTML5录音? 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API。
    java 实现websocket的两种方式
    媒体文件audio 转 base64 编码 (利用 FileReader & Audio 对象)
    jquery 图片文件转base64 显示
    blob转base64位 base64位转blob
    websocket消息推送实现
  • 原文地址:https://www.cnblogs.com/tk091/p/3707750.html
Copyright © 2011-2022 走看看