Jump to content

Recommended Posts

Posted
On 7/12/2023 at 5:14 AM, jumper said:
On 7/8/2023 at 11:25 PM, schwups said:

0101=>URLMXP.DLL:

Named api needed after the colon.

 

On 7/8/2023 at 11:25 PM, schwups said:

1. Forwarding problem

KernelEx\KnownDLLs can't be extended yet.

 

On 7/8/2023 at 11:25 PM, schwups said:

2. Ordinal support -> possible bug

Yes. Add dummy names.

Workaround confirmed now. Verified based on some modules with a few missing ordinals. Because of the Kext size and a high number of ordinals, it has become quite confusing here. I had to correct some mistakes in the ini files. In order to distinguish, each dummy name really has to be different. Yes, in Ktree I need "#" for all needed ordinals. The additional ones can then have the zero in front of the number.


Posted
On 7/9/2023 at 4:40 PM, Goodmaneuver said:

Uxtheme should be used in Codesuff Starter, KMPlayer and Opera to name some and it will stay in memory while the programs are running. If not remaining in memory then that module is not being used.

I don't see a problem with uxtheme of XP, BWC or React OS here. "Remaining in memory"is verified with Process-Managers. But indeed there is a prob with the ones of Vista and 7. ImportPatcher gives [Export forward replacements]
SHUNIMPL. ordinals.

Shunimpl doesn't even load with procwin.

Posted

Use my new Uxtheme. It is faster and lighter than all others. Now that it is complete, there should be no reason to use any other.

 

  • 4 months later...
Posted (edited)
On 8/17/2023 at 3:50 AM, schwups said:

Basically I use yours on all machines

I do not use it because it does not do any theming. BWC's 5.1.2599.10 version works and does theming on KMP 4.06 which is my main player.

Edited by Goodmaneuver
Posted

More errors that occur with Kstub825.

This is what happens when a Kstub824.ini error occurs and in this case is a spelling mistake of ShellXP.

Kstub824.thumb.png.1acea3376e5553365d0a6c2b9d25170a.png

 

This is what happens with Kstub825 and this non descriptive form of error occurs with any Kstub.ini error.

Kstub825.png.c365547678c6c8f6bb71ed6761e6e039.png

Also the log does not work with Kstub825 on Kstub.ini errors.

KstubLogs.png

Posted (edited)
10 hours ago, jumper said:

The logs look correct

I selected Yes button twice with Kstub824 and Kstub825. I would have expected both to be logging the same but 825 did not log ShelXP as the picture shows. The Comctl32 logs in 825 were already there.

Edited by Goodmaneuver
  • 7 months later...
Posted (edited)

To make modern MSVCRT work in WinME as promised.

HeapQueryInformation=>KERNEL32:HeapSize
InitializeCriticalSectionEx=>EXKERNEL:
SetFileInformationByHandle=>KERNEL32:SetHandleInformation
SetThreadStackGuarantee=>EXKERNEL:

Add these entries into registry system KnownDlls. 

API-MS-WIN-CORE-CONSOLE-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-CONSOLE-L1-2-0 = KERNEL32.DLL
API-MS-WIN-CORE-DATETIME-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-DEBUG-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-FIBERS-L1-1-0 = EXKERNEL.DLL
API-MS-WIN-CORE-FILE-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-HANDLE-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-HEAP-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-0 = KERNEL32.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0 = KERNEL32.DLL
API-MS-WIN-CORE-MEMORY-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-PROFILE-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-STRING-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-SYNCH-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-SYNCH-L1-2-0 = KERNEL32.DLL
API-MS-WIN-CORE-SYSINFO-L1-1-0 = KERNEL32.DLL
API-MS-WIN-CORE-UTIL-L1-1-0 = KERNEL32.DLL
KERNELBASE = KERNEL32.DLL

EXKERNEL needs to be used for the Fls APIs. (Fls APIs from KEX will not work).

https://msfn.org/board/topic/157173-kext-diy-kernelex-extensions/?do=findComment&comment=1226480 

Edited by Goodmaneuver
Posted

Which msvcrt version does this refer to? Every version have different dependencies.

ExKernel can't load without kext. Some additional APIs are required.

My MD5 of ExKernel: 215C38470A3D6325D58A4C24C975CB38

Posted

Any file version from about 7.0.17763 [10.0.17763 product version) to latest one will work and have the same dependencies. KernelEx is used for the redirection of missing APIs. Instructions from URL shortcut given in my last post. You have the same ExKernel.dll as I have, see MSFN topic "KernelEx for Windows XP". It works for VLC as a test with a process usage of 201 instances in my system when using VLC2.05.

KEX 4.5.2 can be used if desired if KernelEx.dll is upgraded a bit and

ILFree=>SHELL32:SHFreeNameMappings and NTDLL redirects:-

NtAllocateVirtualMemory=>KERNEL32:VirtualAllocEx
NtFsControlFile=>KERNEL32:DeviceIoControl
NtQueryInformationFile=>PSAPI:GetModuleInformation
NtQueryInformationThread=>USER32:GetGUIThreadInfo
RtlEnterCriticalSection=>KERNEL32:EnterCriticalSection
RtlInitializeCriticalSection=>KERNEL32:InitializeCriticalSection
RtlInitializeCriticalSectionAndSpinCount=>KERNEL32:InitializeCriticalSectionAndSpinCount
RtlLeaveCriticalSection=>KERNEL32:LeaveCriticalSection
RtlRaiseException=>KERNEL32:RaiseException
RtlSetLastWin32Error=>KERNEL32:SetLastError
RtlTryEnterCriticalSection=>KERNEL32:TryEnterCriticalSection

  • 4 weeks later...
Posted
On 7/12/2023 at 1:14 PM, jumper said:

Named api needed after the colon.

0101=>URLMXP.DLL: should work as long as URLMXP is loadable and is in a known folder path.

 

On 7/12/2023 at 1:14 PM, jumper said:

KernelEx\KnownDLLs can't be extended yet.

They could if the DLL is in a known folder path. Explorer will then search the known folder path that the DLL resides in. To implement a known folder path update AutoExec.bat and add the new full path in the SET PATH=; then run Msconfig after reboot to add the new folder path to the registry. This can be found in registry SessionManager Environment just up a few keys from system KnownDLLs.

Posted (edited)

If 0101=>URLMXP: as an example needs an API after the colon as you say, then what is the idea behind using ordinals in Kstubs? We cannot add an API when the API is unnamed. If adding the API name after the colon is essential then its name must be known and the API or its equivalent must also be a named API in a different module. I was expecting Kstub825 with the new ordinal idea to be able to find the unnamed ordinal number and therefore redirect it to a different module as that same ordinal as Schwups was doing. I realize that Kstub825 still will have its usefulness in DLLs that use forwarding. BTW if I try @jumper your profile does not come up to be selected.

Edited by Goodmaneuver
Posted

Options: no definition, stub definition, forward:

  • Leave it blank and hope it doesn't get called.
  • Determine a stub definition such as "z4" by disassembling the ordinal function.
  • Many "unnamed" api's have names unofficially documented from official debug info.

 

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