Changing the MAC address of vmnet0 - vmnet9 (a new tool)

     

    This is a package with tools to make custom MAC addresses of vmnet(x)'s.

     

     

    The package contains 3 tools;

     

     

    - vmnetx_rand.exe

    - vmnetx_spoof.exe

    - vmnetx_spoof_debug.exe

     

     

    Supported OS's; XP, Server 2003, Vista and Server 2008.

     

     

     

    Introduction

     

     

    These tools will let you manipulate the MAC address of the virtual network adapters installed with VMware Player/

     

     

    Server and Workstation. There are 10 nics named vmnet0 to vmnet9. And yes, this is Windows only. These programs are

     

     

    dependant on vnetlib.exe that must exist in the same diorectory. The drivers for vmnetadapters will let you spoof

     

     

    the MAC address to anything as long as the first octet is an even number. I don't know the reason for this and it

     

     

    certainly makes no sense for me, as there doesn't seem to be any logic reason behind it. If an odd number is

     

     

    supplied as the first octet, then the driver will refuse to update with it, and consequently revert back to the

     

     

    default hardcoded mAC address. All tools will update new mac address automatically without further actions needed.

     

     

     

    vmnetx_rand

     

     

    This tool is commandline and takes 1 parameter which is the vmnet(X). It will generate a random MAC address for you

     

     

    that is within the prefixed 00:50:56, that belongs to VMware. That means it will pick a random address out of a

     

     

    16.777.215 possible addresses, and automatically update the vmnet(X) with the new one. There are a few safety checks

     

     

    buildt-in, that will abort execution if either no parameters are passed on the line or the name of the nic is

     

     

    incorrectly supplied.

     

     

    Example: "vmnetx_rand vmnet5"

     

     

     

    vmnetx_spoof

     

     

    This tool is commandline and takes 2 parameters which is the vmnet(X) and the wanted MAC address. It will

     

     

    automatically update the nic with the address that is specified. There are also here some checks that evaluate the

     

     

    parameters and will abort execution if the checks fail. The first parameter is the vmnet(X). The second parameter is

     

     

    the wanted MAC address specified in the format 1233c5ee094a. Beware of the even number in first octet bug. Both

     

     

    these programs take parameters on the commandline and can be scripted, which is an advantage.

     

     

    Example: "vmnetx_spoof vmnet2 22aa33bb44cc"

     

     

     

    vmnetx_spoof_debug

     

     

    This tools is the same tool as vmnetx_spoof, but will give you a message box with information about what went wrong

     

     

    for each check that failed. This one is not suitable for scripting, but merely an alternative for those that want to

     

     

    see how it works.

     

     

     

    Note 1

     

     

    In Vista and Server 2008, I am not sure if scripting works as expected, since the tool requires to be run elevated.

     

     

     

    Note 2

     

     

    Spoofing MAC addresses may interfere with an otherwise working NAT configuration. There is a vnetlib command that

     

     

    will let you accept any MAC addresses from the virtial machines (vnetlib -- set nat vmnet(X) allowanyoui 1). Strange

     

     

    as it is, the dhcp service in the host also will not accept MAC's starting with an odd number (at least from the AMD

     

     

    PCNET adapter driver).

     

     

     

     

     

    Joakim Schicht

     

     

     

     

     

     

     

     

    BTW, this is the same package uploaded yesterday, that was incorrectly deleted by this forum software, when handling

     

     

    version numbers of drafts on the document.