关于修改VMWARE虚拟机网卡MAC中用到的WINHEX程序 看到一编文章,如下: 看到一个修改VMWare虚拟网卡MAC地址的帖子。实际上VMWare完全可以提供这个功能,只是为了防止造成MAC地址的混乱,没有在选项中增加这个设置。我把自己研究的一点结果介绍给大家,供大家参考。 首先我对VMWare-VMX.EXE进行反编译,找到在STATIC模式下修改ETHERNET0.ADDRESS时出现的提示字符串。找到提示的错误字符串,顺反编译的汇编程序反向查找,找到了一段代码大致如下: cmp [di],00 jne invalid cmp [di+1],56 jne invalid cmp [di+2],50 jne invalid JMP OK 这段代码是程序对静态MAC地址的审核部分,判断MAC地址的前三位是否为"00-56-50",如果不是这三个字节,程序提示错误然后关闭虚拟机器。要随意修改MAC地址,只需要使用WINHEX将第一个jne invalid修改为JMP OK就可以了。然后进行系统提供的参数,修改ethernet0.addressType = "static"和ethernet0.Address = "01:02:03:04:05:06"。你会发现系统没有提示地址非法。 很多Linux下软件的lincence都是根据主机的网卡mac地址产生的,因此一般用户的mac地址不会变,但是安装在虚拟机上的linux就不一定了,Linux的所看到的本身就是一个虚拟机,因此它所看到的硬件:cpu、ram、network adapter等当然也是虚拟的,因此在虚拟机上根据主机号(hostid)或者网卡mac(lmhostid)产生的序列号就当然是可变的! 这里修改mac地质的方法有两种: 在/etc/rc.d/init.d/中的network中加入: ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx 然后重启 修改虚拟机的配置文件,此文件位于你虚拟操作系统的目录下,不是vmware的安装目录,类似***.vmx的文件,用记事本打开,将ethernet0.generatedAddress="** ** ** "的地址修改成想要的mac地址,然后修改UUID.location = ''** ** ** **....." 和 UUid.bios="** ** ** ** " 相应部分,一般是最后的三个字节。重新用vmware打开虚拟机文件,开机即可。文章中讲到用WINHEX实现对VMWARE程序的反编译。在网上找了资料也下载了WINHEX这个程序,但如何反编译到现在还不明白。以前也用过WINHEX这个程序。这个程序实在只是黑客破解类的。但没好好用过。所以这个东东的用法要学习一下。