Trouble handling some 7-Zip SFX archives

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
vudu
Junior Member
Junior Member
Posts: 27
Joined: 2011-12-04, 19:52 UTC

Trouble handling some 7-Zip SFX archives

Post by *vudu »

It seems that 64-bit 8.51a has trouble handling some 7-Zip self-extracting archives, e.g. the latest NVIDIA graphics driver for 64-bit Windows.

Name: 340.52-desktop-win8-win7-winvista-64bit-english-whql.exe
Size: 213.84 MB
SHA-1: b6aa2aff317ea6197a9b20fdb7be59ad1bc70d2f

Unpacking or testing gives "Error in packed file", while WinRAR has no problems to test or unpack the archive (and identifies it as 7-Zip SFX). Unpacking the archive using its own SFX also produces no errors.

No packer plugins are installed, I'm using built-in 7-Zip unpacker.

Can you please take a look into this?
Personal licence #263866
User avatar
Dalai
Power Member
Power Member
Posts: 9392
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

The mentioned file can be opened with the 7zip plugin (0.7.6.5a). I don't know what causes this. 7zip itself shows "LZMA BCJ" as compression method, but this is also true for older graphics drivers, which TC 8.51a can open without any plugin.

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
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Hmm, no idea, I'm using the official 7zip sources.
1. Does it work with TC 32-bit?
2. Can you give me a download link?
Author of Total Commander
https://www.ghisler.com
vudu
Junior Member
Junior Member
Posts: 27
Joined: 2011-12-04, 19:52 UTC

Post by *vudu »

Hi Christian,

I'm using 64-bit TC exclusively, so I can't test it with 32-bit, but you can try it yourself:

http://us.download.nvidia.com/Windows/340.52/340.52-desktop-win8-win7-winvista-64bit-english-whql.exe
Personal licence #263866
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Thanks for the file. TC 32-bit gives the same error, so both the 32-bit and 64-bit 7zip dlls return an error for this file. But it's not a 7-zip file, it's a CAB file containing:

dxupdate.cif
dxupdate.dll
dxupdate.inf
Author of Total Commander
https://www.ghisler.com
User avatar
Dalai
Power Member
Power Member
Posts: 9392
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ghisler(Author) wrote:But it's not a 7-zip file, it's a CAB file containing:

dxupdate.cif
dxupdate.dll
dxupdate.inf
Yes and no. Open the file with WinRAR (4.20 or later) or 7zip and you can see both of them saying it's a 7zip SFX. You are right that TC can't open this file as 7zip file - it shows it as CAB SFX. Even the 7zip plugin can't do it (don't know about Total7zip), so I was wrong about it as I posted a week ago.

I looked into the issue some more, and here's what I got: So perhaps it's some change in compression method but note that the newer 340.52 archive can't be opened in TC at all (plugin or not). So, currently TC's internal 7zip method behaves like the older WinRAR 3.80.

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
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

The problem seems to be that it's some kind of non-standard 7zip file containing a CAB file inside (stored). Therefore TC only sees the internal CAB, not the outer 7zip file.
Author of Total Commander
https://www.ghisler.com
User avatar
Dalai
Power Member
Power Member
Posts: 9392
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ghisler(Author) wrote:The problem seems to be that it's some kind of non-standard 7zip file containing a CAB file inside (stored). Therefore TC only sees the internal CAB, not the outer 7zip file.
That may be the case for the 340.52 archive file not but the other two. So far TC's internal 7zip handling is inferior to the 7zip plugin since it can't open archives which the plugin opens without a hitch (and it lacks archive creation - I know this has been discussed). The internal 7zip function should at least have the same functionality as the plugin, regarding extracting.

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
vudu
Junior Member
Junior Member
Posts: 27
Joined: 2011-12-04, 19:52 UTC

Post by *vudu »

I managed to locate the real start of 7z archive, it begins at offset 0x9825C. So if I strip everything in front of it, Total Commander handles it successfully, both testing and extracting (same goes for WinRAR).

However, WinRAR now reports "unknown" type of 7-Zip archive. I also tried to create an archive with 7-Zip 9.34 using both LZMA and LZMA2 compression and WinRAR also reports "unknown" for them. Maybe the latest 7-Zip alpha versions are simply bugged...

Btw, those files Totalcmd shows when you ctrl+pagedown on the EXE are actually the content of dxupdate.cab located in the archive. Detection by the DLL is definitely not working as same as by 7-Zip File Manager, but I guess it's 7-Zip problem.
Personal licence #263866
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I see - so this CAB is part of the unpacker, not part of the 7zip. That's very unfortunate because TC looks for the first valid archive inside the EXE...
Author of Total Commander
https://www.ghisler.com
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1013
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

How can I override or deprioritize the internal detection?

Using Total7Zip via the context menu works for all mentioned SFX variants.

Code: Select all

[Associations]
Filter1=*.*
Filter1_Total7Zip=**Total7Zip
[/size]
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sorry, you can't.
Author of Total Commander
https://www.ghisler.com
Post Reply