Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for NT4 SP6a? #7

Open
Gianluca18092004 opened this issue Apr 11, 2024 · 10 comments
Open

Support for NT4 SP6a? #7

Gianluca18092004 opened this issue Apr 11, 2024 · 10 comments

Comments

@Gianluca18092004
Copy link

I know that NT4 is not 9x, but it is the counterpart to Windows 95 and only supports up to net framework 1.1, which is very basic.
I tried installing it on an NT4.0 SP6a installation with IE6SP1 installed and it doesn't work. On the other hand, great job supporting Windows 95.

@itsmattkc
Copy link
Owner

I do agree that NT 4 support would be ideal, though I've never tested it so I'm not sure what the roadblocks are yet. If you get any error messages, feel free to post them here since they'll probably help with diagnosing!

@Gianluca18092004
Copy link
Author

Gianluca18092004 commented Apr 12, 2024

Windows NT-2024-04-11-23-33-17
Windows NT-2024-04-11-23-39-19
When starting applications (whether WinForms or Console) an error appears about a dependency called CreateToolhelp32Snapshot that does not exist in kernel32. According to Dependency Walker, dependencies are missing in mscorwks.dll and mscoree.dll, in both kernel32, advapi32 and ole32.

@GravisZro
Copy link

CreateToolhelp32Snapshot was first introduced in Windows 2000 which means it's recognizing the NT kernel. Someone wrote a set of functions that have very similar functionality that could help understand how to implement this function.

@GravisZro
Copy link

It looks like you could just use the implementation from ReactOS. https://github.com/reactos/reactos/blob/master/dll/win32/kernel32/client/toolhelp.c

@itsmattkc
Copy link
Owner

I did some work on this in 86d0cae (the CreateToolhelp32Snapshot is a red herring for a different issue) and it gets a little further, but unfortunately gets caught in another "unhandled exception" when you try to run a WinForms app. Might have to pull out a debugger again (but thankfully I've been clued into better stuff than WinDbg)

@whindsaks
Copy link

whindsaks commented Apr 19, 2024

95 only has toolhelp.
NT4 only has performance counters (and the undocumented NT API) but the psapi redistributable was fairly popular and easier to use.
2000 has all of the above.

@RaulMerelli
Copy link

RaulMerelli commented Jun 28, 2024

I don't know if this could be useful, but I found this project, NT4EXkernel: https://msfn.org/board/topic/183418-i-am-trying-to-create-an-extended-kernel-for-nt4/page/2/ . I tested it in my NT4 VM and i don't get the CreateToolhelp32Snapshot error anymore, but it now misses "CryptEnumProvidersA" from Advapi32.dll. As far as I know, this entry point was patched in wrappers of dotnet9x, but because of my limited knowledge I don't know how to apply it on top of the Advapi32.dll from NT4EXkernel.
image

@whindsaks
Copy link

CryptEnumProvidersA

Which version of IE do you have? First install IE4 with the shell update, then install 6.0 SP1.

@RaulMerelli
Copy link

RaulMerelli commented Jun 28, 2024

CryptEnumProvidersA

Which version of IE do you have? First install IE4 with the shell update, then install 6.0 SP1.

I have installed in order: NT4 SP6A, NT4 Q299444I Patches, IE4 with the new file Explorer, IE6 SP1 and then NT4EXkernel. The latter replaces the Advapi32 DLL, but even in the original file the entry point is missing.

@RaulMerelli
Copy link

I managed to compile the advapi32 DLL wrapper (I used the MSVC 4.20 as suggested, with the NT4 SDK) and put it in the Net Framework folder. I don't know if I compiled it right, but this is what I get now:

image

I will go no further with my tests, since I am unable to debug compiled code that is not coming from managed code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants