破解VMWare可随意更改MAC地址
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
破解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地址不能更改,贼郁闷啊!
到网上搜索了一圈,里面说,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”。