Jump to content

How to spoof real Mac in VMware

vmware

  • Please log in to reply
36 replies to this topic

#1
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

Here are some new VMX settings that will help you make OS X running in VMware look more like a real Apple Mac. I have only tested on Workstation 10 running on Windows 7, so I cannot guarantee that this will work with other VMware versions and OS. These settings may help overcome some issues such as running the Messages application. If you check the system details before making these changes this is what you can expect to see.

 

Hardware Overview:


  Model Name: Mac
  Model Identifier: VMware7,1
  Processor Speed: 2.53 GHz
  Number of Processors: 2
  Total Number of Cores: 2
  L2 Cache (per Processor): 256 KB
  L3 Cache (per Processor): 12 MB
  Memory: 4 GB
  Boot ROM Version: VMW71.00V.0.B64.1308231723
  SMC Version (system): 1.16f8
  Serial Number (system): VMWVk21tM5F4+1Uty1UOSqjAQ
  Hardware UUID: 00000000-0000-1000-8000-000C292AA301

and from ioreg utility:

localhost:~ vmware$ ./system.sh 
VMware7,1
VMWVk21tM5F4+1Uty1UOSqjAQ
440BX Desktop Reference Platform

Let's swap these out for some genuine looking Apple settings.

 

Firstly, you need to have a running OS X guest and a copy of Chameleon Wizard to generate the relevant IDs. I also suggest you take a snapshot first just in case you make a mistake. 

 

Step 1 - Create unique identifiers

Fire up your OS X guest and run the downloaded copy of Chameleon Wizard in the guest. We are not going to be using the Chameleon boot loader just using the wizard's capability to generate various identifiers such as serial number and board-id.

 

Click on the SMBIOS button

 

Attached File  step1.png   492.15KB   305 downloads

 

Select Edit

 

Attached File  step2.png   493.79KB   185 downloads

 

Select a model and other parameters to generate a spoof ID.

 

Attached File  step3.png   522.95KB   224 downloads

 

In this example I have created a MacBook Pro 6.1 with a re-manufactured serial number. Please do not re-use these but generate your own to make sure everything you do is unique. The 3 pieces of information you need to copy to the host are:

 

  • Product Name
  • Board Product
  • Serial

Now close down the guest ready for the next step.

 

2. Edit the VMX file

 

Open the VMX file for your guest in a text editor and add the following lines:

 

board-id.reflectHost = "FALSE"
board-id = <board-id>
hw.model.reflectHost = "FALSE"
hw.model = <product-name>
serialNumber.reflectHost = "FALSE"
serialNumber = <serial-number>
smbios.reflectHost = "FALSE"
Using the example above:
 
board-id.reflectHost = "FALSE"
board-id = "MAC-F22589C8"
hw.model.reflectHost = "FALSE"
hw.model = "MacBookPro6,2"
serialNumber.reflectHost = "FALSE"
serialNumber = "RM129481AGW"
smbios.reflectHost = "FALSE"

Make sure you do not have any duplicate lines or VMware will not load the guest and give you a dictionary error message. The "board-id.reflectHost " is normally added from the new VM wizard and set to trye so make sure you set it to false.

 

Save the VMX file start the guest.

 

Step 3 Check the system

 

You should now be able to use the "System Information" application to see that the guest is using the product and serial number you specified.

 

Hardware Overview:


  Model Name:   MacBook Pro
  Model Identifier: MacBookPro6,2
  Processor Speed:  2.53 GHz
  Number of Processors: 2
  Total Number of Cores:    2
  L2 Cache (per Processor): 256 KB
  L3 Cache (per Processor): 12 MB
  Memory:   4 GB
  Boot ROM Version: VMW71.00V.0.B64.1308231723
  SMC Version (system): 1.16f8
  Serial Number (system):   RM129481AGW
  Hardware UUID:    00000000-0000-1000-8000-000C292AA301

Attached is a small script file which can be run from Terminal to get all 3 parameters. To use copy to the guest rename to system.sh and make executable with chmod. Here is the output from the script showing the specified IDs.

 

localhost:~ vmware$ ./system.sh 
MacBookPro6,2
RM129481AGW
MAC-F22589C8

Hope this helps.

 

 

Update 1: Use Apple MAC Addresses

 

Remove or comment out these lines in the VMX file (make sure guest is powered off):

ethernet0.addressType = "generated"
ethernet0.generatedAddress = "xx:xx:xx:xx:xx:xx"
ethernet0.generatedAddressOffset = "0"

Add the lines with a static Apple MAC Address:

ethernet0.Address = "xx:xx:xx:xx:xx:xx"
ethernet0.addressType = "static"
ethernet0.checkMACAddress = "false"

replace the ethernetX.Address line with something from this list http://hwaddress.com/?q=Apple

 

Attached Files



#2
cyberghoser1

cyberghoser1

    InsanelyMac Protégé

  • Members
  • PipPip
  • 69 posts

Thanks for this, worked so fine! Messages not working yet but FaceTime got fixed!



#3
silvetti

silvetti

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts

I have followed your instructions but I also cannot get iMessages to work :(

 

Vmware Workstation 10

OSX 10.8.5



#4
ArgVega

ArgVega

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts

I think if we can manually patch the VM Ethernet IDs network values to spoof a Mac's "Ethernet" device to apple, such as ZackehSoul method: http://blog.zackehh....rtual-machines/

 

Along with this vmx patching by Donk we can achieve iMessage use in VMware while still preserving the stock VMware EFI and no longer breaking any of the machines features and stability.

 

EDIT: If anyone has any knowledge of kext writing, there could be some sort of Ethernet "injector" written that resolves the Ethernet information to apple permitted hardware.



#5
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

I think if we can manually patch the VM Ethernet IDs network values to spoof a Mac's "Ethernet" device to apple, such as ZackehSoul method: http://blog.zackehh....rtual-machines/

 

Along with this vmx patching by Donk we can achieve iMessage use in VMware while still preserving the stock VMware EFI and no longer breaking any of the machines features and stability.

 

EDIT: If anyone has any knowledge of kext writing, there could be some sort of Ethernet "injector" written that resolves the Ethernet information to apple permitted hardware.

Actually it looks like the Platform-UUID not mac addresses. I have tested a ML guest on Fusion 6 on a real Macbook Pro and it doesn't work there either, and also people with same problem on VMware forums. I think we need to find a way to update the UUID in NVRAM.



#6
ArgVega

ArgVega

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts
I know the VMX file has 2 lines that set the UUID, they are: uuid.bios and uuid.location. They are both hex values and there is an algorithm VMware uses to generate the machine UUID from these.

They both seem to contribute to how the UUID of the machine is derived, I know when you move a machine it asks whether you want it to keep the same UUID or generate a new one. We might be able to play with these lines and see if this changes the UUID in NVRAM, I will check when I get home, but you are talking about the UUID in system profiler right? I think if you set uuid.location = "" (it might use the actual machines UUID), would you be able to verify this on your Mac Book Pro?

EDIT: Maybe this can be fixed with a patch to the PlatformUUID.kext, to inject the correct UUID from the machine. Anyone have any knowledge with Kexts in order to write this? There used to be some for snow leopard but I doubt they inject the values in mountain lion, I think superhai wrote those

#7
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

Interesting new post on serial number for OS X in VMware

 

http://www.virtually...ial-number.html

 

Will try it out s soon as have some time.



#8
ElCoyote_

ElCoyote_

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts

Hi,

SMBIOS.use12CharSerialNumber = "TRUE" did the trick for me on VMWare Workstation 10.0.1 for my OSX Mountain Lion VM..

Thank you so much,

Regards,

ElCoyote

 



#9
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

Hi,

SMBIOS.use12CharSerialNumber = "TRUE" did the trick for me on VMWare Workstation 10.0.1 for my OSX Mountain Lion VM..

Thank you so much,

Regards,

ElCoyote

 

 

That's good news. I had seen that setting in a dump of strings but hadn't realised what it meant.



#10
Hemps

Hemps

    InsanelyMac Protégé

  • Members
  • Pip
  • 17 posts
  • Gender:Male
  • Location:South Africa

So added SMBIOS.use12CharSerialNumber = "TRUE"

 

Removed line serialNumber = "RM129481AGW"

 

I see it generated a serial number.

 

Tried iMessage but still not signing in

 

Now what?



#11
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

So added SMBIOS.use12CharSerialNumber = "TRUE"

 

Removed line serialNumber = "RM129481AGW"

 

I see it generated a serial number.

 

Tried iMessage but still not signing in

 

Now what?

 

 

 

I have no ideas now.

 

Also can I please ask that others do NOT use my generated number as I politely asked in the original email. Please take the time to generate your own.



#12
ElCoyote_

ElCoyote_

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts

So added SMBIOS.use12CharSerialNumber = "TRUE"

 

Removed line serialNumber = "RM129481AGW"

 

I see it generated a serial number.

 

Tried iMessage but still not signing in

 

Now what?

Yes, you' re right. I thought it would work because the results of osx-system.sh within the Guest were the same as on my Real Mac but I hadn' t verified iMessage. I used the identification of my Real MBP (along with the Serial Number, the hardware type, etc..) and it' s still not signing in.. (although it seems to take longer to verify that information).

Kind regards,
 



#13
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

Yes, you' re right. I thought it would work because the results of osx-system.sh within the Guest were the same as on my Real Mac but I hadn' t verified iMessage. I used the identification of my Real MBP (along with the Serial Number, the hardware type, etc..) and it' s still not signing in.. (although it seems to take longer to verify that information).

Kind regards,
 

 

I think I will try it again on one of my real Macs and Fusion 6. If it doesn't work I will raise it as an issue with VMware.



#14
ArgVega

ArgVega

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts

I was able to get iCloud find my iphone to recognize the VMware online with this vmx line, but yes iMessage is still broken.

 

I think Donk is right, it must be something that needs to be injected into the NVRAM, if you use a different bootloader this works, but it breaks more than it fixes. Maybe it's the way VMware identifies it's hardware to the OSX. I get to log in to iMessage but get a message that says "error processing registration".



#15
Hemps

Hemps

    InsanelyMac Protégé

  • Members
  • Pip
  • 17 posts
  • Gender:Male
  • Location:South Africa

If I reset the SMBios info to another form of apple computer, then try sign into iMessage within vmware 10 I get 5 popup windows of "an error occured during activation..." then after clicking the 5th popup windows, It shows account as enabled but seconds later bombs out again and show inactive.



#16
Donk

Donk

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,963 posts
  • Gender:Male
  • Location:Manchester UK

I think I will try it again on one of my real Macs and Fusion 6. If it doesn't work I will raise it as an issue with VMware.

Only just had time to do this, but clean Mavericks install on Fusion 6 Pro, on a real Macbook Pro allows iMessage to work. So now need to take that VM to a Workstation machine and see if I can find what is different. Will probably use DarwinDumper to get a complete snapshot of all hardware information, and compare between the 2 platforms.



#17
MSoK

MSoK

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 953 posts
  • Gender:Male
  • Location:Darlington UK

Only just had time to do this, but clean Mavericks install on Fusion 6 Pro, on a real Macbook Pro allows iMessage to work. So now need to take that VM to a Workstation machine and see if I can find what is different. Will probably use DarwinDumper to get a complete snapshot of all hardware information, and compare between the 2 platforms.

Thanks for the update Donk, keep up the great work!



#18
qeqe2

qeqe2

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts

Has anyone been able to get the serialnumber config parameter to work on ESXI 5.5?

 

I entered my own hardware serial number but Mac OS X Mavericks is unable to read it, instead a super long string is displayed.



#19
ArgVega

ArgVega

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts

Only just had time to do this, but clean Mavericks install on Fusion 6 Pro, on a real Macbook Pro allows iMessage to work. So now need to take that VM to a Workstation machine and see if I can find what is different. Will probably use DarwinDumper to get a complete snapshot of all hardware information, and compare between the 2 platforms.

Hi Donk, where you able to verify the same machine on Workstation? I wonder if it is something to do with the vmware injected hardware values from the local machine.



#20
xexitenglishx

xexitenglishx

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

Is there any way to use this to basically trick a program that wont run in an OSX virtual machine to actually run in it.

Basically i have this software that somehow detects that im running osx in vmware.

 

From the log i have it seems to check the ROMBootVersion, SCM version and the rombootversion shows up as VMF.xxxxx which is the VMware software version.

 

I also have not installed the parallels tools yet so i know its not seeing that. I think it is checking the hardware profile and since it doesnt know the processor type, memory, ect it fails.

 

Is there any way i can monitor the startup of the app to see what it called for in the system for checks. is there a way i can spoof my entire real rMBP

 

Thanks!








2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy