Jump to content

[WIP] Windows Vista Extended Kernel


win32

Recommended Posts

On 7/14/2020 at 8:53 PM, burd said:

will this also fix the issue where random services dont start? i wonder

That is the intention. I do believe that the logon init problems are connected to the random services/explorer having trouble starting.

Though windbg hasn't helped at all. Sticking onto a VM with my file causes it to freeze when the boot screen is running.

But I've noticed that BSODs ceased after making the wildcard import call RtlGetFileMUIPath, though it still causes automatic reboots. Others to try are: LdrGetDllHandleEx and RtlDetermineDosPathNameType_U,

I also noticed that the Vista x64 implementation of LoadLibraryExW was very similar to the one in XP x64 (except for not calling SRWLock functions and some other minor differences), which doesn't have the same problem. Though I'm not sure if NT 5 versions of functions would be a good fit for an NT 6 kernel. Then I looked at the One-Core-API version of the function, where an auxiliary LoadLibraryExW is called in its kernelbase.dll, which leads back to the original one in kernel32.dll. Maybe I could use something like that.

In the meantime I added K32GetModuleBaseNameW, K32GetModuleBaseNameA and SetThreadGroupAffinity. This will allow Logitech Gaming Software 9.02 and .NET 4.8 to work.

Link to comment
Share on other sites


2 hours ago, win32 said:

In the meantime I added K32GetModuleBaseNameW, K32GetModuleBaseNameA and SetThreadGroupAffinity. This will allow Logitech Gaming Software 9.02 and .NET 4.8 to work.

can confirm its working :worship:

https://imgur.com/a/9V8eqjQ

WhatsApp Still gives an error about SetThreadGroupAffinity though , even Nahimic2

https://imgur.com/a/Nv6AQHj

Edited by burd
Link to comment
Share on other sites

53 minutes ago, burd said:

WhatsApp Still gives an error about SetThreadGroupAffinity though , even Nahimic2

The update.exe module in the WhatsApp x64 installer is still 32bit. And I noticed they only support Windows 8 and above. Though it probably works on Windows 7 too since all Windows 8+ functions are currently in a broken state in my kernel.

But I noticed that the application itself is stored in X:\Users\User\AppData\Local\SquirrelTemp\WhatsApp-2.2027.10-full.nupkg\. I extracted it from that package with 7zip and it ran.

whatsapp-runs.png

 

Link to comment
Share on other sites

25 minutes ago, win32 said:

The update.exe module in the WhatsApp x64 installer is still 32bit. And I noticed they only support Windows 8 and above.

whatsapp-runs.png

 

aah , my bad , it slipped through my mind somehow. But now that i have remembered , even nahimic2 is 32bit.

 

On windows 7 it works normally  , been using it since quite a while now.

 

 

 

Edited by burd
Link to comment
Share on other sites

I have decided to prioritize the x86 extended kernel over the x64 Haswell Logon Bug Fix as the latter is non-fatal, while lacking functions for x86 software is (unless you switch to a newer OS of course).

Unfortunately there seems to be severe restrictions on what can be done to the x86 kernel32.dll. Unlike with the x64 one, you cannot put the export table wherever you like. And even moving the reloc and rsrc tables (plus the directory addresses) makes the PE32 image bad. So I cannot make a new section before rsrc that would house the expanded export table like in the 2000/XP extended kernels. At present my only solution is to remove seldom-used functions from the export table to ensure that enough room is present for mine. Nonetheless, oCam 511.0 is working (515 may work on vanilla Vista).

You do it by the book and your hard work is rejected. :realmad:

update: After eliminating the debug directory and moving down the import table, I only have enough room for about four functions.

Actually I can put the code in a section below .reloc like I've done with x64, leaving .text open for a bigger export table. But it would be rather difficult to move a thousand+ bytes worth of it. At least everything between 7DE37F10 and 7DE38F10.

SECOND UPDATE: I was finally successful in placing a new export table section between .data and .rsrc without breaking the image. Here is the specific procedure:

-Open up kernel32.dll in WildBill's PETool. Go to the .rsrc section.

-Click "Insert section before..." on the Sections drop-down menu. Select your preferred name and size.

-However, the section will not be the preferred size by default. To make it so, select "Consume slack..." from the Sections drop-down menu and press OK on the dialog that appears; the amount of slack expansion offered by default is the max.

Any deviation from these three steps produces breakage!

-Then use BWC's PE Maker to move the export table.

Edited by win32
Link to comment
Share on other sites

Dear win32!

Is Firefox 78 working with your modifications? Do you have a list of programs that you want to make compatible with Vista? I would really like to install Office 2013 on Vista. It would also be cool if Spotify and OneDrive would work

Link to comment
Share on other sites

5 hours ago, yoltboy01 said:

Dear win32!

Is Firefox 78 working with your modifications? Do you have a list of programs that you want to make compatible with Vista? I would really like to install Office 2013 on Vista. It would also be cool if Spotify and OneDrive would work

currently Palemoon 28.1 and Waterfox classic work , Firefox 78 maybe  , office 2013 doesnt work

Edited by burd
Link to comment
Share on other sites

5 hours ago, yoltboy01 said:

Is Firefox 78 working with your modifications? Do you have a list of programs that you want to make compatible with Vista? I would really like to install Office 2013 on Vista. It would also be cool if Spotify and OneDrive would work

Firefox 78 x64 does work, but you need to open up firefox.exe in CFF Explorer, go into the import table, select ntdll.dll and change the entry RtlQueryPerformanceCounter to NtQueryInformationProcess. I try to avoid touching ntdll as it's impossible to redirect it.

Office 2013/16/19 doesn't work presently due to them using a 32bit installer and of course, the 32bit kernel isn't finished yet. But it appears that I will need SetWaitableTimerEx. And perhaps there will be more undocumented 32/64bit functions the programs themselves will need.

Edited by win32
Link to comment
Share on other sites

Wow thanks for answering you two. I am a diehard Windows Vista Fan and I grew up using Windows Vista. I think they should have treated Vista better and not always combine it with XP when it comes to EOL's (Chrome, Firefox, Opera, Office, LibreOffice..). I mean XP = 2001 ; Vista = 2006/7.. Vista should have received Office 2013 and IE10. I think IE9 is the longest supported Internet Browser in the world, as Server 2008 will receive IE9 updates till 2023, making IE9 unbelievable 12 years old. Microsoft should have definitly given Server 2008 IE10 or 11.. they treated this Server like s***. Talking about IE10, will it ever be possible to port IE10 from Windows 7 or early betas of Windows 8 to Windows Vista? And can you please upload a screenshot of Firefox 78 running on Vista? It feels like ages when I saw a modern browser on Vista.

Edited by yoltboy01
Link to comment
Share on other sites

On 7/18/2020 at 3:02 PM, yoltboy01 said:

And can you please upload a screenshot of Firefox 78 running on Vista?

firefox-78.png

But IE10? Well I think it was decoupled from the OS unlike IE4-6 so it may be possible but I see it as too much work for something that is almost obsolete. How well does it render anyway, nowadays?

Edited by win32
Link to comment
Share on other sites

Sooo nice thanks dude! Windows Vista is an eye candy and FF78 looks soo good. I just put out my old Inspiron mini 1012 and try to use it as well. And yes IE10 is obsolet but I thought it may be easier to port 10 than 11. If you can port IE11 back it would be way more better. You know what would be a big achievement? If you would be able to port Microsoft Edge Chromium to Vista haha

Link to comment
Share on other sites

48 minutes ago, win32 said:

firefox-78.png

But IE10? Well I think it was decoupled from the OS unlike IE4-7 so it may be possible but I see it as too much work for something that is almost obsolete. How well does it render anyway, nowadays?

What am i doing wrong?

 

EDIT: Sorry i did not rename ole32.dll

 

318334899_Snmekobrazovky(5).thumb.png.2d21e83ad7b1f95dbb093974a3545673.png

Edited by Jaguarek62
Link to comment
Share on other sites

You must rename ole32x1.dll to ole32.dll.

It was titled ole32x1 since that was part of my internal versioning system (shell32 is actually shell32x10, for example). But it doesn't reflect the other names in the directory so I'll change it.

Link to comment
Share on other sites

9 hours ago, win32 said:

It was titled ole32x1 since that was part of my internal versioning system (shell32 is actually shell32x10, for example).

I recognize that versioning system. :)

Link to comment
Share on other sites

11 hours ago, win32 said:

 

But IE10? Well I think it was decoupled from the OS unlike IE4-7 so it may be possible but I see it as too much work for something that is almost obsolete. How well does it render anyway, nowadays?

Well it might be slightly easier to get it working since IE10 preview did work on Vista , i have the files incase you are willing to try.

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...