upgrade to 5.1.4 breaks XP mode hack

Discussions related to using VirtualBox on Windows hosts.
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

upgrade to 5.1.4 breaks XP mode hack

Post by Rick87654 »

Hello. I have been using this hack to make XP mode work in virtualbox under windows7pro for years:
http://www.vmlite.com/index.php?option= ... rt=12#8420

I recently upgraded to VB 5.1.2 from 5.0.xx and it breaks this long standing hack. The virtual machine never gets to the VB logo. If I attach a live DVD it never gets to it either. It seems this hack is this issue.

When I create an new VB with a clone of the XP mode disk it boots and XP complains like it should without the hack. As soon as I restore the hack it stops booting the guest. Even if I detach all storage except for a live CD it just never gets that far into starting the guest box.

Downgrading to 5.0.xx fixes everything, so it is certainly upgrade/version related.

Help? Please and thank you.

EDIT: version 5.1.X not 5.1.XX. Thank you michaln.
Last edited by Rick87654 on 22. Aug 2016, 13:58, edited 1 time in total.
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: upgrade to 5.1.14 breaks XP mode hack

Post by mpack »

Is this the original host the XP mode VM was licensed for? That is the only scenario VirtualBox will support.
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: upgrade to 5.1.14 breaks XP mode hack

Post by socratis »

For those who don't feel like going to 3rd party sites, the "hack" is a modified BIOS ROM.

Maybe the changes in 5.1.x fixed something that was genuinely broken in VirtualBox, but broke your hack. Which one of the two do you believe gets prioritized?
(Hint: hacks and undocumented APIs are never supported)
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: upgrade to 5.1.14 breaks XP mode hack

Post by michaln »

Trying to use a random BIOS image (and that does include BIOSes from older VirtualBox versions) is a fool's errand. Not gonna work, forget it. The virtual hardware does change and the BIOS image needs to be updated accordingly.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: upgrade to 5.1.14 breaks XP mode hack

Post by michaln »

I also want the time machine that gets me VirtualBox 5.1.14 today.
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

Re: upgrade to 5.1.14 breaks XP mode hack

Post by Rick87654 »

Hello mpack.

Yes it is. I have two (licenced) win7pro (one OEM and one retail if it matters) machines that I have been using this way for many years without issue.

If I run XP mode the way it is intended I cannot run virtualbox at the same time, hence the hack to trick XP into thinking it is on it's original virtual motherboard (If I recall from back then). It was not the host that limited XP mode, it was (again, from faded memory) the virtual motherboard signature that is provided by the MS solution.

Is there another/better way?

socratis:

Come on. I get that it may not be a priority, but why so negative? You are a moderator and I am new. Why not help AND make a grateful friend? Bet you could crack it if you wanted to. Besides, now that you have poo poo'd my question and officially declared it irrelevent people might ignore the thread completely.

Now you have to help solve it.
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

Re: upgrade to 5.1.14 breaks XP mode hack

Post by Rick87654 »

michaln wrote:Trying to use a random BIOS image (and that does include BIOSes from older VirtualBox versions) is a fool's errand. Not gonna work, forget it. The virtual hardware does change and the BIOS image needs to be updated accordingly.

Is there a way to get VB to identify itself as the other (image) bios?
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: upgrade to 5.1.14 breaks XP mode hack

Post by michaln »

Rick87654 wrote:Is there a way to get VB to identify itself as the other (image) bios?
I think you have that backwards? You can't have VirtualBox version X work with BIOS version Y, you need BIOS version X to work with VirtualBox version X. Think of it like trying to use BIOS for motherboard A with motherboard B. Not gonna work, the two have to match.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: upgrade to 5.1.4 breaks XP mode hack

Post by michaln »

BTW... as I pointed out to another user, whoever gave you the modified BIOS image also owes you source code, since it was distributed under (L)GPL. You should be able to apply the same sort of modifications to the current VirtualBox BIOS.
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

Re: upgrade to 5.1.4 breaks XP mode hack

Post by Rick87654 »

michaln wrote:BTW... as I pointed out to another user, whoever gave you the modified BIOS image also owes you source code, since it was distributed under (L)GPL. You should be able to apply the same sort of modifications to the current VirtualBox BIOS.
I used the above linked method to insert the bios file, but generated it myself. The instructions are specific to the early 2012 version of VboxDDR2.dll as it uses fixed search patterns to identify the start and stop of the bios. Those markers are gone from the current VB and the prior (working) 5.0.xx that I have looked at. Here are 2012 instructions on how to extract the bios.bin, modify the string, and have VB use the new bios for only that VB:
http://forum.keygenmusic.org/viewtopic.php?f=16&t=540

I would like help to refine that method so it can generate instructions on patching any new VB bios that may show up. I agree, it is luck that this old hacked bios from 2012 has worked perfectly until VB 5.1.x. Google shows there are others (some non english pages) using this a similar method to emulate specific hardware, it may not be a common hack but it is used out in the wild and has just stopped working.

Anyone have the skills to teach me/us (lurkers? Please contribute is you can to show I am not the only one interested) how to:
-Find the beginning/end of the bios in VboxDDR2.dll so I can extract a working version the current bios
-find the proper insertion point for the identifier string. Hint: Try the above linked instructions with the VB version that was current on 2012-04-04 and see what was replaced.

I am not a programmer, just dabbled back when, so... Is it possible (with reasonable effort) to make the source "spit out" a copy of the bios as a file? If so, could the source be made to generate a second standalone version with proper string built right in? Something like "make customized_bios_file"?
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: upgrade to 5.1.14 breaks XP mode hack

Post by socratis »

Rick87654 wrote:Come on. I get that it may not be a priority, but why so negative?
I wasn't negative, I was simply pointing out facts. The developers are not getting paid (by their paying customers) for that kind of work. I was simply pointing out the fact the this kind of thing is pure hacking (in the original sense of the term) and as such don't expect too much official help. Come to think of it, it's not even hacking, since the whole thing is open source, it's only a matter of deep down knowledge of low level PC functionality.
Rick87654 wrote:You are a moderator and I am new. Why not help AND make a grateful friend? Bet you could crack it if you wanted to.
Oh, I wouldn't mind making new friends. But I can't hack that. Not even if I was held at gunpoint. Not even to save my life. I know assembly and C when I see it, but that's as far as I can go. As the saying in English goes, it's all Greek to me (of course to a Greek, it's all Chinese; wonder what the Chinese are saying). Remember, moderator != hacker ;) .
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: upgrade to 5.1.4 breaks XP mode hack

Post by michaln »

If all that's needed is to insert some string into the BIOS image, it should be doable. That said, I don't know exactly what the requirements are.
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

Re: upgrade to 5.1.4 breaks XP mode hack

Post by Rick87654 »

michaln wrote:If all that's needed is to insert some string into the BIOS image, it should be doable. That said, I don't know exactly what the requirements are.
Agreed. So, following in the footsteps of http://forum.keygenmusic.org/viewtopic.php?f=16&t=540

I assume we need to:
1) develop a method of extracting the current BIOS (and again next version....)
2) figure out where to insert the string :
57696E646F77735F5669727475616C5F58505F4639313631443845374643433131444442464141333639383536443839353933
("Windows_Virtual_XP_F9161D8E7FCC11DDBFAA369856D89593")

As for the bios, could it be extracted from within the VM? I have no knowlege of x86 on that level, but I remember dos could just use debug (I think it was called debug I was just a boy) to dump a bios to a file. Could it be as simple as a well crafted dd command or using an ancient (or new?) version of dos?

As for the second, other googling has shown that some times the manufacturers string only had to be in a certain section of the bios, like "near the top" as one posting read. It may be possible to either replace the Oracle string with this one or replace a bunch of zeros.

If it is not that simple then task #2 is to determine the location where we want our string to be inserted. I guess there are <64k possible locations and far less "likely" ones.

Ideas?
Rick87654
Posts: 8
Joined: 4. Aug 2016, 00:58

Re: upgrade to 5.1.4 breaks XP mode hack

Post by Rick87654 »

Ok, some success but not.

I used these instructions http://www.mess.org/dumping/dump_bios_using_debug to capture the bios using debug/xp safe mode, then boot from that bios to see if it would work. It did in 5.0.x so I got super excited, but the guest fails to boot when I repeated it in 5.1.4.

I am thinking it may be a bug in the way the pcbios.bin is being inserted at boot time, perhaps a typo. Maybe there is nothing wrong with the bios file I have. Maybe VB's ability to handle the call broke or is being blocked.

Clearly VB tries to insert it. It wouldn't crash if it was being ignored.

I think it may be a real bug that could affect other things down the road and should be investigated to ensure stability (to make me happy or to remove broken stale code). If this broke for an unknown reason then what else is silently broken by that same change? The reason it broke is also important.



EDIT:
Ok, so I tried the captured 5.1.4 bios on 5.0.xx and it booted! The capture was good.

It's a bug in VB 5.1.x

Ideas?
Sandshark
Posts: 8
Joined: 26. Aug 2016, 23:45

Re: upgrade to 5.1.4 breaks XP mode hack

Post by Sandshark »

I can't even get VBoxManage.exe setextradata vm-name "VBoxInternal/Devices/pcbios/0/Config/BiosRom" "pcbios.bin" to seem to do much of anything. It takes a long while to do something after I enter the command, but the log does not show it's using the BIOS and XP wants me to activate with Microsoft. Maybe because the bios image isn't 5.1.x compatible, but I would think it would complain about that. I even tried removing it from a clone of my old VM leaving the bios name blank, and that didn't work (though I knew it would break the hack if it did). So is BiosRom even still a valid key?

Perhaps the DMI information can be used to insert the appropriate string?

I was fat and happy with 4.something running the various OSes that our test equipment uses, but needed to update to create a VM to start preparing for migration of to Windows 10. The VBox version I had didn't like Win10, so I upgraded. My Win10 VM is working great, and a Win7 VM to use if needed after the host migrates to 10, but now my XP machine is broken.

Hopefully, I can move backwards to 5.0.x and maintain the Win10 VM and also get XP mode back working.
Post Reply