zoukankan      html  css  js  c++  java
  • VC++ 改动VMware BIOS、uuid_location、ethernet0_address等

    VC++ 改动VMware BIOS、uuid_location、ethernet0_address等。主要问题例如以下

    (1)随机产生16进制数。

    (2)改动vmx相应项。依据规则一般仅仅改动最后三项值;

    /************************************************************************/
    /* 
    摘要:产生十六进制随机数串。比如 "0C 8B 9A"或"0C:8B:9A"
    返回值:返回生成随机数串。格式如"0C 8B 9A"或"0C:8B:9A"
    Author:AboLee
    日期:2014年4月6日
    */
    /************************************************************************/
    void Random(char *szRand,BOOL isMacAddr)
    {   
    srand((unsigned)time(NULL));
    if (!isMacAddr)
    sprintf(szRand, "%02x %02x %02x", rand() & 0xFF, rand() & 0xFF, rand() & 0xFF);
    else
    sprintf(szRand, "%02X:%02X:%02X", rand() & 0xFF, rand() & 0xFF, rand() & 0xFF);


    szRand[8] = '"';
    }


    /************************************************************************/
    /* 
    摘要:改动虚拟机*。vmx文件 uuid.biosᄀᄁuuid.locationᄀᄁethernet0.address
    依据校验规则一般改动后三项值
    Author:Abolee
    日期:2014年4月6日
    */
    /************************************************************************/
    const char *uuid_bios = "uuid.bios = "";
    const char *uuid_location = "uuid.location = "";
    const char *ethernet0_address = "ethernet0.address = "";
    int ModifyVmBiosAndAddress(wchar_t *szVmwarePath)
    {
    char Buffer[8 * 1024];


    CFile file;
    file.Open(szVmwarePath,CFile::modeReadWrite);
    int fileSize = file.Read(Buffer, 8 * 1024);


    char *p = strstr(Buffer, uuid_bios);
    if (p == NULL) return -1;
    p += 52;
    Random(p,FALSE);
    char *p2 = strstr(Buffer, uuid_location);
    p2 += 56;
    memcpy(p2, p2, 8);


    char *p3 = strstr(Buffer, ethernet0_address);
    if (p3 == NULL) return -1;
    p3 += 30;
    Random(p3,TRUE);

    file.SeekToBegin();
    file.Write(Buffer,fileSize);
    file.Close();

    return 0;
    }

  • 相关阅读:
    [20170706]SQL Server事务复制订阅端,job不小心被删,修复
    [20170629]带过滤的复制项UI操作导致订阅全部初始化问题
    自动创建数据库镜像,证书交换
    “RESOURCE MONITOR“CPU占用特别高
    索引视图导致死锁
    Percona TokuDB
    从MySQL 5.5迁移到Mariadb 10.1.14
    SQL Server 2014新特性:其他
    SQL Server 2014新特性:分区索引重建
    SQL Server 2012 新特性:其他
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7352578.html
Copyright © 2011-2022 走看看