修改注册表可以达到部分修改MAC地址的功能,但是有些程序不通过注册表获取MAC地址,依然能读到真实的虚拟机MAC地址,虚拟机MAC地址实际上是配置文件中配置的,但该配置文件中只能修改后六位。其实可以通过反编译修改vmware-vmx.exe来达到任意修改MAC地址的目的

两种方法:
1.换8.0以上的vmware
2.在修改之前请先备份你的vmware-vmx.exe文件。
一、 需要的工具
C32asm 版本0.4.12
vmware 版本7.1.2 build-301548为例,需要修改的文件 vmware-vmx.exe


二、步骤:
1. 用C32asm打开vmware-vmx.exe,找到下面一段代码:(可以使用搜索功能,搜索" ,29 ",逐步找到如下代码)

::005DD0B6:: C3 RETN 

::005DD0B7:: 803E 00 CMP BYTE PTR [ESI],0 \:BYJMP JmpBy:005DD083, 

::005DD0BA:: 75 12 JNZ SHORT 005DD0CE \:JMPDOWN 

::005DD0BC:: 807E 01 0C CMP BYTE PTR [ESI+1],C 

::005DD0C0:: 75 0C JNZ SHORT 005DD0CE \:JMPDOWN 

::005DD0C2:: 807E 02 29 CMP BYTE PTR [ESI+2],29 

::005DD0C6:: 75 06 JNZ SHORT 005DD0CE \:JMPDOWN 

::005DD0C8:: 5F POP EDI \:BYJMP JmpBy:005DD035,005DD05D,005DD09E, 

::005DD0C9:: B0 01 MOV AL,1 

::005DD0CB:: 5E POP ESI 

::005DD0CC:: 5D POP EBP 

::005DD0CD:: C3 RETN




这里红色部分是在对比mac前三个地址是否为00.0c.29,这样就导致了mac地址不能随意定义。在次我们将跳转地址直接跳转到蓝色地址上,跳过mac前三个地址的对比结果,使对比结果不发生任何意义。


2. 修改跳转地址
在JNZ SHORT 005DD0CE上点击鼠标右键,选择【对应HEX编辑】。此时打开了显示16进制的代码窗体,在菜单中点击【查看】-》数据解释器,此时出现Data Interpreter窗体。注意观察该窗体的ASM项,显示的是JNZ跳转。修改其最后一字节地址CE为C8即可。
照上面的方法一次修改完这三个跳转地址,保存。


3. 将原来的vmware-vmx.exe文件,替换为修改好的文件。
4. 修改mac地址
打开你的.vmx。用记事本打开vmx配置文件,然后修改一下几行:

ethernet0.generatedAddress = "00:0c:29:1c:35:cc" /*该地址可以任意修改,并保证在合法的范围内*/ 

   uuid.bios = "56 4d e0 c4 a2 41 24 1b-5b 6e 4b a0 0b 1c 35 cc" /*该地址后三个数字必须与mac的后三个相同*/




三、 完成
至此修改完毕,进入系统后查看mac地址方法:
以windows为例: getmac 或者 ipconfig /all

如果只修改注册表,那就简单多了。方法如下:
1、在“开始”菜单的“运行”中输入regedit.exe,打开注册表编辑器,展开注册表到:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}子键,在子键下的0000,0001,0002等分支中查找DriverDesc,双击查看是不是网卡,比如vmware的网卡就是在0003子键时里,双击时显示为“VMware Accelerated AMD PCNet Adapter”。
2、在0003子键下添加一个字符串,命名为“NetworkAddress”,键值为修改后的MAC地址,要求为连续的12个16进制数。然后在“0003”子键下的NDI\params中新建一项名为NetworkAddress的子键,在该子键下添加名为“default”的字符串,键值为修改后的MAC地址,要求为连续的12个16进制数。
3、在NetworkAddress的子键下继续建立名为“ParamDesc”的字符串,其作用为指定NetworkAddress的描述,其值可为“MAC Address”。这样以后打开网络邻居的“属性”,双击相应的网卡就会发现有一个“高级”设置,其下存在MAC Address的选项,它就是你在注册表中加入的新项NetworkAddress,以后只要在此修改MAC地址就可以了。
4、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会发现有一个MAC Address的高级设置项,用于直接修改MAC地址。