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

Version 1


    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.







    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.







    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"







    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"







    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.