If you have never had the pleasure of dealing with the software called Senior Systems, consider yourself lucky!By all accounts, my calendar says it is 2009, not 1995. I have just spent the last few days with the tech support at Senior Systems trying to track down issues with the software they write. It would seem that the "installer" - I use the term very loosely - copies older version of core dll's from the install package to windows\system32!
Of course Windows XP SP2 comes in to save the day with Windows File Protection - (need to hack the sfc_os.dll to turn it off these days it seems at least post XP service pack 2). If you wan't to have fun and try, see this well written article:
(big fat warning, if you don't know how to use a binary editor or don't have a current backup of your system - and lots of time to install and or restore the system, don't even attempt this!) http://www.pctools.com/guides/registry/detail/790/
So anyway, back to our story...
The DLL they replace is ctl3d32.dll (The version from Microsoft Visual Studio, and not the version that Windows XP ships with). It would seem that Windows NT did not ship with that DLL so I suppose back then they might have been able to install the DLL for use on NT, but XP? http://support.microsoft.com/kb/108433
Not sure what prompted them to do this file replacement. Could they not just put the dll in the programs directory and do the old "start in" shortcut trick?
The version number of the DLL is the same as the core windows component, but the date, time and file size differ (as does the md5sum), so we know that it is a replacement file that gets put in place (temporarily) when the installer runs (you have to be quick to copy it elsewhere to prove it).
Here are the details on the original file for a XP system post SP3:
ctl3d32.dll 8/23/2001 7:00 am 27,136 bytes Version: 2.31.0.0 md5sum: 71c4a5da6a940ddbf17c99f0b7611f06Here is the one they try to replace it with:
ctl3d32.dll 1/29/2009 6:19 am 26,624 bytes Version: 2.31.0.0 md5sum: cb3c1a59633b1814369b6dd885bb8a5bWhat the? They have the version from Windows 95? http://www.techadvice.com/tech/C/CTL3D32.htm
In case that link get broken in future, here is an excerpt from that page showing size of file and version numbers:
* download CTL3D32.DLL for Windows 95 ( size 26,624 bytes, ver 2.31 ) * download CTL3D32.DLL for Windows 98 ( size 45,056 bytes, ver 2.31 ) * download CTL3D32.DLL for Windows NT 4.0 - ( size 27,136 bytes, ver 2.31 )So you can see that from the file size that they are replacing the dll with a version for Windows 95, probably not a good idea. If someone has a good md5sum from the Windows 95 dll, feel free to shoot it to me and I will update this post (email kb@penguinpackets.com)
Also notice that Microsoft was to lazy to update the version of the dll when they released the newer version with XP, I suppose it is to give that coveted "but I can run my Windows 95 Latin translator under Windows XP and it runs fine" feel.
The replacement comes from the stashed version of the dll from the original install here: mono c:\windows\system32\dllcache] If you think you can just replace it, you will be wrong! I was attempting this back in 2000 on Windows 2000 and you will need to disable the Windows File Protection before you can swap files!
So if you call Senior Systems, they will want you to re-run the setup program (wsetup.cmd) and of course this fixes the issue - by breaking Windows - (until of course the Windows File Protection replaces the DLL the next time it is not locked!). So kind of a chicken and egg. They wrote the software to act more like spyware than an application and don't want to hear about any interaction with other software (even core Windows components). If you try to describe the issue to them, they just blame any faults in other software that relies on the dll being in it's original state as a fault of the other software!
I suppose the ultimate "fix" for folks that write software like it was 1995 would be to install a virtual machine on the end users workstation to allow just that mentally deficient app run on a "clean" workstation that has nothing other than a non-upgraded copy of XP with Windows File Protection turned off!