破解VMWare可随意更改MAC地址

破解vwmare,可随意更改MAC地址!

最新的7.0版本已经可以直接修改配置文件来修改虚机的MAC地址了,直接修改“.vmx”

文件中加入下面的三段:

ethernet0.checkMACAddress = "false"

ethernet0.addressType = "static"

ethernet0.Address = "00:26:c7:7d:ab:36"

删除下面原有MAC地址的这段:

ethernet0.generatedAddress = "00:00:00:00:00:00"

以下为原有6.0的破解修改部分

按照此方法测试了一下,基本是成功,唯一的问题是

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"

这个修改后,上面的一行会被自动改回来,因为我是拿改好的虚拟机测试的,暂时不知道新装的会不会有问题。另外也不知道这两个不一致会不会有什么后遗症。

还有一个问题就是改后系统会提示你是COPY还是MOVE,一定要选MOVE。

到网上拖了一个VMware Workstation 6.0.4 build-93057的英文版来,装好一个虚拟XP,结果发现这个VMware虚拟机里面MAC地址不能更改,贼郁闷啊!

到网上搜索了一圈,http://m.wendangku.net/doc/9430498871fe910ef12df866.html里面说,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:DD:EE:FF"

其中ethernet0.generatedAddress = "AA:BB:CC:DD:EE:FF"表示更改后新的MAC地址,uuid.location和uuid.bios里面的后三位数字也需要改成和新MAC地址后三位一致的地址数据。

好了,到这里就更改完了,保存后启动虚拟机,进入系统后发现MAC地址已经变成"AA:BB:CC:DD: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自己),还可以禁用任务管理器。设置很简单,就不说了,设置好以后可以用快捷键的方式来快速隐藏正在运行的软件,很隐秘,任务管理器也打不开,不容易被发现。附件同样提供下载。

看到一个修改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"。你会发现系统没有提示地址非法。

无限制手动指定VM网卡MAC地址

OD载入vmware-vmx.exe (版本号为:VMware Workstation v5.5.2.29772)

00562D35 |. 68 D8806E00 PUSH vmware-v.006E80D8 ;

|@&!*@*@(msg.mac.failedconvertingaddress)"%s" is not a valid ethernet address.\n

0056327F . 85C0 TEST EAX,EAX

00563281 . EB 2F Jnz SHORT vmware-v.005632B2 将JNZ修改为JMP 00563283 . 803E 00 CMP BYTE PTR DS:[ESI],0

00563286 . 75 12 JNZ SHORT vmware-v.0056329A

00563288 . 807E 01 50 CMP BYTE PTR DS:[ESI+1],50

0056328C . 75 0C JNZ SHORT vmware-v.0056329A

0056328E . 807E 02 56 CMP BYTE PTR DS:[ESI+2],56

00563292 . 75 06 JNZ SHORT vmware-v.0056329A

00563294 . F646 03 C0 TEST BYTE PTR DS:[ESI+3],0C0

00563298 . 74 6C JE SHORT vmware-v.00563306

0056329E |. 68 C0846E00 PUSH vmware-v.006E84C0 ;

|@&!*@*@(msg.mac.notallowedaddress)%s is not an allowed static ethernet address.\n

0056332F . 68 D8836E00 PUSH

vmware-v.006E83D8 ; @&!*@*@(msg.mac.duplicateaddress)%s is a duplicate of an existing address.\nselect %s to continue with conflicting address, %s to power off.\n

005632C1 . /EB 33 JNZ SHORT vmware-v.005632F6 将JNZ修改为JMP 005632C3 |. 84C0 TEST AL,AL

005632C5 |. 75 17 JNZ SHORT vmware-v.005632DE

005632C7 |. 807E 01 50 CMP BYTE PTR DS:[ESI+1],50

005632CB |. 75 11 JNZ SHORT vmware-v.005632DE

005632CD |. 807E 02 56 CMP BYTE PTR DS:[ESI+2],56

005632D1 |. 75 0B JNZ SHORT vmware-v.005632DE

005632D3 |. 8A56 03 MOV DL,BYTE PTR DS:[ESI+3]

005632D6 |. 80E2 C0 AND DL,0C0

005632D9 |. 80FA 80 CMP DL,80

005632DC |. 74 28 JE SHORT vmware-v.00563306

005632F6 |> \84C0 TEST AL,AL

005632F8 |. 75 60 JNZ SHORT vmware-v.0056335A 爆破为NOP 005632FA |. 807E 01 0C CMP BYTE PTR DS:[ESI+1],0C

005632FE |. 75 5A JNZ SHORT vmware-v.0056335A 爆破为NOP 00563300 |. 807E 02 29 CMP BYTE PTR DS:[ESI+2],29

00563304 |. 75 54 JNZ SHORT vmware-v.0056335A 爆破为NOP 00563306 |> 8BC6 MOV EAX,ESI

00563308 |. E8 F3F8FFFF CALL vmware-v.00562C00

0056330D |. 84C0 TEST AL,AL

0056330F |. 75 42 JNZ SHORT vmware-v.00563353 爆破为NOP

00563351 |. /74 18 JE SHORT vmware-v.0056336B 将JE改JMP

0056335E . 68 88836E00 PUSH vmware-v.006E8388 ;

|@&!*@*@(msg.mac.badaddressoui)%s is not a valid generated ethernet address.\n

0056355C |. 68 54866E00 PUSH vmware-v.006E8654 ;

/@&!*@*@(msg.mac.invalidaddress)invalid mac address specified.\n

用文本工具(比如记事本)打开vmx配置文件,然后把以下三行删除掉:

ethernet[n].generatedAddress

ethernet[n].addressType

ethernet[n].generatedAddressOffset

再在配置文件里添加一行:

ethernet0.Address = "00:50:56:XX:YY:ZZ "

其中[n] 为你的网卡系列号;

XX修改范围为:00-3F ;

YY与ZZ的修改范围为:00-FF ;

备注:00:50:56修改范围应该也为00-3F

改完启动VM时如果问你SSID的话,选择“Keep Always”。

相关推荐
相关主题
热门推荐