Jump to content

Universal Extractor


nitro322

Recommended Posts

I was testing version 1.5, and it works very well, except with some old installers I have.

Thanks, Perch. Once again, this is fantastic feedback! I've been working on some fixes, which should be completed soon.

The one thing that still concerns me, though, is the InstallShield false-positives. TrID recognizes a LOT of files as possible InstallShield installers, even completely unrelated stuff like the Windows gVim binary. I tried fine-tuning it a bit, but I don't think I'll be able to do much to prevent it. I'm still playing with some ideas, though. Thanks for reporting it - I had seen it myself, but wasn't sure how much of an issue it'd be until you also reported it.

By default universal Extractor setup will require Admin rights when using latest Inno Setup. As an Administrator i wouldn't like to see standard users install Shell extensions, change file associations etc. However it should be possible to run Universal Extractor as a standard user when installed by an Admin. No need for workarounds.

The installer should behave that way now. Ie, if I install UniExtract as an administrator, any standard users should be able to use it upon next login. Does that not happen for you? Can anyone else confirm this issue?

You it would be nice to have openoffice document support. They are simple tar.gz files and if you rename than you can them extract them easily. It would however be nice to be able to simply click on them and extract them.

That's a great idea, and I'm pleased to say that thanks to the new signature detection in 1.5 (provided by TrID), this works automatically in version 1.5. No code changes necessary. W00t. :)

Link to comment
Share on other sites


I want to know if UniExtractor command line version returns error code to calling program like Java (my own program).

Not currently, but that's not a bad idea and shouldn't be difficult to implement given that all failures should already be routed through a single terminate() function within the program. I'll look into it and see if I can add it to the upcoming version.

Edit: Well I added it, but after giving it some more thought I'm not sure how useful this will really be. If UniExtract detects an error during extraction. First, the new error codes:

0 = successful exit or user-initiated cancel

1 = supposedly supported file, but extraction failed

2 = unknown executable - cannot be extracted

3 = unknown filetype - cannot be extracted

4 = invalid output directory specified

As for the question about its usefulness, I display an error message after every non-successful exit. So, any "failures" (as designated by return codes 1-4 above) already display a message to inform the user of what happened and why. If you have a dialog message already explaining the problem, setting a program-readable error code seems rather redundant. Maybe I'm not thinking this all the way through, though. Any other thoughts on this?

Edited by nitro322
Link to comment
Share on other sites

I wanted to put out one last call for comments and/or bug reports. I'm waiting on just four language updates now; as soon as I receive those I plan on publishing the final version. If you've found any issues not previously discussed, now would be the time to report them. :)

The one thing that still concerns me, though, is the InstallShield false-positives. TrID recognizes a LOT of files as possible InstallShield installers, even completely unrelated stuff like the Windows gVim binary. I tried fine-tuning it a bit, but I don't think I'll be able to do much to prevent it. I'm still playing with some ideas, though. Thanks for reporting it - I had seen it myself, but wasn't sure how much of an issue it'd be until you also reported it.

I never was able to do anything about cutting down the false positives, but I made a couple changes that I think should help reduce the problem:

  • InstallShield installers have been moved to the bottom of the list for TrID matches, which means that if any other "possible" matches are found, they will be acted upon first
  • I switched to providing a choice for users between isxunpack and using the /b (cache) switch. While this won't really do anything about false positives, it moves InstallShield support into line with the other installers that have multiple unpackers (such as Wise), providing a more consistent user experience.

Of course, I'm still open to any other ideas you may have. ;)

Link to comment
Share on other sites

Well, hope it's not too late for another bug.

This installer: http://www.catfood.net/products/cfmail.exe (1,4 MB)

Uniextract fails and reports an InstallShield (in this case is true: Peid returns InstallShield Stub 2003).

I unpacked it with cmdtotal and isshield plugin: http://www.totalcmd.net/plugring/IShield.html

It's strange, this wcx is based in i6comp, i5comp, but I tried with those directly and no results.

Thanks for everything!

Link to comment
Share on other sites

Uniextract fails and reports an InstallShield (in this case is true: Peid returns InstallShield Stub 2003).

I unpacked it with cmdtotal and isshield plugin:

I couldn't reproduce this. Here's what I found:

UniExtract does successfully unpack cfmail.exe using the /b (cache) switch method. So, I'm not sure why you had to mess around with other tools in the first place.

IShield.wcx, along with i5comp and i6comp, only work with InstallShield cab files, not executable installers (as far as I can tell). I tested the IShield.wcx file just to be sure, and it would not unpack cfmail.exe. To verify that I was using it correctly, I tried unpacking some other IS cab files I use for testing, and it worked fine for them.

So, I seem to have the exact opposite results from you: UniExtract works fine, and the alternative you suggested does not. Very odd. Can you please double-check this? If you're still having the issue, could you provide some more details and/or screenshots?

Thanks.

Link to comment
Share on other sites

You're right. I didn't try cache mode, but when I tried it gives me the error in the attached picture.

The original file is in D:\cfmail.exe, but it gets copied to D:\Programas\UniversalExtractor\, I suppose this is the correct behavior, but it can't be executed.

Another mistake is that I used install explorer plugin to extract cfmail, not isshield. That's in the second picture.

Sorry for the waste of time, you were right, but I was too, in certain way...

post-118264-1170041493_thumb.jpg

post-118264-1170041823_thumb.jpg

Link to comment
Share on other sites

I made it work in cache mode, I had to move uniextract from the long path "D:\Programas\UniversalExtractor\UniExtract.exe", which is strange since it doesn't have spaces in the path. In "D:\Uni\Uniextract.exe" it worked. You should check what happens with long path names, they're annoying sometimes.

Another suggestion would be to put the MessageBox of cache mode on top of the installer, maybe with MB_TOPMOST, so it won't get covered by the installer window, but that's a minor detail.

As you probably have guessed I have spanish XP, in the first picture of the previous post, "El sistema no puede hallar el archivo especificado" means: "The system can't find the specified file". And off course, "Aceptar" means "Accept".

Thank you, really, you're making a great effort in this utility!

Link to comment
Share on other sites

The original file is in D:\cfmail.exe, but it gets copied to D:\Programas\UniversalExtractor\, I suppose this is the correct behavior, but it can't be executed.

That's really odd. It should be extracted to the directory you specify. How are you calling UniExtract? Eg, from the context-menu (which option are you clicking, and what directory do you specific if using the 'UniExtract Files...' option?) or the command line (can you post the full command line)?

Another mistake is that I used install explorer plugin to extract cfmail, not isshield. That's in the second picture.

InstExplorer support for modern InstallShield installers appears to be broken. It'll recognize and extract the files (as you show in your screenshot), but the output is incorrect. Try opening one of the .ini files - on my system it's binary nonsense. Try running the .msi file - you should be told that it's not valid. I experimented with adding InstExplorer support to the list of options for InstallShield, but rejected it for this reason.

I made it work in cache mode, I had to move uniextract from the long path "D:\Programas\UniversalExtractor\UniExtract.exe", which is strange since it doesn't have spaces in the path. In "D:\Uni\Uniextract.exe" it worked. You should check what happens with long path names, they're annoying sometimes.

This is also odd. I coded UniExtract specifically so that it can handle long paths, for both itself and any files it's trying to extract. I'll check this out and see if I can duplicate it, but off the top of my head I have no idea why it's failing here.

Another suggestion would be to put the MessageBox of cache mode on top of the installer, maybe with MB_TOPMOST, so it won't get covered by the installer window, but that's a minor detail.

I'll look into it. I'm generally not a fan of message boxes that can't be moved or hidden, though.

Edited by nitro322
Link to comment
Share on other sites

@Hanschke

I'm also Admin without UAC and I got this error. You have no write access to this directory by default. You have to edit this manuelly;)

can u please tell me which directory do u mean :hello: cause after this error i can unextract file but if i want to delete the archive vista told me that it is in use :wacko:

Link to comment
Share on other sites

nitro:

I'm using uniextract from the "SendTo" menu, I added a link to it: ("C:\Documents and Settings\User22\SendTo\Universal Extractor.lnk")

I click the context menu, Send to, Universal extractor, the universal extractor dialog box appears as shown in the picture. I press OK.

It gets recognized as Install shield, it offers try cache mode, I click OK, then happen the error showed before, and cfmail gets deleted from D:\ and copied to the uniextract path in D:\Programas\UniversalExtractor\cfmail.exe.

Also, the directory D:\cfmail is created and not deleted.

You're right again, with install explorer you get garbage in the files.

With the messagebox thing, I mean making the msgbox on top of the installer, because the installer cover it, and I didn't see it until I cancel the installer (I was waiting that uniextract did something that had already done, but I didn't see).

Sorry for the waste of time, I should triple check things before I post.

Thanks!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...