├── .gitignore
├── BUNDLE
└── readme.txt
├── DummySign.bat
├── SDKIncludes.props
├── TestSign.bat
├── VirtualBoxIntegration
├── App.xaml
├── App.xaml.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── VirtualBoxIntegration.csproj
├── VirtualKD.sln
├── _help.cfg
├── database
├── 47CDBA1A.vmpatch
├── 48F2576A.vmpatch
└── 4907CE46.vmpatch
├── footer.html
├── header.html
├── kdclient
├── 32to64.cpp
├── 32to64.h
├── KDClient.h
├── ReadMe.txt
├── TerminationNotifier.h
├── VBoxCmdLine.cpp
├── VBoxCmdLine.h
├── VBoxSnapsnotRestorer.cpp
├── VMAPI
│ ├── VirtualBox.h
│ ├── VirtualBox_i.c
│ └── VixCOM.h
├── VMWareSnapshotRestorer.cpp
├── cmdline.cpp
├── cmdline.h
├── dllmain.cpp
├── findproc.cpp
├── findproc.h
├── hook64.cpp
├── hook64.h
├── kdclient.cpp
├── kdclient.def
├── kdclient.rc
├── kdclient.sln
├── kdclient.vcxproj
├── kdclient.vcxproj.filters
├── loader.h
├── patchapi.cpp
├── patchapi.h
├── resource.h
├── stdafx.cpp
├── stdafx.h
├── tablemgr.cpp
├── tablemgr.h
└── targetver.h
├── kdpatch
├── kdpatch.cpp
├── kdpatch.rc
├── kdpatch.reg
├── kdpatch.sln
├── kdpatch.vcxproj
├── kdpatch.vcxproj.filters
├── moduleapi.h
├── resource.h
├── stdafx.cpp
└── stdafx.h
├── kdvm
├── emptyfunc.cpp
├── kdrpc.h
├── kdvm.cpp
├── kdvm.def
├── kdvm.h
├── kdvm.rc
├── kdvm.vcxproj
├── kdvm.vcxproj.filters
├── kdxxx.h
├── resource.h
├── stdafx.cpp
├── stdafx.h
├── vboxrpc.h
├── vboxrpc64.asm
├── vmwrpc.h
└── vmwrpc64.asm
├── kdvmguestlib
├── VisualDDKHelpers.h
├── kdvmguestlib.vcxproj
├── kdvmguestlib.vcxproj.filters
├── stdafx.cpp
└── stdafx.h
├── make.bat
├── masm64.rules
├── pipeproxy
├── ReadMe.txt
├── pipeproxy.cpp
├── pipeproxy.sln
├── pipeproxy.vcxproj
├── pipeproxy.vcxproj.filters
├── stdafx.cpp
├── stdafx.h
└── targetver.h
├── rpcdispatch
├── PacketLog.cpp
├── PacketLog.h
├── ServiceCommandHandler.h
├── ServiceCommandProtocol.h
├── kdcomdisp.cpp
├── kdcomdisp.h
├── permdesc.h
├── pipesrv.h
├── reporter.cpp
├── reporter.h
├── rpcdisp.h
├── status.h
└── trassist.h
├── vkdversion.h
├── vminstall
├── MainDlg.cpp
├── MainDlg.h
├── TakeOwnership.cpp
├── bootedit.cpp
├── bootedit.h
├── install.cpp
├── install.h
├── res
│ └── vminstall.ico
├── resource.h
├── resource1.h
├── resource2.h
├── stdafx.cpp
├── stdafx.h
├── vminst_vddk.rc
├── vminst_ver.rc
├── vminstall.cpp
├── vminstall.h
├── vminstall.rc
├── vminstall.sln
├── vminstall.vcxproj
└── vminstall.vcxproj.filters
├── vmmon
├── MainDlg.cpp
├── MainDlg.h
├── PatchList.h
├── green.ico
├── grey.ico
├── red.ico
├── res
│ └── vmmon.ico
├── resource.h
├── resource1.h
├── stdafx.cpp
├── stdafx.h
├── trparams.h
├── vmmon.cpp
├── vmmon.rc
├── vmmon.sln
├── vmmon.vcxproj
├── vmmon.vcxproj.filters
├── vmmon_ver.h
├── vmmon_ver.rc
├── vmmon_ver.rc_bak
├── windbg.ico
└── yellow.ico
└── vmxpatch
├── ReadMe.txt
├── resource.h
├── stdafx.cpp
├── stdafx.h
├── targetver.h
├── vmxpatch.cpp
├── vmxpatch.rc
├── vmxpatch.vcxproj
└── vmxpatch.vcxproj.filters
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files
2 | *.slo
3 | *.lo
4 | *.o
5 | *.obj
6 |
7 | # Precompiled Headers
8 | *.gch
9 | *.pch
10 |
11 | # Compiled Dynamic libraries
12 | *.so
13 | *.dylib
14 | *.dll
15 |
16 | # Fortran module files
17 | *.mod
18 |
19 | # Compiled Static libraries
20 | *.lai
21 | *.la
22 | *.a
23 | *.lib
24 |
25 | # Executables
26 | *.exe
27 | *.out
28 | *.app
29 | *.pdb
30 | *.exp
31 | Debug
32 | Release
33 | x64
34 | Debug (user-mode)
35 | Release (user-mode)
36 | DebugPS
37 | ReleasePS
38 | _distr/app
39 | _distr/drivers
40 | ipch
41 | *.sdf
42 | *.suo
43 | /VirtualAutorunDisabler/VirtualAutorunDisabler_i.c
44 | /VirtualAutorunDisabler/VirtualAutorunDisabler_i.h
45 | /VirtualAutorunDisabler/VirtualAutorunDisabler_p32.c
46 | /VirtualAutorunDisabler/VirtualAutorunDisabler_p64.c
47 | /WinCDEmuContextMenu/WinCDEmuContextMenu_i.c
48 | /WinCDEmuContextMenu/WinCDEmuContextMenu_i.h
49 | /WinCDEmuContextMenu/WinCDEmuContextMenu_p32.c
50 | /WinCDEmuContextMenu/WinCDEmuContextMenu_p64.c
51 | /AllModules
52 | /_distr/_drvinst.bzz
53 | /_distr/_drvinst.bzz.stat
54 | /_distr/drivers.bzz
55 | /_distr/drivers.bzz.stat
56 | /_distr/main.bzz
57 | /_distr/main.bzz.stat
58 | /vmnt/vmnt.lng
59 | /vmnt/vmnt_lng.cpp
60 | /vmnt/vmnt_lng.h
61 | /BUNDLE/target
62 | /*.opensdf
63 | /vminstall/*.aps
64 |
--------------------------------------------------------------------------------
/DummySign.bat:
--------------------------------------------------------------------------------
1 | @echo Warning: SIGN_RELEASE_BINARY not defined. %1 will not be signed.
--------------------------------------------------------------------------------
/SDKIncludes.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | $(BZSLIB_PATH)\;C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Inc;C:\Program Files (x86)\Microsoft Visual Studio 9.0\DIA SDK\include;C:\Program Files (x86)\Debugging Tools for Windows (x86)\sdk;$(IncludePath)
7 | C:\Program Files (x86)\Microsoft Visual Studio 9.0\DIA SDK\lib;C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Lib\x86;$(LibraryPath)
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/TestSign.bat:
--------------------------------------------------------------------------------
1 | "%WDKPATH%\bin\x86\signtool.exe" sign /i Testsigning /t http://timestamp.verisign.com/scripts/timstamp.dll %1
--------------------------------------------------------------------------------
/VirtualBoxIntegration/App.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Diagnostics;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Runtime.InteropServices;
9 | using System.Security.Principal;
10 | using System.Windows;
11 |
12 | namespace VirtualBoxIntegration
13 | {
14 | ///
15 | /// Interaction logic for App.xaml
16 | ///
17 | public partial class App : Application
18 | {
19 | [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
20 | [return: MarshalAs(UnmanagedType.Bool)]
21 | public static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo);
22 |
23 |
24 | public App()
25 | {
26 | this.DispatcherUnhandledException += App_DispatcherUnhandledException;
27 | }
28 |
29 | void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
30 | {
31 | MessageBox.Show(e.Exception.ToString(), "VirtualBoxIntegration", MessageBoxButton.OK, MessageBoxImage.Error);
32 | }
33 |
34 | public static bool Is64Bit()
35 | {
36 | try
37 | {
38 | if (IntPtr.Size == 8)
39 | return true;
40 | bool retVal;
41 | IsWow64Process(Process.GetCurrentProcess().Handle, out retVal);
42 | return retVal;
43 | }
44 | catch (System.Exception)
45 | {
46 | return false;
47 | }
48 | }
49 |
50 | internal static bool IsVirtualBoxRunning()
51 | {
52 | return Process.GetProcesses().Where(p => StringComparer.InvariantCultureIgnoreCase.Compare(Path.GetFileNameWithoutExtension(p.ProcessName), "VirtualBox") == 0).Count() != 0;
53 | }
54 |
55 | static bool IsSystemOwned(string fn)
56 | {
57 | return (File.GetAccessControl(fn).GetOwner(typeof(SecurityIdentifier)) as SecurityIdentifier) == new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null);
58 | }
59 |
60 | static void ChownToSystem(string fn)
61 | {
62 | if (!IsSystemOwned(fn))
63 | RunAsAdmin("icacls", "\"" + fn + "\" /setowner system", true);
64 | }
65 |
66 |
67 | internal static void CheckKDClientPermissions(string myDir)
68 | {
69 | if (!IsSystemOwned(Path.Combine(myDir, "kdclient64.dll")) || !IsSystemOwned(Path.Combine(myDir, "kdclient.dll")))
70 | {
71 | if (MessageBox.Show("VirtualBox won't load KDCLIENT.DLL/KDCLIENT64.DLL unless it is owned by the System acoount. Do you want to fix it now?", "VirtualBoxIntegration", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
72 | {
73 | ChownToSystem(Path.Combine(myDir, "kdclient64.dll"));
74 | ChownToSystem(Path.Combine(myDir, "kdclient.dll"));
75 | }
76 | }
77 | }
78 |
79 | public static void RunAsAdmin(string cmd, string args, bool wait = false)
80 | {
81 | try
82 | {
83 | var p = new Process();
84 | p.StartInfo.FileName = cmd;
85 | p.StartInfo.Arguments = args;
86 | if (System.Environment.OSVersion.Version.Major >= 6)
87 | p.StartInfo.Verb = "runas";
88 | p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
89 | p.Start();
90 | if (wait)
91 | p.WaitForExit();
92 | }
93 | catch
94 | {
95 |
96 | }
97 | }
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Open VirtualKD quick start tutorial
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("VirtualBoxIntegration")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("VirtualBoxIntegration")]
15 | [assembly: AssemblyCopyright("Copyright © 2015")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.0.0.0")]
55 | [assembly: AssemblyFileVersion("1.0.0.0")]
56 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace VirtualBoxIntegration.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VirtualBoxIntegration.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace VirtualBoxIntegration.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/VirtualBoxIntegration/VirtualBoxIntegration.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {CDE55E84-1C47-4118-BA0D-AED96771947F}
8 | WinExe
9 | Properties
10 | VirtualBoxIntegration
11 | VirtualBoxIntegration
12 | v4.0
13 | 512
14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | 4
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | ..\bundle\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | 4.0
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | MSBuild:Compile
55 | Designer
56 |
57 |
58 | MSBuild:Compile
59 | Designer
60 |
61 |
62 | App.xaml
63 | Code
64 |
65 |
66 | MainWindow.xaml
67 | Code
68 |
69 |
70 |
71 |
72 | Code
73 |
74 |
75 | True
76 | True
77 | Resources.resx
78 |
79 |
80 | True
81 | Settings.settings
82 | True
83 |
84 |
85 | ResXFileCodeGenerator
86 | Resources.Designer.cs
87 |
88 |
89 | SettingsSingleFileGenerator
90 | Settings.Designer.cs
91 |
92 |
93 |
94 |
95 |
96 | {D7569351-1750-46F0-936E-BD127D5BC264}
97 | 1
98 | 3
99 | 0
100 | tlbimp
101 | False
102 | True
103 |
104 |
105 |
106 |
113 |
--------------------------------------------------------------------------------
/database/47CDBA1A.vmpatch:
--------------------------------------------------------------------------------
1 | [PatchInfoRecord]
2 | TimeStamp: 1204664858
3 | FileSize: 5095424
4 | FirstSectionSize: 1992757
5 | lpDispatcherTable: 007809E8
6 | EntryCount: 33
7 | [/PatchInfoRecord]
8 |
--------------------------------------------------------------------------------
/database/48F2576A.vmpatch:
--------------------------------------------------------------------------------
1 | [PatchInfoRecord]
2 | TimeStamp: 1223841642
3 | FileSize: 11328048
4 | FirstSectionSize: 3420325
5 | lpDispatcherTable: 00B03E9C
6 | EntryCount: 71
7 | [/PatchInfoRecord]
8 |
--------------------------------------------------------------------------------
/database/4907CE46.vmpatch:
--------------------------------------------------------------------------------
1 | [PatchInfoRecord]
2 | TimeStamp: 1225248326
3 | FileSize: 11356720
4 | FirstSectionSize: 3437189
5 | lpDispatcherTable: 00B0A67C
6 | EntryCount: 71
7 | [/PatchInfoRecord]
8 |
--------------------------------------------------------------------------------
/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |