• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
jumper

Kext: DIY KernelEx extensions

338 posts in this topic

> µTorrent 3.0.0 build 26473 - According to Filehippo/horse is it no beta.

According to Oldapps.com, uTorrent 3.0.1 is Build 25815. :unsure:

You might also want to try these last Supported Versions of uTorrent for Windows Systems:


  • Windows ME . . .
uTorrent 3.0 Build 25460
Windows 2000 . . uTorrent 3.0 Build 25824

AFAIK the latest version running properly under 98/ME is 2.04. Filehippo does a great job at archiving old versions of software but are often rather inaccurate in the OS requirements they mention. Not sure why people are so eager to use v3 as v2.04 does such a great job.

Btw schwups has posted the Win ME iphlpapi functions before I had the time to do it myself, thanks schwups.

0

Share this post


Link to post
Share on other sites

> Btw schwups has posted the Win ME iphlpapi functions before I had the time to do it myself, thanks schwups.

Ditto! :D

I was able to download ver. 4.90.3001.2 from MDGx per this SP2RC3 discussion:

> I [MDGx] suggest using newest iphlpapi.dll [build 4.90.3001.2] supported by 98/98SE/ME

I haven't tested it yet, but if 4.90.3001.2 is good on SE, Iphlpapi5 will require it instead of trying to wrap any of multiple originals.

0

Share this post


Link to post
Share on other sites

> µTorrent 3.0.0 build 26473 - According to Filehippo/horse is it no beta.

According to Oldapps.com, uTorrent 3.0.1 is Build 25815. :unsure:

You might also want to try these last Supported Versions of uTorrent for Windows Systems:

  • Windows ME . . .
uTorrent 3.0 Build 25460
Windows 2000 . . uTorrent 3.0 Build 25824

The latest version of µTorrent that works on ME and 98 is version 1.85. The information on oldApps is just plain wrong. With KernelEX 4.5.x  the version 2.0.4 runs fine. :)

Not sure why people are so eager to use v3 as v2.04 does such a great job.

Loblo -  I like 2.0 more than 3.x. Version 3 looks very retro. I use version 2.0.4. But this is a fundamental question for me. We want adapt 98 and ME to the present day and the future. Thats KernelEX. How long will, for example µTorrent 2 do its job? Several years old browsers don't show all the site contents. :)

0

Share this post


Link to post
Share on other sites

K452stub - monitor and improve KernelEx' pure stubs.

Core.ini usage: contents=Kstub822,std,kexbases,kexbasen,K452stub

* K452stub.dll is a clone of Kstub822.dll that has been hexed to read from K452stub.ini and log to K452stub.log.

* K452stub.ini contains stub definitions that are equal to or slightly better than the stubs provided by KernelEx.

By monitoring K452stub.log, we can learn which KernelEx stubs are actually being called (not just satisfying the loader). Those stubs then become candidates for better stub or forward definitions or actual implementations.

To override kexbasen and kexbases, K452stub must be listed last on the contents line.

Sample output:


[K452stub]
= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =
= Kernel32.dll:HeapSetInformation=z4 ;? =
= Advapi32.dll:CryptAcquireContextW=z5 ;? =

Definitions with a return value or ending in ";?" are cloned from the KernelEx source and have not been researched further.

Edited by jumper
0

Share this post


Link to post
Share on other sites

Btw I added a couple of minor definitions to my KexStub ini file:

[Kernel32.dll]

AttachConsole=f1

Works with Xaos 3.5 http://wmi.math.u-szeged.hu/xaos/doku.php

[sHELL32.DLL]

PathCleanupSpec=f1

Works with Lite Radio 2.3: http://hase85.wordpress.com/2013/01/30/light-radio-v2-3-released/

In both cases any values would work so I did put f1 for both at the end, I am not sure if it's optimal as I frankly can't figure out those return codes yet.

Thanks! :hello: I'll add these definitions:


[Kernel32.dll]
AttachConsole=f1e ;false/fail, one param, set error

[Shell32.dll]
PathCleanupSpec=z2 ;zero flags, 2 params

0

Share this post


Link to post
Share on other sites

K452stub - monitor and improve KernelEx' pure stubs.

Core.ini usage: contents=Kstub822,std,kexbases,kexbasen,K452stub

* K452stub.dll is a clone of Kstub822.dll that has been hexed to read from K452stub.ini and log to K452stub.log.

* K452stub.ini contains stub definitions that are equal to or slightly better than the stubs provided by KernelEx.

By monitoring K452stub.log, we can learn which KernelEx stubs are actually being called (not just satisfying the loader). Those stubs then become candidates for better stub or forward definitions or actual implementations.

To override kexbasen and kexbases, K452stub must be listed last on the contents line.

Sample output:


[K452stub]
= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =
= Kernel32.dll:HeapSetInformation=z4 ;? =
= Advapi32.dll:CryptAcquireContextW=z5 ;? =

Definitions with a return value or ending in ";?" are cloned from the KernelEx source and have not been researched further.

My first result:

[K452stub]

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Kernel32.dll:SetDllDirectoryA=z1 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Advapi32.dll:CryptAcquireContextW=z5 ;? =

= Advapi32.dll:CryptAcquireContextW=z5 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:SetDllDirectoryW=z1 ;? =

= Kernel32.dll:GetProcessIoCounters=z2 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:SetDllDirectoryW=z1 ;? =

= Kernel32.dll:GetProcessIoCounters=z2 ;? =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Kernel32.dll:SetDllDirectoryW=z1 ;? =

= Kernel32.dll:GetProcessIoCounters=z2 ;? =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Kernel32.dll:HeapSetInformation=z4 ;? =

= Advapi32.dll:CryptAcquireContextW=z5 ;? =

= Advapi32.dll:CryptAcquireContextW=z5 ;? =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

= Advapi32.dll:OpenSCManagerA=r0xCAFEs3 =

Some more:

= Advapi32.dll:OpenSCManagerW=r0xCAFEs3 =

= User32.dll:SetLayeredWindowAttributes=z4 ;? =

= Kernel32.dll:IsValidLanguageGroup=z2 ;? =

Edited by schwups
0

Share this post


Link to post
Share on other sites

Keep up the good work guys maybe i'll be able to play starcraft 2 on windows 9x someday ;)

0

Share this post


Link to post
Share on other sites

For StarCraft II®: Wings of Liberty™, the Blizzard store says:

PC Minimum System Requirements*:


  • Windows® XP/Windows Vista®/Windows® 7 (Updated with the latest Service Packs) with DirectX® 9.0c
    2.6 GHz Pentium® IV or equivalent AMD Athlon® processor
    128 MB PCIe NVIDIA® GeForce® 6600 GT or ATI Radeon® 9800 PRO video card or better
    12 GB available HD space
    1 GB RAM (1.5 GB required for Windows Vista®/Windows® 7 users)
    DVD-ROM drive
    Broadband Internet connection
    1024X720 minimum display resolution
    *Note: Due to potential programming changes, the Minimum System Requirements for this game may change over time.

PC Recommended Specifications:


  • Windows Vista®/Windows® 7
    Dual Core 2.4Ghz Processor
    2 GB RAM
    512 MB NVIDIA® GeForce® 8800 GTX or ATI Radeon® HD 3870 or better

Looks like a 9x system can just slide in with the minimum specs. Perhaps it's already possible to run it--have you (or anyone) tried? What dependencies remain to be added?

0

Share this post


Link to post
Share on other sites

I can't install new Foxit Reader 6.0.2.407. Message: "Runtime Error (at -1:0) Cannot Import dll: C:\Windows\Temp\...\FXCUSTOM.dll"

But there is a possibility to start and run it. I installed it on XP SP2 (SP1 isn't enough), copied the Foxit program folder onto the Win ME desktop. The Foxit Reader.exe needs Kstub822 with following definitions

[KERNEL32.dll]

ReleaseActCtx=z1

CreateActCtxW=p1e0

ActivateActCtx=o2e0

DeactivateActCtx=o2e0

to start. Better run it with comp.mode XP.

The ImportPatcher complains about jrsysMSCryptoDll.dll and imgseg.dll, too. The jrsysMSCryptoDll.dll is located in the plugin folder.

Printing isn't possible anymore. => The DBGHELP.dll of ME is too old. Upgrade required.

As a reminder: I'd installed already MSXML 4.0 SP2 for version 5 and I've the winhttp.dll of XP in my system folder.

Edited by schwups
0

Share this post


Link to post
Share on other sites

Latest Flash Player (11.7.700.169) requires:

[Gdi32.dll]

GdiAlphaBlend=

I can run and use RealWorldPaint without issues using:

[Ole32.dll]

HICON_UserFree=

HICON_UserMarshal=

HICON_UserSize=

HICON_UserUnmarshal=

Btw, it seems they pulled Foxit Reader 6 out, I couldn't find a working download link for it.

0

Share this post


Link to post
Share on other sites
Btw, it seems they pulled Foxit Reader 6 out, I couldn't find a working download link for it.

On filehorse.com or chip.de.

0

Share this post


Link to post
Share on other sites
On filehorse.com or chip.de.

Well, it seems Google isn't as good as it used to be...

It's not on Foxit's own website as of now anyway so it probably means they are still adjusting things for that version.

I saved myself lots of time and headaches unpacking the installer with Inno Unpacker btw.

It's running fine in Win2k compat mode here without a need for KexStub but I don't think I'll be using this version if they keep the atrocious interface they've adopted here, at first I thought the UI was buggy but then I realized it was just a Windows 8 style interface... :w00t:

Edited by loblo
0

Share this post


Link to post
Share on other sites
On filehorse.com or chip.de.

Well, it seems Google isn't as good as it used to be...

It's not on Foxit's own website as of now anyway so it probably means they are still adjusting things for that version.

I saved myself lots of time and headaches unpacking the installer with Inno Unpacker btw.

It's running fine in Win2k compat mode here without a need for KexStub but I don't think I'll be using this version if they keep the atrocious interface they've adopted here, at first I thought the UI was buggy but then I realized it was just a Windows 8 style interface... :w00t:

You can change the interface back to the classic appearance. Version 6 is slower than version 4 and 5 for me.

0

Share this post


Link to post
Share on other sites

Latest Flash Player 11.7.700.169 works for me, if I add [Gdi32.dll] GdiAlphaBlend=z11 to the Kstub822.ini. Probably it isn't the best stub.

Thanks loblo!

Edited by schwups
0

Share this post


Link to post
Share on other sites

Latest Flash Player 11.7.700.169 works for me, if I add [Gdi32.dll] GdiAlphaBlend=z11 to the Kstub822.ini. Probably it isn't the best stub.

It works for me too with no definition so far. I prefer to leave it blank for as long as the function isn't actually called.

You can change the interface back to the classic appearance. Version 6 is slower than version 4 and 5 for me.

Thanks I'll have to check this out more closely then. I wasn't using v5 already because I didn't like the skinning too much and didn't find an option to use it without but I must have overlooked this I guess.

0

Share this post


Link to post
Share on other sites

Kstub822 is incompatible with VLC Player 2.0.6 released yesterday. Obviously new API's are called. The Kext prompt appears during installation: Msvctr.dll:___lc_codepage_func=; Update DLL! The setup finished successfully if I cancel the prompt . The prompt appears again on start, but no possibility of the prompt works. The Player starts, if Kext isn't installed.

Problem: flv doesn't work anymore and mp4 => only audio.

Edited by schwups
0

Share this post


Link to post
Share on other sites

Kstub822 is incompatible with VLC Player 2.0.6 released yesterday. Obviously new API's are called. The Kext prompt appears during installation: Msvctr.dll:___lc_codepage_func=; Update DLL! The setup finished successfully if I cancel the prompt . The prompt appears again on start, but no possibility of the prompt works. The Player starts, if Kext isn't installed.

As a work around I commented out all msvcrt-entries in kstub822 ! But hopefully Jumper can fix this.

0

Share this post


Link to post
Share on other sites

Kstub822 is incompatible with VLC Player 2.0.6 released yesterday. Obviously new API's are called. The Kext prompt appears during installation: Msvctr.dll:___lc_codepage_func=; Update DLL! The setup finished successfully if I cancel the prompt . The prompt appears again on start, but no possibility of the prompt works. The Player starts, if Kext isn't installed.

Problem: flv doesn't work anymore and mp4 => only audio.

There is no problem with Kstub here. It's just telling you should update/replace your msvcrt by msvcr70 or msvcr71. :)

This substitution has been discussed quite a bit in this thread if I am not mistaken.

If you don't want to do this systemwide, you can do it on a per application basis but this requires deleting the msvcrt entry in the registry's knowndlls key.

VLC 2.06 will run fine after that and so will quite a few other recent apps which rely or have dlls relying on functions non-existing in vanilla 9x msvcrt such as the latest KMPlayer.

Edited by loblo
0

Share this post


Link to post
Share on other sites

Kstub822 is incompatible with VLC Player 2.0.6 released yesterday. Obviously new API's are called. The Kext prompt appears during installation: Msvctr.dll:___lc_codepage_func=; Update DLL! The setup finished successfully if I cancel the prompt . The prompt appears again on start, but no possibility of the prompt works. The Player starts, if Kext isn't installed.

Problem: flv doesn't work anymore and mp4  => only audio.  

There is no problem with Kstub here. It's just telling you should update/replace your msvcrt by msvcr70 or msvcr71.   :)

This substitution has been discussed quite a bit in this thread if I am not mistaken.

If you don't want to do this systemwide, you can do it on a per application basis but this requires deleting the msvcrt entry in the registry's knowndlls key.

VLC 2.06 will run fine after that and so will quite a few other recent apps which rely or have dlls relying on functions non-existing in vanilla 9x msvcrt such as the latest KMPlayer.

Thanks. Particularly it was discussed in the topic "ImportPatcher". I confirm that version 2.0.6 works, if I paste  "msvcr71.dll" renamed to "msvcrt.dll" in the systemfolder (replacing). So that I have the msvcr71.dll with different names twice. Also flv and mp4 works.

0

Share this post


Link to post
Share on other sites

Hello, I've managed to prevent KernelEx from starting by adding the following definition to KxStub822.ini:

[msvcrt.dll]

_ctype=>msvcr70:

On reboot I get an error message saying that mprexe caused an error in kernelex.dll and KernelEx doesn't load, no programs relying on it work.

The msvcrt in the sys dir wasn't vanilla msvcrt but a renamed msvcr71, there is no msvcrt entry in the registry knowndlls key and I had no other msvcrt entries in KxStub.ini.

I did that after trying to run the latest version of Aspell which requires this function and that msvcr71 doesn't provide.

I've now removed this entry from KxStub822.ini and am using msvcr70 as a replacement for msvcrt, Aspell runs fine and no other program I have which requires msvcrt/msvcr7x substitution appear broken.

msvcr71 is version 8.0.21213.0 and msvcr70 is version 7.0.9981.0, they are the most recent I have and I didn't try with other versions so not sure if it would always happen.

Is there something I did wrong with the definition or is it a bug/incompatibility?

@Schwups: Yes the discussion was mostly in the import patcher thread, sorry for not remembering that.

Edited by loblo
0

Share this post


Link to post
Share on other sites

> I did that after trying to run the latest version of Aspell which requires this function and that msvcr71 doesn't provide.

_ctype is a variable, not a function, so can't be stubbed / redirected. :(

> On reboot I get an error message saying that mprexe caused an error in kernelex.dll and KernelEx doesn't load, no programs relying on it work.

Perhaps something is dynamic-loading _ctype and trying to use type macros on the resulting function pointer instead of falling back to using the CRT functions. :unsure:

> I've now removed this entry from KxStub822.ini and am using msvcr70 as a replacement for msvcrt, Aspell runs fine and no other program I have which requires msvcrt/msvcr7x substitution appear broken.

It now looks like msvcrt70 is the better choice for msvcrt substitution. Good work! :thumbup

:) I checked my system and found these versions of MSVCRT that export _ctype:


  • MSVCRT20 2.11.000
    MSVCRT40 4.22.0000
    MSVCR ..... 6.10.8924.0
    MSVCR ..... 6.10.9848.0
    MSVCR70 .. 7.00.9981.0

:( And these versions that don't:


  • MSVCR71 7.10.3052.4
    MSVCR71 7.10.7031.4
    MSVCR80 8.00.50727.762
    MSVCR90 9.00.21022.8
    MSVCR100 10.00.30319.1
    MSVCR100 10.00.40219.1

> msvcr71 is version 8.0.21213.0 and msvcr70 is version 7.0.9981.0, they are the most recent I have and I didn't try with other versions so not sure if it would always happen.

I haven't seen this version of msvcr71, but it must come bundled with msvcr80. Msvcr80 has a dependency on msvcrt for _getdrives, so perhaps that msvcrt is worth a look.

0

Share this post


Link to post
Share on other sites

I just realized that this latest version of Aspell is from 2002 and would appear to run with any 9x msvcrt (oldest msvcrt I have archived which is version 4.20.0.6164 has _ctype) so yeah substituting msvcr71 certainly wasn't the better choice, hopefully there is no such hole in msvr70.

By adding the definition below and a few other tricks, I have installed Java 7 update 17 (currently latest) and run java programs with it without apparent issues. I'll make a separate topic about it later on.

[Advapi32.dll]

AddAccessDeniedAceEx=z5e

0

Share this post


Link to post
Share on other sites
By adding the definition below and a few other tricks, I have installed Java 7 update 17 (currently latest) and run java programs with it without apparent issues. I'll make a separate topic about it later on.

[Advapi32.dll]

AddAccessDeniedAceEx=z5e

Does Java next generation work for you, too?

Sumatra PDF 2.3 released:

[DBGHELP.dll]

SymFromAddr=z4

is required to run it.

BTW: I can't access the page "compatible applications" on the Wiki these days, if I'm not logged in. Also the page Popular Pages offers an overview.

0

Share this post


Link to post
Share on other sites

Sumatra PDF 2.3.1 released:

Reverted back to SSE support for old computers. SSE2 support was required and introduced with previous version 2.3 to make Sumatra faster.

0

Share this post


Link to post
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.