Author Topic: Broke Virtual Box  (Read 10454 times)

0 Members and 1 Guest are viewing this topic.

Offline Jehanne

  • Newbie
  • *
  • Join Date: May 2014
  • Posts: 6
  • Karma: 0
    • View Profile
Broke Virtual Box
« on: May 31, 2014, 08:46:51 pm »
Great program, love it!!  However, it broke VirtualBox on my Windows 7 64-bit machine.  The following website fixed things for me somewhat:

https://www.virtualbox.org/ticket/12087?cversion=0&cnum_hist=37

Namely,

Quote
I found a solution that worked for me after comparing two ProcMon Traces of a working and a broken installation:
    HKEY_CURRENT_ROOT\Classes\CLSID\{00020420-0000-0000-C000-000000000046}\InprocServer32 and
    HKEY_CURRENT_ROOT\Classes\CLSID\{00020424-0000-0000-C000-000000000046}\InprocServer32

    The (Default) entry said "oleauth32.dll". After changing that to "C:\Windows\system32\oleaut32.dll" in both locations it worked again!

However, VirtualBox will not check for updates; still working on that one.

Offline Shane

  • Administrator
  • Hero Member
  • *****
  • Join Date: Sep 2011
  • Posts: 9281
  • Location: USA
  • Karma: 137
  • "Knowledge should be shared not hidden."
    • View Profile
Re: Broke Virtual Box
« Reply #1 on: June 02, 2014, 10:01:37 am »
HKEY_CURRENT_ROOT? My brain lost it for a min reading that because I couldnt decide whcih one you where talking about, HKEY_CURRENT_USER or HKEY_CLASSES_ROOT lol.

You are right, I checked and those locations should have the full path "C:\Windows\system32\oleaut32.dll"

I checked one of my test systems in vmware and sure enough they only have oleaut32.dll instead of the full path.

None of the repairs touch those registry keys BUT the register system files does register the oleaut32.dll file, which when you do that it writes itself to the registry, so when the file is registered it isnt writing the full path. Which is odd, you think it would.

So I need to dig in more and see if that is the only two keys it does that too, which if it is I can just add the fule path to the repair :-)

BUT if it does that in a lot more places then I need to consider removing that file from being registered, which would be bad as well as some repairs that even MS lists says to register that file.

I am going to do a full registry search on the test systems and find any and all keys that have only the file name listed and then compare it with a system that hasnt had the file registered. I will see how many I can find :-)

Shane

Offline Shane

  • Administrator
  • Hero Member
  • *****
  • Join Date: Sep 2011
  • Posts: 9281
  • Location: USA
  • Karma: 137
  • "Knowledge should be shared not hidden."
    • View Profile
Re: Broke Virtual Box
« Reply #2 on: June 02, 2014, 11:39:24 am »
Ok so i took a look at my Windows 8.1 64 bit system and compared it to my 8.1 test syetm. I found all the following keys on the test system had the file name only while my main system which the repairs havent be ran on have the full file path.

Code: [Select]
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{0000002F-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020421-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020422-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020423-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{00020425-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{0BE35203-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{0BE35204-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{46763EE0-CAB2-11CE-8C20-00AA0051E5D4}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{B196B286-BAB4-101A-B69C-00AA00341D07}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\CLSID\{DF0B3D60-548F-101B-8E65-08002B2BD119}\InprocServer32]
@="C:\\Windows\\System32\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{0000002F-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020420-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020421-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020422-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020423-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020424-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020425-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{0BE35203-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{0BE35204-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{46763EE0-CAB2-11CE-8C20-00AA0051E5D4}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{B196B286-BAB4-101A-B69C-00AA00341D07}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{DF0B3D60-548F-101B-8E65-08002B2BD119}\InprocServer32]
@="C:\\Windows\\SysWOW64\\oleaut32.dll"

So on my test system I put all of those back with the full path.

Then I ran these two commands only (Which is what the register system files does)
Code: [Select]
%SystemRoot%\system32\regsvr32.exe %SystemRoot%\system32\oleaut32.dll
%systemroot%\SysWoW64\regsvr32.exe %systemroot%\SysWoW64\oleaut32.dll

And when i checked the registry keys again, sure enough the path was removed. So the dll file itself is removing the full path and just putting in the file name. This doesn't seem to break anything else from what I can tell.

So it looks like virtual box is expecting a full path when it looks at those registry keys and since it doesn't have the full path it doesn't load the file like it needs. Where other programs will auto look in the system32 folder instead. Which would explain why I havent seen any other programs have that trouble.

But that leaves questions. Why does Microsoft own dll file change what is the default from a fresh install when you register it? Is this a bug in their dll or is it on purpose?

I have searched and almost any articles by MS on how to fix something in Windows that has to do with that file has it listed as just registering it like you would any other dll file and exactly as my repair does it.

So it is a simple bug in virtual box where instead of looking for the full path it just needs to look for that and if the path isnt there auto check the system32 folder? I dont know on the virtual box part, but I do know that any of my programs that calls that file has no problem with it when the full path isnt there.

So not sure what the right thing is to do, perhaps I should check to see if these registry keys are the same on each version of windows, and if so simply have my program add the full paths back after the repair. :wink:

Shane
« Last Edit: June 02, 2014, 11:41:24 am by Shane »