wcmzip32.dll in Wine

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: Hacker, petermad, Stefan2, white

Post Reply
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

wcmzip32.dll in Wine

Post by *marlar »

Hi,

When I use master password protected FTP logons with TC under Wine/Ubuntu, I get this message:

This function requires the latest wcmzip32.dll containing AES encryption!

I have tried copying the perfectly working wcmzip32.dll from my windows to TC's directory (and /windows) but it does not work under Wine.

Do I need a special version of this file to run under Wine?

Martin
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50532
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

It sounds like you have an outdated wcmzip32.dll. Try this:
1. Close Total Commander to unload wcmzip32.dll
2. Delete the old wcmzip32.dll
3. Copy the new one to where you need it
Author of Total Commander
https://www.ghisler.com
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

Thanks for the reply.

I have tried that several times, and I just tried again:

- Closed TC
- Checked the process list that it was not stale in memory
- Copied a fresh wcmzip32.dll from a fresh TC installation

I have also tried deleting the file, and there is no difference at all if it is there or not. TC comes with the same error message.

I have thought that maybe Wine is sometimes case sensitive when it comes to files, like Linux. With what exact name and case is the dll file called with?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50532
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Maybe you have the wrong wcmzip32.dll? You need to use the one from TC 7.50a, its MD5 checksum is 78ab27b9290e9cd1bc2d403f9981aa5b.
Author of Total Commander
https://www.ghisler.com
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

I also tried changing permissions to 777 to ensure full access, but still no luck.

Furthermore, I can delete the file while TC is running, so it does not seem to be loaded at all.
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

ghisler(Author) wrote:Maybe you have the wrong wcmzip32.dll? You need to use the one from TC 7.50a, its MD5 checksum is 78ab27b9290e9cd1bc2d403f9981aa5b.
Yes, it is that file I use, the MD5 is ok.

The file should be in TC's program directory, right? I also tried in /windows.
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

I have more info:

Now I tried moving all TC's DLL files to a temp directory, and TC started happily without complains.

This tells me that DLLs in TC must be dynamically loaded (unless they works differently under Wine) and that TC apparently only complains about missing DLLs when it needs them for the specific functions.

Does this observation give you a clue?
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

And even more info!

I just learned about the lsof command to show open files. If I run

sudo lsof | grep -i wcm

I get the following:

totalcmd. 21437 marlar mem REG 8,5 123536 85550 /home/marlar/.wine/drive_c/totalcmd/WCMZIP32.DLL
wineserve 21440 marlar 79r REG 8,5 123536 85550 /home/marlar/.wine/drive_c/totalcmd/WCMZIP32.DLL

So the file is in fact loaded. But somehow TC can't access it correctly.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50532
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I have tested this now, and I get the same error. I guess that Wine is missing one of the used CryptoAPI functions used by TC. I will have to test this in detail via logging or so, because I cannot debug on Wine. Hopefully I will find a solution for the next version.
Author of Total Commander
https://www.ghisler.com
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

Thanks, Christian.

As as devoted (and of course registered) TC user for years, learning that TC can work under Wine helped me decide to move to Linux a few months ago.

After tweaking TC and the mime settings etc, it now runs almost as smooth as under Windows. Having encrypted ftp passwords is be one of the last things I miss.

Handling Linux permissions is probably impossible, but that is not essential.

Martin
marlar
Junior Member
Junior Member
Posts: 40
Joined: 2010-03-08, 11:18 UTC

Post by *marlar »

Also let me know if I can assist in debugging somehow. I am a professional Delphi programmer too.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50532
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I have checked it now - it doesn't work because TC calls WinVerifyTrust to verify that the wcmzip32.dll has a valid signature and comes from us. This is done so a troyan software cannot simply replace the wcmzip32.dll to get the decrypted passwords.

My research shows that Wine doesn't implement WinVerifyTrust yet - instead, it always returns the error TRUST_E_PROVIDER_UNKNOWN, which means that the dll was signed by an unknown crypto provider.

I will therefore remove this verification when I detect the presence of Wine. The official way to do that (according to the Wine forum) is to check for the presence of wine_get_version in ntdll.dll. I will add this to the next version of TC, the public beta test will start soon.
Author of Total Commander
https://www.ghisler.com
Post Reply