Unrar on Windows 2000

English support forum

Moderators: white, Hacker, petermad, Stefan2

User avatar
j7n
Member
Member
Posts: 171
Joined: 2005-08-07, 21:56 UTC

Unrar on Windows 2000

Post by *j7n »

I noticed that it is not possible to read RAR archives (rar2 or rar3) using Total Commander 8.51 on Windows 2000. I get the message "Error in packed file".

There is an older version of unrar9x.dll included, but it is not automatically selected on Win2000. If I rename this file to unrar.dll, archives can be unpacked again.

Loading this DLL is not possible because "The specified procedure cannot be found" (which apparently is TzSpecificLocalTimeToSystemTime). Windows 2000 has been updated SP4 + USP5.1.
#148174 Personal license
Running Total Commander v8.52a
User avatar
Dalai
Power Member
Power Member
Posts: 9409
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

See this discussion for some more info and a solution/workaround: http://ghisler.ch/board/viewtopic.php?t=40470

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
j7n
Member
Member
Posts: 171
Joined: 2005-08-07, 21:56 UTC

Post by *j7n »

I'm glad I caught the recompiled file download before it expired. Thank you.

Both files version 5.1.100.1067 and 5.10.4.1223 (recompiled) work and can also unpack rar5, which I did not count on.

It seems that until RAR changes the file format again to rar6, which may never happen, or makes substantial improvements to unrar, the older version could be used as it works on all systems (both DLLs also seem to work fine on XP).
#148174 Personal license
Running Total Commander v8.52a
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

Is there a larger interest for such DLL with RAR5 support for Win2k?
I could try to compile the newest 5.30.1 and officially upload it to totalcmd.net.
(but there are probably only minor modifications, compared to the older versions)

In any case, I doubt that Christian would redistribute such "unofficial" DLL with TC9+, even though the license would allow it.
TC plugins: PCREsearch and RegXtract
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48118
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I could compile it myself - but is the "UnRAR source" on rarlab.com 100% the same as used in unrar.dll?
Author of Total Commander
https://www.ghisler.com
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

ghisler(Author) wrote:I could compile it myself - but is the "UnRAR source" on rarlab.com 100% the same as used in unrar.dll?
Yes, from what I can see when looking through the source. (we just don't know their compiler settings)
The only thing missing is the digital signature from Winrar GmbH.
Not sure what some AV programs would think about it.
Besides that, everything works, including unpacking encrypted archives.

Suggestion:
It may for now be enough to use UNRAR9X.DLL on Win2k for the next TC version.
You may optionally offer a download of such compiled dll on your homepage, in case users want to use RAR5 format in Windows 2000,
and put a note to that somewhere in help file or at least HISTORY.TXT.

Edit: of course this needs a (simple) check: did the UNRAR.DLL load w/o errors.
If this wasn't the case: use UNRAR9X.DLL as fallback.
TC plugins: PCREsearch and RegXtract
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48118
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I will ask the RAR author whether the sources are the ones he uses for unrar.dll.

If I make some changes myself to make it work on Windows 2000, I would be co-author, so I could legally apply my own digital signature. I'm not allowed to sign other people's works, only those on which I worked myself.
Author of Total Commander
https://www.ghisler.com
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

ghisler(Author) wrote:I will ask the RAR author whether the sources are the ones he uses for unrar.dll.
Okay, can't hurt to get certainty in that matter.
But to clarify why I'm quite sure about the source:

Strong hint:
The unrar.dll file from the official download contains:

Code: Select all

d:\Projects\WinRAR\rar\build\unrardll32\Release\unrar.pdb
while the source contains that same path, e.g.:

Code: Select all

D:\Projects\WinRAR\rar\dll.def
When I compile it in VC 2008 (SP1) I get nearly the same binary code out of it, just missing some function alignment,
but no general code differences (size is nearly equal).

BTW, the def file in the source is outdated for some reason (dating from 2002), it's missing RARProcessFileW.
TC plugins: PCREsearch and RegXtract
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48118
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

He replied:
It is produced from same source code as used for RAR and unrar.dll.

I wrote a simple tool, which removes blocks of code like:

#ifndef UNRAR
...
#endif

so RAR related code is not included and I use this tool to produce
unrar source code from rar source code. I think, you can compile it
and use for older Windows versions. Basically it is the same code.
Author of Total Commander
https://www.ghisler.com
krasusczak
Senior Member
Senior Member
Posts: 282
Joined: 2011-09-23, 10:35 UTC

Post by *krasusczak »

ghisler(Author) wrote:I could compile it myself
Yes, great idea, newest stable version of unrar should be recompiled to keep support for w2k & avoid another unnecessary dll only for w2k ;)
krasusczak
Senior Member
Senior Member
Posts: 282
Joined: 2011-09-23, 10:35 UTC

Post by *krasusczak »

Is there any chance to add this new recompiled dll for 8.52 bug fix realise?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48118
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

No, 8.52 now switches to old unrar.dll on Windows 2000 and older. I haven't tried yet to compile the dll myself, I expect a lot of difficulties with older C compilers.
Author of Total Commander
https://www.ghisler.com
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

Although 8.52 and 9.0 now use UNRAR9X.DLL on Win 2000, here's the newest unrar.dll 5.40.2 modified for Win2k, in case someone needs it.
There were still no substantial changes that made it more difficult as the old one I made (you can find it here), just that single TzSpecificLocalTimeToSystemTime function needs to be replaced and using VS 2008 to compile.
https://drive.google.com/file/d/0B2cDGKZKN6SnMXpzaU81WFJuT0k


Update: BTW, it seems that the official 5.40 DLL now shipped with TC 9 does not work on XP with < SP3.
TC plugins: PCREsearch and RegXtract
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48118
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

2milo1012
Any idea what was changed this time to make it incompatible?

It's really getting worse each time, so I'm considering to compile the dll myself. But then it would again break if the user replaces it with a version from rarlabs...
Author of Total Commander
https://www.ghisler.com
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

2ghisler(Author)
Main reason: it is compiled with Visual Studio (VC++) 2015, where the (statically linked) runtime lib will need SP3 on XP.
This was already the case with VS 2013, 2012, and 2010 requires SP2.
I tested TC 9 b3 on a blank XP with no SP, and it failed, like expected. I didn't test it with SP1 and SP2 though, but it's quite obvious that it won't work either.
The VC++ 2008 runtimes (or any even older version, like 2005 and 2003) are still compatible with Windows 2000 and therefore any XP SP level.
See e.g. https://support.microsoft.com/en-us/kb/2661358
or even better
https://msdn.microsoft.com/en-us/library/ws0swas0(v=vs.90).aspx


As for the compatibility mess:
How about doing it like I suggested before: just try to load the DLL and, if this fails, fall back to UNRAR9X.DLL.
TC plugins: PCREsearch and RegXtract
Post Reply