单位路由是公司上级指定使用的类型(品牌型号就不说了)。最近,上级开始严厉的整风运动,禁止上网了,只允许领导上网。他们在路由上做了MAC上网限制,只能允许规定的MAC地址上网。
虽然我可以进路由,而且知道怎么增加一个MAC地址让自己也能上网,但是上级的人可以远程登陆这个路由,被发现就麻烦喽。于是想更改本机的MAC地址,但想想还是不妥当,万一有人来检查就麻烦了,说不定就被发现了。
最后我想到了虚拟机,到网上拖了一个VMware Workstation 6.0.4 build-93057的英文版来,装好一个虚拟XP,结果发现这个VMware虚拟机里面MAC地址不能更改,贼郁闷啊!
到网上搜索了一圈,bbs.vmware.cn里面说,VMware为了防止虚拟网卡的MAC地址,所以做了限制,在6版本里面MAC地址前三为只能是00:0c:29,限制的文件是VMware\VMware Workstation\bin\vmware-vmx.exe,但是没有给出解决方案。
最后想想,还是自己动手改吧。用peid看了一下,这个vmware-vmx.exe没加壳,直接用C32Asm反汇编。搜索字符串“mac”,结果到处都是“machine”,太浪费时间了。又搜索“Ethernet”,搜索结果的数量是少了很多,不过还是累啊,但是想不出更好的办法,挨个看吧,花了2个多小时,找到这一行
“00593C60: 68 102D7800 PUSH 782D10 \->: @&!*@*@(msg.mac.badAddressOUI)%s is not a valid generated Ethernet address.\x0A”
顺着这行往上翻了几行(经验,一般都是判断以后才提示正确或者错误,所以上翻),找到了这些数据:
::00593C46:: 84C0 TEST AL,AL \:BYJMP JmpBy:00593C12,
::00593C48:: 75 12 JNZ SHORT 00593C5C \:JMPDOWN
::00593C4A:: 807E 01 0C CMP BYTE PTR [ESI+1],C
::00593C4E:: 75 0C JNZ SHORT 00593C5C \:JMPDOWN
::00593C50:: 807E 02 29 CMP BYTE PTR [ESI+2],29
::00593C54:: 75 06 JNZ SHORT 00593C5C \:JMPDOWN
::00593C56:: 5F POP EDI \:BYJMP JmpBy:00593BEA,00593C2D,
看到了吧,C,29和
软件限制的地址00:0c:29何其相似啊!它的意思是如果第一位不是00,就跳走,第二位不是0C,就跳走,第一位不是29,就跳走,如果前3位都正确,则开始处理数据(00593C56这里开始处理)
于是转到“对应HEX编辑”,再转到“对应汇编模式编辑”,找到上述区段,修改汇编“JNZ SHORT 00593C5C”为“JNZ SHORT 00593C56”,一共三行都要修改。表示不管前3位是什么,都跳到00593C56开始处理数据。
改完以后保存,再找到虚拟机文件,我的是“Windows XP Professional.vmx”,找到下面几行:
uuid.location = "56 4d ad af 77 8b 00 a8-c5 64 70 49 2a df 90 4c"
uuid.bios = "56 4d ad af 77 8b 00 a8-c5 64 70 49 2a df 90 4c"
ethernet0.generatedAddress = "00:0c:29:df:90:4c"
改为:
uuid.location = "56 4d ad af 77 8b 00 a8-c5 64 70 49 2a DD EE FF"
uuid.bios = "56 4d ad af 77 8b 00 a8-c5 64 70 49 2a DD EE FF"
ethernet0.generatedAddress = "AA:BB:CC

D:EE:FF"
其中ethernet0.generatedAddress = "AA:BB:CC

D:EE:FF"表示更改后新的MAC地址,uuid.location和uuid.bios里面的后三位数字也需要改成和新MAC地址后三位一致的地址数据。
好了,到这里就更改完了,保存后启动虚拟机,进入系统后发现MAC地址已经变成"AA:BB:CC

D:EE:FF"了,哈哈。
需要注意的是,不同版本的vmware-vmx.exe文件里面需要修改数据的地址是不一样的,大家可以用C32Asm进行反汇编修改,只是在搜索的时候,大家不要和我一样这么麻烦了,只需要直接搜索“is not a valid generated Ethernet address”就可以了,很快就能找到需要修改的数据地址。
附件提供反汇编工具C32Asm下载和VMware Workstation 6.0.4 build-93057英文版的已经修改好的vmware-vmx.exe下载。
另外提供一个小窍门,即使用了虚拟机能上网了,但是虚拟机开着也容易被领导发现,这里再提供一个软件HideWizard,可以隐藏一些正在运行的软件(包括HideWizard自己),还可以禁用任务管理器。设置很简单,就不说了,设置好以后可以用快捷键的方式来快速隐藏正在运行的软件,很隐秘,任务管理器也打不开,不容易被发现。附件同样提供下载。附件
C32Asm-v0.4.12.part1.rar(488.28 KB)2008-7-17 14:15, 下载次数: 44
C32Asm-v0.4.12.part2.rar(488.28 KB)2008-7-17 14:15, 下载次数: 43
C32Asm-v0.4.12.part3.rar(488.28 KB)2008-7-17 14:15, 下载次数: 47
C32Asm-v0.4.12.part4.rar(477.01 KB)2008-7-17 14:15, 下载次数: 35
vmware-vmx.part01.rar(488.28 KB)2008-7-17 14:15, 下载次数: 29
vmware-vmx.part02.rar(488.28 KB)2008-7-17 14:15, 下载次数: 26
vmware-vmx.part03.rar(488.28 KB)2008-7-17 14:15, 下载次数: 32
vmware-vmx.part04.rar(488.28 KB)2008-7-17 14:15, 下载次数: 30
vmware-vmx.part05.rar(155.11 KB)2008-7-17 14:15, 下载次数: 21
HideWizard.rar(412.03 KB)2008-7-17 14:15, 下载次数: 68