Unrar on Windows 2000
Moderators: white, Hacker, petermad, Stefan2
Unrar on Windows 2000
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.
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
Running Total Commander v8.52a
See this discussion for some more info and a solution/workaround: http://ghisler.ch/board/viewtopic.php?t=40470
Regards
Dalai
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
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).
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
Running Total Commander v8.52a
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.
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
- ghisler(Author)
- Site Admin
- Posts: 48118
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
Yes, from what I can see when looking through the source. (we just don't know their compiler settings)ghisler(Author) wrote:I could compile it myself - but is the "UnRAR source" on rarlab.com 100% the same as used in unrar.dll?
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
- ghisler(Author)
- Site Admin
- Posts: 48118
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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.
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
https://www.ghisler.com
Okay, can't hurt to get certainty in that matter.ghisler(Author) wrote:I will ask the RAR author whether the sources are the ones he uses for unrar.dll.
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
Code: Select all
D:\Projects\WinRAR\rar\dll.def
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
- ghisler(Author)
- Site Admin
- Posts: 48118
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
-
- Senior Member
- Posts: 282
- Joined: 2011-09-23, 10:35 UTC
-
- Senior Member
- Posts: 282
- Joined: 2011-09-23, 10:35 UTC
- ghisler(Author)
- Site Admin
- Posts: 48118
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
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.
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
- ghisler(Author)
- Site Admin
- Posts: 48118
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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...
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
https://www.ghisler.com
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.
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