Jump to content

This could make more software Win95 compatible.


bizzybody

Recommended Posts

PureBASIC's author found that after updating his programming tools that it would no longer run on Windows 95, giving the linked to missing export KERNEL32.DLL: IsDebuggerPresent error.

 

He tried various hacks with the programming, fail. The solution that worked? Fake it. PureBASIC didn't actually use that anyway.

 

http://www.purebasic.fr/blog/?p=152

 

A fake KernelEX for Windows 95, to dummy up function calls that newer compilers stick into all their output even when they won't be used, would be quite useful.

 

I'd like to run CCleaner 2.x on Win95. I bet all it needs is an erzatz response to IsDebuggerPresent.

Link to comment
Share on other sites


Well, nice :thumbup, but seemingly that is a workaround to have the VC8 compiler run in Windows 95 and actually compile a program in it (and the program needs the added stub), so I am not sure how this can be "exported" or "generalized".  :unsure:

 

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

Most of us who use Windows 98/ME know how great KernelEx is with getting more modern software to run, but I still wonder why KernelEx hasn't been ported to Windows 95. Are there just too many missing functions in Win95 that it would take too long to implement them in KernelEx?

Link to comment
Share on other sites

Thanks.

Awareness of a solution is important.

 

You are welcome, I am sure :), knowing that you have a program that can do that is something that I had really missed, maybe in a next stage of awareness I might be able to learn what is the name of the program and what is the that  it can do.

 

jaclaz

Link to comment
Share on other sites

Thanks.

Awareness of a solution is important.

You are welcome, I am sure :), knowing that you have a program that can do that is something that I had really missed, maybe in a next stage of awareness I might be able to learn what is the name of the program and what is the that it can do.

jaclaz

I was assessing the OP's interest before going into more detail. I'm sure you could have figured it out by looking at my website.

The program is called DLLHOOK and it can satisfy the missing entry point the OP specified.

Link to comment
Share on other sites

I'd like to try it to see if a faux response to IsDebuggerPresent is all that is required to have CCleaner 2.x run on Windows 95B.

 

Another fix I found mention of was using a hex editor to find and change the IsDebuggerPresent text to another function call like GetCurrentProcess which has the same number of characters. However, that won't work on programs that self-test for corruption.

 

Something that just lurks waiting for calls to IsDebuggerPresent then returns False to satisfy the program that the function it won't be using "exists" would be a useful thing.

 

One thing about CCleaner 2.x that makes me think this may work is in its installed location is an executable named something like win95pop.exe (I don't have it installed now.) Doubleclick that and all it does is pop up the IsDebuggerPresent error message. Looks like a hack made specifically to stop people from using it on Windows 95. Hrmmm, I wonder what would happen if I just deleted that .exe?

 

Obviously the main executable calls that, or a dll or other file called by the main executable calls it, somewhere up the chain the call to the error popper executable would need edited to stop it.

Edited by bizzybody
Link to comment
Share on other sites

I'm sure you could have figured it out by looking at my website.

Who knows? :unsure:

Maybe I would have been tricked into believing that it was a released, final program and would not have looked among the pre-release ones.

 

The program is called DLLHOOK and it can satisfy the missing entry point the OP specified.

Good :), by applying a tiny amount of torture :w00t::ph34r: I managed to get the needed info, for the record:

http://rloew.x10host.com/prerel.htm

DLLHOOK $10 + $1 S&H

The DLLHOOK Program redirects API references to alternate DLLs and/or

Function Names. This allows Programs written for other Versions of Windows to

reach APIs that might be in different DLLs than in Windows 9X or to added

support DLLs or stub DLLs. A VXD Version is available where System Code needs

to be redirected as well. This Version is compatable with KernelEx Version

4.5.2 and can extend its capabilities.

 

You see, it was not too difficult, now the specific info is here for all to be seen.

 

jaclaz

Link to comment
Share on other sites

  • 2 weeks later...

http://blog.livedoor.jp/blackwingcat/archives/1452362.html

Umm. it is not correct, because the implement format is wrong so it may be crash program.

So, I created a library for VC++2005 for Win95 before.

 

 

// The cool Win95 hack, so the compiler can launch on it, even compiled with VS2005
// Basically, this function is needed by the libcmt.lib / gs_report.obj
//
BOOL __stdcall _imp__IsDebuggerPresent ()
{
return FALSE;
}

Timo kindly tested the new build and PureBasic launched and worked correctly on an old Win95. Victory!

 
Edited by blackwingcat
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...