Jump to content

[WIP] Windows Vista Extended Kernel


win32

Recommended Posts

1 minute ago, win32 said:

I think bootmgr needs to be modified as well in order for it to work.

But I've had a few other things happen in my life lately (for example, right now, most sounds, sound warped to me) so I haven't been able to do as much as I've wanted to do so. And then I'm still trying to work out ntdll and LoadLibraryExW.

Hope you feel better soon , the other things can wait :)

Link to comment
Share on other sites


On 6/14/2020 at 7:15 PM, win32 said:

To prevent user confusion, I strongly recommend disregarding the tutorials and contacting me directly instead about the extended kernel. The original post appears below for prudency.

  Hide contents

For x86 kernel extension, see this post:

 

Attention Windows Vista x64 users!

Did you feel wounded by the way your OS was surpassed by NT 6.1? And felt salt being poured into those wounds when BlackWingCat implemented some of those NT 6.1+ functions in his extended kernel for NT 5.0?

Now I'm here to give Windows Vista the leg up it has always deserved! All you need is CFF Explorer and ExportTableTester. (rules prohibit the distribution of modified MS binaries)

First, enter X:\Windows\System32 (where X: is the letter of your system partition) and copy kernel32.dll (for this experiment, I'm using version 6.0.6002.19623; this method is applicable to versions through 6.0.6003.20686. users with later versions check out my second post below) to another folder. Open that copy of kernel32.dll in CFF Explorer and click "Section Headers [x]" on the left sidebar.

Keep your attention on the .text section and scroll down to the bottom of the hex representation of the section, where you will find a portion filled with zeros. Then starting at offset 000BCF50, add all of the non-zero code shown in the image below:

1473306471_vistaI.thumb.png.ab072725eb204b8409be22795a947335.png

Save the file and exit CFF Explorer. Open ExportTableTester and drag-and-drop the file into its window. Click "Edit Exports" at the bottom of the window.

Enter each of the 000BCF** offsets referenced in the left window into the "Address of Function (Hex)" field on the right, followed by the function names associated with them below.

1395082202_vistaII.png.205eafb60927d8fe13f8919258624370.png

Reopen the file in CFF Explorer, click "Rebuilder" on the left sidebar, select the checkboxes for "Rebuild PE Header" and "Update Checksum" then click "Rebuild" before saving.

Place your modified kernel32.dll in the folder of each application that requires it. Create a file labelled "xxxx.exe.local" (where xxxx is the name of the application executable) in order to direct the executable to use the modified kernel32.dll as opposed to the one in the system32/sysWOW64 folder.

If you do the same steps as I did, you should be successful in this endeavour. As a sanity check, I opened Dependency Walker x64, checked the present kernel32.dll and it had those K32* functions previously exclusive to Windows 7 and up. What a feeling of accomplishment!

1434055082_VistaIII.thumb.png.372e350c0025383aac089069dbd8eef5.png

WARNING

Remember to keep the "Add New Section" checkbox enabled in ExportTableTester. If not selected, the expanded export table will overwrite some other code below it, which buggered up keyboard layout/localization settings (for example, all keyboard layouts under "English (Canada)" would function like the Canadian French keyboard).

Please test thoroughly and post in this thread about any issues that may arise. ExportTableTester, according to other users, may have issues of its own, but no other known tools will manipulate PE32+ export tables the way it does.

I plan on eventually introducing additional functions in kernel32.dll as well as in other system files to meet my first goal: running Waterfox 2020.03! In fact, all of the functions that have been added to kernel32 are the missing ones required by its xul.dll (with the exception of TryAcquireSRWLockExclusive, which forwards to ntdll.dll).

This will work in other language other than English for example my system is in Spanish

25254460_2020-09-0318_19_10-Propiedadesdekernel32_dll.png.571cdbb08cf12ca2177c1f1551eeb246.png

Link to comment
Share on other sites

35 minutes ago, Tardisusers21 said:

hi, just curious if something like this will happen for windows xp.

Not at this time, as I still have to figure out large chunks of Vista. I'd really want to focus on NT 5.2 (XP x64 and Server 2003) anyway, though, and it may play second fiddle to Windows 7.

But application compatibility issues on Windows 7 are not very real either, and no true win32-based replacement exists for the OS even though it's 11 years old.

Link to comment
Share on other sites

1 hour ago, win32 said:

Not at this time, as I still have to figure out large chunks of Vista. I'd really want to focus on NT 5.2 (XP x64 and Server 2003) anyway, though, and it may play second fiddle to Windows 7.

But application compatibility issues on Windows 7 are not very real either, and no true win32-based replacement exists for the OS even though it's 11 years old.

When you do move onto XP, you should try get a fully working DirectX 11 port first, then try backporting DirectWrite and then it might be feasible to begin the standard kernel mods.

There is a DirectX 11 port to XP, but I haven't been able to get it to work for many games, because of a missing function in one of the dlls. Only time it has worked, for me, is with a DirectX 11 backport to Unreal Engine 1.

For now, just focus on Vista, XP hasn't been that fast on my systems. I've gotten terrible performance with it, even on my 3770K and my 4720HQ laptop

Edited by asdf2345
Link to comment
Share on other sites

2 hours ago, asdf2345 said:

 

There is a DirectX 11 port to XP, but I haven't been able to get it to work for many games, because of a missing function in one of the dlls. Only time it has worked, for me, is with a DirectX 11 backport to Unreal Engine 1.

For now, just focus on Vista, XP hasn't been that fast on my systems. I've gotten terrible performance with it, even on my 3770K and my 4720HQ laptop

u mean DX10 right? DX11 for XP doesn't exist afaik.

Edit : Upon searching i did find dx11 for XP though, weird.

Edited by burd
Link to comment
Share on other sites

10 minutes ago, burd said:

u mean DX10 right? DX11 for XP doesn't exist afaik.

Edit : Upon searching i did find dx11 for XP though, weird.

WineD3D takes DX10/11 calls on 2000/XP and translates them to OpenGL calls. To have real DX10/11 on XP/2003 would require working WDDM drivers. But even getting newer WDDM 1.1 drivers on Vista (earlier ones work) is going to be very difficult, so I can't imagine XP. Apparently some people have hacked WDDM support into Server 2003, but I never found proof.

Link to comment
Share on other sites

17 minutes ago, burd said:

u mean DX10 right? DX11 for XP doesn't exist afaik.

Edit : Upon searching i did find dx11 for XP though, weird.

Took me long enough to get on MSFN (Because Opera 12.18 breaks when using MSFN), that you found it before I could send a screenshot of my dxdiag

2 minutes ago, win32 said:

WineD3D takes DX10/11 calls on 2000/XP and translates them to OpenGL calls. To have real DX10/11 on XP/2003 would require working WDDM drivers. But even getting newer WDDM 1.1 drivers on Vista (earlier ones work) is going to be very difficult, so I can't imagine XP. Apparently some people have hacked WDDM support into Server 2003, but I never found proof.

Hmm, now I wonder what it is that I've put on my laptop

Link to comment
Share on other sites

1 hour ago, asdf2345 said:

Took me long enough to get on MSFN (Because Opera 12.18 breaks when using MSFN), that you found it before I could send a screenshot of my dxdiag

No worries , btw the XtremeG group did post a XG driver of 372.70 , wonder if it will help in anyway.

Link to comment
Share on other sites

4 hours ago, asdf2345 said:

I believe you've tried it by now, how is the performance?

Doesn't seem any different from before , although im not getting any jitter in the windows with aero.

Link to comment
Share on other sites

I think I might have made a fully up to date Vista ISO. Once I figure out how to integrate KB2864202 into the boot.wim, I'll test it on my Ryzen system, then likely release it for anyone to use with instructions on how to replicate the ISO.

 

Link to comment
Share on other sites

ntkrnlmp.exe is available again, as I have managed to make it work.

1853645239_VistaNT6.1.png.10eb9eee1c8efa6d7b59ffe1d8e0d591.png

What's different about it?

-New section added at end of file

-Export table moved to this section

-Version number changed to 6.1.6002.19741

What was breaking it in the first place? Rebuilding its PE Header. The same thing happens on XP x64. Just update the checksum and you'll be fine.

Once again, I wonder how the version change will affect newer drivers.

For brevity, here are the installation instructions:

Quote

Go to Command Prompt (as admin) and do this:

bcdedit /copy {current} /d "Windows Vista Unlocked"

Keep note of the GUID value you get in this form: {91274567-89ab-cdef-00ff-nca000ffffff}. Replace yours with whatever value you get.

bcdedit /set {91274567-89ab-cdef-00ff-nca000ffffff} nointegritychecks 1

bcdedit /set {91274567-89ab-cdef-00ff-nca000ffffff} path \Windows\system32\osloader.exe

bcdedit /set {91274567-89ab-cdef-00ff-nca000ffffff} kernel ntkrnlmp.exe

I will start patching it accordingly, and hope to bring ntdll in the fold soon. Both ntdll and kernel32 may also be bumped to version 6.1, as it appears that some Qt 5.10+ binaries like to not load after a version check.

Edited by win32
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...