Jump to content

Kext: DIY KernelEx extensions


Recommended Posts

Running µTorrent 3.0: Main Problem: The downloads aren't saved - The download folder remains empty.

Kstub822.log: NTdll.dll:NTAllocateVirtualMemory=t6=

Configuration: stable Kstub822  - *ActCtx* functions commented out

Supplement:

The ImportPatcher generats this ini µTorren#3.0.0 26473.zip file of µTorrent 3.0 exe. It lists many missing functions, but in comparison to the generated file of version 2.0.4 (stable with KernelEX) there are only seven functions more.

The difference:

[ntdll.dll]

NtStopProfile=

RtlUnicodeToOemN=

_chkstk=

RtlAdjustPrivilege=

NtSetIntervalProfile=

NtStartProfile=

NtSetInformationProcess=

[Patches needed]

PSAPI.DLL=Functions, Unbind

This appears to be a debug build (_chkstk and profiling apis). Perhaps it's a beta???

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

Link to comment
Share on other sites


You'll save yourself some sweat by checking first which of those are already handled by KernelEx. I can spot several at a glance.

Hi loblo,

If that's true, then something's wrong with my system (hey, that's a distinct possibility!). I checked them all with 'ktree9'.

Joe.

Link to comment
Share on other sites

You'll save yourself some sweat by checking first which of those are already handled by KernelEx. I can spot several at a glance.

Hi loblo,

If that's true, then something's wrong with my system (hey, that's a distinct possibility!). I checked them all with 'ktree9'.

Joe.

There must be something wrong then as:

DecodePointer

EncodePointer

VerifyVersionInfoA

VerSetConditionMask

and perhaps others as those are only those I immediately spotted by looking at your list. I've just checked the 4 of them in Ktree and they all appear here.

Link to comment
Share on other sites

There must be something wrong then as:

DecodePointer

EncodePointer

VerifyVersionInfoA

VerSetConditionMask

and perhaps others as those are only those I immediately spotted by looking at your list. I've just checked the 4 of them in Ktree and they all appear here.

Hi loblo,

Yes, you're right! I've just deleted "GetUserDefaultUILanguage", "GetModuleHandleExA", VerSetConditionMask", "VerifyVersionInfoA", "DecodePointer", "EncodePointer" and "AllowSetForegroundWindow" from the list. I don't know why they weren't showing up last night, but they do today ("VerifyVersionInfoA" even shows multiple times). I might miss one or two, but not that many. Perhaps some subtle stability issue, even though shutdown was uneventful?

Joe.

Link to comment
Share on other sites

Ktree reads the KernelEx install folder from the registry, reads Core.ini to get the [DCFG1] content= DLL list, then loads each DLL from within the install folder and calls get_api_table() on it. Any errors are reported in the Core.ini section (too late to check now!).

Assuming you had KernelEx installed, Core.ini was not open in some app that read-locks it, and you weren't booted with an experimental Core.ini, I don't see why kexbases (DecodePointer, etc.) wouldn't be included in the report. Renaming the DCFG1 section to BASE like I tried several days ago breaks that part of Ktree; I had to hex a special version of Ktree to get it to work. Also, modifying the contents= line itself could interfere if there was a typo on the names of standard files.

> "VerifyVersionInfoA" even shows multiple times

KernelEx provides a custom version for each profile / OS.

Link to comment
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

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.

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

Link to comment
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. :)

Link to comment
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
Link to comment
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

Link to comment
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
Link to comment
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?

Link to comment
Share on other sites

  • 1 month later...

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