Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Best way to check for 9x App compatibility?

- - - - -

  • Please log in to reply
18 replies to this topic

#1
Torchizard

Torchizard

    Junior

  • Member
  • Pip
  • 83 posts
  • Joined 21-August 13
  • OS:Windows 7 x64
  • Country: Country Flag

I'd like to know what you guys think is the best\most efficient way of checking if an application is compatible with 9x. Aside from trying to run it in 9x physically, I'm also aware of tools such as FileAlyser and PE Explorer's Dependency Scanner (although it doesn't say which file version is required) so what do you guys think is the best solution?




How to remove advertisement from MSFN

#2
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,593 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

"Run it in Windows 9x physically", no, wait, that is "aside", then "Run it in Windows 9x virtually" :whistle:

Seriously, now :).

It makes little sense IMHO to know if something is "compatible" with Windows 9x, any given program may be "compatible" with Windows 9x but not running in it (for a zillion possible reasons), just as an example an app may be "compatible" with 9x/Me, but only run in - say - Windows 98 SE or in Windows 95 but not in Windows98. :unsure:

Can you explain what your goal/ise of such a method would be?

 

jaclaz



#3
Torchizard

Torchizard

    Junior

  • Member
  • Pip
  • 83 posts
  • Joined 21-August 13
  • OS:Windows 7 x64
  • Country: Country Flag

"Run it in Windows 9x physically", no, wait, that is "aside", then "Run it in Windows 9x virtually" :whistle:

Seriously, now :).

It makes little sense IMHO to know if something is "compatible" with Windows 9x, any given program may be "compatible" with Windows 9x but not running in it (for a zillion possible reasons), just as an example an app may be "compatible" with 9x/Me, but only run in - say - Windows 98 SE or in Windows 95 but not in Windows98. :unsure:

Can you explain what your goal/ise of such a method would be?

 

jaclaz

What I meant by this is checking whether an app uses imports that only exist in a newer version of a DLL or other resource that only appears in a newer version of Windows. So what I mean is checking whether the app shows a message like "kernel32.dll not found" or similar at startup. 

 

So to rephrase my question, "Which is the best way to check for DLL dependencies and are DependencyWalker, FIleAlyser and that type of program reliable?"



#4
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 489 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
Dependency Walker 2.2.6000 is very good, but must be used to test on the target system. It can also profile an app after initial testing to determine whether there are any additional landmines (but this would fall under "run it in 9x physically").


>...(although it doesn't say which file version is required)...

This feature might be worthy of a project--I don't think there are any tools that can do this.

There are clues in the PE file headers and other structures about when each module was linked (created), for what target platform, by what linker (for crt version info), and possibly to the timestamps of other modules (if bound).

While most PE tools will indirectly provide most of this info, I don't know of any that summarize it in terms of a target system. And ImportPatcher is the only tool I know of that reports binding timestamps (valuable for this purpose).
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#5
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,593 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

 

So to rephrase my question, "Which is the best way to check for DLL dependencies and are DependencyWalker, FIleAlyser and that type of program reliable?"

 

Good. :)

A much better question :thumbup

BUT we have an issue here :w00t:

Dependency Walker can detect what DLL's (or other "connected" file) functions a given .exe is "connected" to (statically), but in order to "truly" know what the program "wants/needs" you need to "profile" the app (i.e. run it from within Dependency Walker) in order to see what is used dynamically.

To be of some use this needs to be done on both the "tested" OS/install (i.e. one in which the tool/program works fine) and on the "target" OS/install, because besides the mere existence of a .dll (or of a given function inside it) there are several other possible issues that may prevent the app/program to actually run in the "target" OS/install.

The extensive use of Dependency Walker in (example) making a BartPE plug-in (or a Winbuilder .script) or more simply have a given tool/app working on a very reduced system, either manually made or - say - nlited (and the actual "base" OS is the same) is already a nightmare (and far form being "easy" or "fully reliable") I would say that using it to establish when running it under - say - XP whether a given program is compatible with a much different OS (like 9x/Me) seems to me like a "lost cause".

If instead the idea is to use it as a sort of "sieve" to quickly determine if a given app is NOT compatible with win 9x/Me (because it invokes a .dll or a function inside it that is not present in those OS, then it may have IMHO some merits.

 

Maybe in better words, analyzing a file with one of these tools may give you proof (or a quick way to learn ) that something is "NOT compatible", but won't ever be "enough" to tell you that it will run under the "other" OS (which supposedly is the "final goal").

 

To list the imported .dll's (and functions) in a given PE file, you can probably want to try using besides the mentioned ones a tool like CFF Explorer Suite:

http://www.ntcore.com/exsuite.php

and - for dynamically loaded modules -  the nice, little Dynlogger:

http://www.ntcore.com/dynlogger.php

This thingy here:

http://www.silurian....spect/index.htm

is also a nice tool IMHO.

 

jaclaz



#6
M()zart

M()zart

    Member

  • Member
  • PipPip
  • 280 posts
  • Joined 17-June 08

I did it in the followind way - created a folder with Windows 98 dlls on my Windows 7, put the application DLLs and exes there, and used Total Commander FileInfo plugin with the applications' DLLs and Exes (it is better than Dependency Walker since it shows if the required DLL is delay loaded, which means that it probably isn't so necessary). In this way, fileinfo searched for import APIs in this folder with Win98 dlls instead of the system one. Then I've searched for missing imports in KernelEx source and old offline MSDN to know whether it is possible to get on Windows 98.

 

Additionally you will need the upx plugin for FileInfo to uncompress app exes on the fly or the UPX itself to uncompress upx-compressed exes manually, because after upx compression they show much less imports than they have.

 

This is not 100% correct way, since kernel32.dll imports cannot be tested (it still uses the current OS one), and sometimes even if all imports can be found, the app still won't work on real Windows 98, however in most cases this worked for me.



#7
LostInSpace2012

LostInSpace2012

    -

  • Member
  • PipPipPipPip
  • 578 posts
  • Joined 20-August 12
  • OS:none specified
  • Country: Country Flag

Donator

Um, I usually read any text files called "readme.txt", which usually tell you the system requirements. Sometimes if you go up to the help menu, there's a sub-menu that details the system requiremts... obviously if the program is loaded, then you meed at least the minimum requirements. I go to OldApps.com and click on the "windows me" icon to find the last working version for windows me. -- I know, this doesn't help much. I don't know why you'd want to spend time with DLLs and dependencies. What good is some buggy program that doesn't work right? And that is one thing that irks me, authors who don't list the system requirements for their software. IF they're too lazy to bother with it, than so am I.

#8
LostInSpace2012

LostInSpace2012

    -

  • Member
  • PipPipPipPip
  • 578 posts
  • Joined 20-August 12
  • OS:none specified
  • Country: Country Flag

Donator

Or else they put just "Windows" as the system requirements. *Slaps Head* *Facepalm* What windows? Windows 2.0? Windows 95? Windows 7. These morons don't get my money or time.

#9
M()zart

M()zart

    Member

  • Member
  • PipPip
  • 280 posts
  • Joined 17-June 08

Um, I usually read any text files called "readme.txt", which usually tell you the system requirements. Sometimes if you go up to the help menu, there's a sub-menu that details the system requiremts... obviously if the program is loaded, then you meed at least the minimum requirements. I go to OldApps.com and click on the "windows me" icon to find the last working version for windows me. -- I know, this doesn't help much. I don't know why you'd want to spend time with DLLs and dependencies. What good is some buggy program that doesn't work right? And that is one thing that irks me, authors who don't list the system requirements for their software. IF they're too lazy to bother with it, than so am I.

Well, I had some fun from running the apps on Windows 98 that were not intended to run on it.

 

Many developers didn't write Windows 9x in their requirements even if the application actually supported them even 5 years ago. And KernelEx allows to run even tha apps, that never supported Windows 9x. On the other hand, it happened several times when I downloaded an app from OldApps.com or from other such site - the site stated that the app supports Windows 9x, but in fact that wasn't true.



#10
LostInSpace2012

LostInSpace2012

    -

  • Member
  • PipPipPipPip
  • 578 posts
  • Joined 20-August 12
  • OS:none specified
  • Country: Country Flag

Donator

Point taken. Somebody should start a thread: Apps That Aren't Supposed To Work Under Win9x But Do

#11
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,259 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Here's the deal: Microsoft wants Windows9x dead because they (and others along this chain) cannot control such machines remotely.

 

Developers are somehow being blackmailed to drop Win9x support for that so-much-desired "windows logo" attribute. They wanna sell their stuff so they'll immediately drop any kind of 9x support in their applications just to get MS' clearance.

 

For many developers, "Windows" compatibility means whatever range of OS versions is still officially supported by MS. That's the easier approach, especially where those applications are cross-platform so there's also Linux, Mac, etc versions available.

 

Some developers who have little to no contact to "second-hand" world have no idea there still are many Win9x users around the world, for whatever reason. They would drop 9x support just for convenience or due to hardware/software upgrade, where VC6 or similar would be unsupported. In limited situations, when contacted, they would respond positively to Win9x compatibility requests.

 

Progress has knocked down the door and we're caught in a corner. This is not a 'live and let live' world. We do whatever we can to survive...



#12
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,593 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Here's the deal: Microsoft wants Windows9x dead because they (and others along this chain) cannot control such machines remotely.

Does the conspiracy comprise also NT 4.00 and 2K?

 

jaclaz



#13
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,259 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

The NT-based systems are far more vulnerable. But since they are mostly if not exclusively used in business environments, I figure there may also be other ways to get to them. Win9x has usually been (and probably is) used in home environments, harder to reach individually.

 

Don't take this for granted - I'm a huge sci-fi fan and a known paranoid. Nevermind my paranoia gets backed up every once in a while by facts... :whistle:



#14
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,593 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

The NT-based systems are far more vulnerable. But since they are mostly if not exclusively used in business environments, I figure there may also be other ways to get to them. Win9x has usually been (and probably is) used in home environments, harder to reach individually.

 

Don't take this for granted - I'm a huge sci-fi fan and a known paranoid. Nevermind my paranoia gets backed up every once in a while by facts... :whistle:

I am not trying to doubt (or limit the amount of) your paranoia :).

 

I was only trying to establish the borders of the conspiracy, i.e. I guess everyone will agree that Vista :ph34r: and later are part of it, many have doubts on XP :w00t:, you are now stating than 9x is outside it, the point is where exactly NT4.0, 2K and Me :whistle: are in this.... (inside or outside the big remote control conspiracy)

 

jaclaz



#15
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,259 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

In regard to those OS versions, an educated opinion should be offered by people that have intensively used them and/or analyzed their behavior. Personally I never had the chance to use NT or 2000 and the period I had a ME setup was quite short because that respective HDD died quite soon. So I can only speculate. I like that - prove me wrong, people. ;)

 

I know you're teasing me and it's OK because I do have a healthy sense of humor. A serious and argumented talk might not be appropriate for this board. We can do that in a really free place or a peer-to-peer talk. I'd like to revive my long-forgotten Italian. :)



#16
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,593 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

I know you're teasing me and it's OK because I do have a healthy sense of humor. A serious and argumented talk might not be appropriate for this board. We can do that in a really free place or a peer-to-peer talk. I'd like to revive my long-forgotten Italian.  :)

Do you mean that they are monitoring MSFN or that MSFN is not a really free place? :unsure: :ph34r:

 

I would be glad to try and help you make your rusty italian a little bit brighter, PM me where and when and we can "talk" (please no chats or similar).

 

jaclaz



#17
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,259 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Well, let's not imply anything, shall we? ;)

I'll PM you these days, as soon as I get a few things off my mind. It's quite a busy time of the year...



#18
LostInSpace2012

LostInSpace2012

    -

  • Member
  • PipPipPipPip
  • 578 posts
  • Joined 20-August 12
  • OS:none specified
  • Country: Country Flag

Donator

I agree with DrugWash 100%. The personal computer won't be "your" personal computer in probably another 5 years... not when "your" data is saved in someone else's cloud. Eventually you'll probably have to pay a liscence fee or bill just to have the ability to open and save your own files. Because they'll be stored elsewhere... anywhere but your own computer. Oh well, at least they're not forcing people yet to own computers. I can still live with my books and non-trackable technology. That's another thing... E-Books! You're not only going to have to pay for the books, you'll have to pay for the electricity to read those books. Of course, they'll probably need you to "upgrade" whatever bookreader every 5 years. You know, to keep up with the Jones'. "All is vanity." -Ecclesiastes.

#19
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,259 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

In regard to the future, everything goes. Maybe we can't grasp the "bigger plan".  Maybe it's all as it should be. Or maybe not.

However, I must apologyze for hijacking this thread with a completely off-topic discussion.  :blushing:  My friends, please let's stay on topic. And please do not capitalize that w in my nickname - there are no such implications intended. Thank you!






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users