Jump to content

KernelEx 2022 (Kex22) Test Versions (4.22.26.2)


jumper

Recommended Posts

Within Kexbases there are ITO stubs for NetServerGetInfo; NetSessionDel; NetSessionEnum; NetSessionGetInfo; NetShareAdd; NetShareDel; NetShareEnum; NetShareGetInfo and NetShareSetInfo. These are all found in native SVAPI.dll and SVAPI is loaded with just about anything associated with networking. IRMON (infered monitor - native), BTTRAY (vs 5.1.0.2800 works without KernelEx), MPREXE, RPCSS and browsers like Mozilla to name some. I think it is important that these functions are not stubbed with KernelEx as it would be a conflict and they should be redirected to SVRAPI.dll.

The picture is of duplicates shown by Ktree. It is clear that the entries I have put in on kstub01 for INFOCOMM are not duplicates and they have been included from another version of INFOCOMM to complement INFOCOMM from Win95. I think it is to do with the OS that file sorting does not cater for :: but I do not know. Even Dependency Walker does not sort the functions in order. I thought that I would bring this to your attention in case it is important.

Duplicates.png

Edited by Goodmaneuver
Removed HIICON comments because when I just checked the error is different and I might place info on kext-diy-kernelex-extensions
Link to comment
Share on other sites

  • 4 months later...

Kex22_26pre1.7z

Kex22: KernelEx 2022 v4.22.26 Preview #1

- Requires Kernelex 4.5.2 plus 4.5.2016.18 full update already installed

 

Quick Installation:

- Merge KexMpr-.reg and reboot to disable KernelEx.

- Copy all files into Windows\KernelEx folder.

- Merge KexMpr+.reg and reboot to enable KernelEx.

 

Features:

- KernelEx.dll Core resolver can skip all missing API's. Dummy Kexstubs definitions no longer required!

- New version format with Sheet.dll updated to correctly display old and new formats.

- Kstub825 now supports ordinal stub definitions. See Kstub825.ini for examples.

- ApiLog.exe and ApiHook.dll from v..18 required for Skipping included for convenience.

 

Full Installation on clean system:

- Install Unicows 1.1.3790.0 to Windows\System

- Install KernelEx-4.5.2.exe

- Merge KexMpr-.reg and reboot to disable KernelEx.

- Copy v4.5.2016.18 full update files to KernelEx folder.

- Copy all later update files (v..19-26) into KernelEx folder.

- Merge KexMpr+.reg and reboot to enable KernelEx.

 

Link to comment
Share on other sites

No, I'm not happy with new KernelEx.dll. It isn't usable in this pattern for me. Basically, I think it's a very good feature for testing, but not for normal, ordinary usage. It gives always a prompt for me, if an API is missing. Previously, non-essential APIs were ignored by the program. They are now becoming a problem by normal use. First a program freezes, then the OS freezes. In the majority of cases, however, then Ctrl Alt Del works.

It already begins on OS start with message:

"Kex22.KernelEx 2022 v4.22.26.1
AppHelp.dll is linked to missing export Kernel32.dll: BaseUpdateAppcompatCache.
Notice: Select [OK], runApiLog.exe, then rerun your program."

:(

I've BaseUpdateAppcompatCache still disabled in the kstub.ini, because I wasn't able to find a useful def so far. If enabled ME already hangs on start (using KernelEx.dll25). With the new file on prompt I can click OK and then it goes on, whats positive on the other hand.

Now e.g. "missing export msvcrt.dll: memmove_s" leads to freezings. So far I enabled it for testing only.

In my opinion this new feature should be switchable. An ongoing KernelEx.dll version change for testing is too cumbersome.

Sheet.dll: Not really tested, but level of desired API support didn't stick on first tries. It remains on the default setting. Maybe I must check something before?

Kstub.ini: Ordinals are generally undocumented. My question regarding the example: Is f1e usually a good def value?

Even if it sounds stupid after my comments in this post, thanks for all your work!! :yes:

Link to comment
Share on other sites

Great feedback. I'm hearing that the new prompts are confusing, but otherwise it's working correctly. The warnings are necessary on this first version. They will be phased out very quickly. I'm getting rid of the "Apilog.exe ... rerun" one now. It will revert to canceling the load silently. Done!

The switch to enable auto-stubbing of load-time missing API's is a running ApiLog.exe with logging (to console or file) enabled.

You do have an invalid AppHelp.dll in your path that fails to delay-load at each boot, however.

Sheet.dll already had some issues that still need to be fixed. Only the version string display code was updated. What version were you using previously?

The new ordinal support in Kstub825 is fully documented. The definitions work exactly the same as for named functions. The ordinal numbers just need to be specified as shown in the examples with leading zeroes as padding so they sort correctly.

I've also replaced ExitThread with ExitProcess so apps don't hang if a missing API gets called.

Kex22_26pre2.7z

Link to comment
Share on other sites

  • jumper changed the title to KernelEx 2022 (Kex22) Test Versions (4.22.26.2)
On 12/31/2022 at 9:10 AM, jumper said:

You do have an invalid AppHelp.dll in your path that fails to delay-load at each boot, however.

No, I ruled that out. I tried different versions, but the message "AppHelp.dll is linked to missing export Kernel32.dll: BaseUpdateAppcompatCache" still appeared on OS start. (using KernelEx.dllpre1). Version 26pre2 is OK.

XP file (MSGina) was another main culprit. I added this file a while ago, but I don't know anymore which program it was for. Until then the file was unremarkable and forgotten. After renaming Msgina some messages were gone (using KernelEx.dllpre1).  

On 12/31/2022 at 9:10 AM, jumper said:

Only the version string display code was updated.

Ok, you are right. I used version 19.

Edited by schwups
corrections
Link to comment
Share on other sites

I like K22_26pre1.7 KernelEx.dll better than K22_26pre2.7. The inclusion of the error message is a good improvement. When registering a module and there is a missing API then the pre1.7 KernelEX.dll message will display the missing API name. This is an additional message to that of the RegSvr32 message of 'a device attached to the system is not functioning' which still will appear after acknowledgement of the KEX message. Also as an example, I was wondering why DNSAPI.dll of later versions above Whistler 5.1.2411 would not work. 5.1.2428 added the Tracing functions. K22_26pre1.7 KernelEX.dll gave an error that said that TraceEvent was missing. KernelEX.dll K22_26pre1.7 thus proved KEX not to be working at logon for DNSAPI.dll. DNSAPI.dll needs to be fully compatible for WinME and is essential for the Wireless software for Netgear 311T and 311v3 interface cards. My assumption of a timing load problem will not show up as a KEX error though and in such cases Regall.exe which I got from ShowShifter 2.5 can stall and not terminate but using KernelEX.dll of K22_1.7 it terminated. If a module is not loading as previous sentence and no error is apparent then moving the module into the Windows directory from the System directory will often make it work.

Some more APIs to consider to add the the KEX base.

RtlIpv6StringToAddressExA (needed for earlier modules where both RtlIpv6StringToAddressExA and RtlIpv6StringToAddressExW are importing from NTDLL)

CM_Get_DevNode_Registry_PropertyA (The last missing API of CFGMGR32 for SETUPAPI)

EDIT:-I found out what was stopping some modules loading in the system folder. It was a MUI file and it was an earlier version than the module in question. Some parent modules were effected. Registering tests if module loads etcetera. I just deleted the MUI file to fix the problem.

Edited by Goodmaneuver
Purple text
Link to comment
Share on other sites

@ Goodmaneuver Yes, 26pre1 offers indeed advantages in testing and troubleshooting. The apphelp.dll of ReactOS doesn't have my problem dependency BaseUpdateAppcompatCache. I added two definitions to Kstub.ini only.

[Ntdll.dll]

RTLFindCharInUnicodeString=n4

RTLPcToFileHeader=n2

So I think can also make pre1 usable for the ordinary use by including renaming the corresponding affected files.

Link to comment
Share on other sites

  • 4 weeks later...

Once Kstub is set to not log then set to log again it does not log again. Going from logging [#prefs#]  Log=1 to Log=0 rebooting then trying to reinstate the logging with Log=1, it does not reinstate the logging.

Kstub01 never returned to logging but Kstub05 did after several reboots.

Edited by Goodmaneuver
Link to comment
Share on other sites

Just an app restart should be needed. That will reload all Kexstubs modules and reread their config files.

If you are using my VBS scripts to change the logging state, they need to be updated to support new module names.

Sort of related: I might be able to modify the Kex module loader to support custom load addresses. Then Kstub05.dll could just request an alternate load address in its config file instead of needing to be rebased.

Also, work is still on-going at a slow pace. Most of the requests since the last release are now implemented. I just need to back out some new features that are not yet ready, but holding up the release of the new bases/n files.

 

Link to comment
Share on other sites

On 2/9/2023 at 12:08 AM, Goodmaneuver said:

Kstub01 never returned to logging

It must be that Advapi32 redirects are not logging but when I redirected in system KnownDlls Advapi32 to Advapi86 then Advapi86 is logged. The redirects for Advapi32 are working though. (Tests done on DDR3 machine only.)

Link to comment
Share on other sites

  • 1 month later...

Hello

Has anyone tried KernelEx with any version of Norton Antivirus?

Apparently for me it always crashes at Kernel32.dll (stack error)

when I install Norton SystemWorks

I guess maybe its an AntiVirus thing?

Link to comment
Share on other sites

6 hours ago, AndrewK2685 said:

Hello

Has anyone tried KernelEx with any version of Norton Antivirus?

Apparently for me it always crashes at Kernel32.dll (stack error)

when I install Norton SystemWorks

I guess maybe its an AntiVirus thing?

This is the wrong topic to ask your question. It should be moved to:

On 12/26/2014 at 1:21 AM, jumper said:
Link to comment
Share on other sites

Thanks for that

I actually wanted to inform the developers of the newer version

that's why I posted here. Additionally, I'm talking about Norton versions 2003-2005,

which are officially supported by windows 98. I have these installed and working fine

but when I try to install and enable KernelEx by default, system crashes.

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