Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outdated extractors #152

Open
Bioruebe opened this issue Apr 30, 2019 · 48 comments
Open

Outdated extractors #152

Bioruebe opened this issue Apr 30, 2019 · 48 comments

Comments

@Bioruebe
Copy link
Owner

Bioruebe commented Apr 30, 2019

Please report outdated extractors here

If you want to request a new extractor being added to UniExtract, please open a new issue instead.

Notes

  • JSWare MsiX 1.19.0.1 - current version does not support command line usage
  • lessmsi - custom code changes necessary. Do not update yourself, it breaks detection!
  • triddefs - updated every couple of days. To not bother UniExtract users with too frequent updates, I publish updated definitions irregularly. UniExtract uses custom definitions - do not update yourself!
@niheaven
Copy link

innounp: 0.49
mtee: 2.21 (https://github.com/ritchielawrence/mtee) (which fixed issue under Windows 10, so wtee is needless.)

@TAbdiukov
Copy link

TAbdiukov commented Jun 20, 2019

HelpDeco - no compiled binary

already done in #110 ?
Otherwise the latest version is 2.1.4 (as for 06/2019), the classic version of 2.1 exists compiled

lzop 1.04 - there seems to be no win binary

Can be found here. Compiled with gcc

Edit: Also done in #110 ?

@Skibicki
Copy link

Enigma Virtual Box unpacker 0.5.7.0

@Skibicki
Copy link

Dead download for h4sh3m Virtual Apps Dependency Extractor

@lifenjoiner
Copy link

@Bioruebe
I have uploaded a 32 bits unshield at #169 (comment)

@galtgendo
Copy link

...not sure if this is a proper place, but in more recent sgb engine versions sgbpack files are no longer unpacked by 7zip.

@Skibicki
Copy link

Skibicki commented May 10, 2020

Exeinfo PE
Pea
QuickBMS
SQLite
UE Viewer
UnRAR
UPX

@Skibicki
Copy link

MediaInfo

@395v
Copy link

395v commented May 21, 2020

@Skibicki
Copy link

Pea 0.71
Qt Translation File Converter 5.13.2.0

@Skibicki
Copy link

Exeinfo PE 0.0.6.0

@Skibicki
Copy link

UnRAR 5.91

@demberto
Copy link

GCFScape 1.8.6

@Skibicki
Copy link

Skibicki commented Sep 10, 2020

demoleition 0.6.4.0
Pea 0.74
SQLite 3.33.0
Qt Translation File Converter 5.14

@Skibicki
Copy link

Exeinfo PE 0.0.6.2
@Bioruebe I'm using Software Update Monitor to check these; I think it can detect all plugins, except those without version tags. Do you know any automated method to grab the output of Version command lines?

@passat1
Copy link

passat1 commented Dec 20, 2020

ExEinfo PE - 0.0.6.3
InnoUnp - 0.50.0.0
MediaInfo - 20.9.0.0
Pea - 0.75.0.0
UnRAR - 6.0.0.0

It seems they all are working correctly.
Also would be nice that updater would not replace any module if NEWER version is found in package.
This way, as it is now, when checking for updates it always replaces newer version (if found) with older from your server.

@Bioruebe
Copy link
Owner Author

Bioruebe commented Jan 6, 2021

@Skibicki

Do you know any automated method to grab the output of Version command lines?

No idea, sorry. I wanted to automate update checks for a long time, but never found the time to investigate.


@passat1
You are right. At the moment the updater simply replaces the files that do not match the ones on the server - that's quite inconvenient. I'll try to improve the updater; it's low priority change though.


Thanks to everyone who posted in this thread so far.

@hgdagon
Copy link

hgdagon commented Jan 18, 2021

@Bioruebe Whatever is used to extract flash projectors seems to "generate" the swf files, so you don't get the original swf, but a recreated one.
Insted, I've tried dump_projector, which, as stated in the readme, is the posix port of this, however the latter could not extract my projector, saying it Cannot open input file for reading!, so I'd recommend using laenion's port.
I have also tried FFDec, and it extracted a swf file, that was binary identical to the one extracted by dump_projector. That seems proof enough that these extract the original swf file, as it exists inside the exe.
While FFDec offers a stripped-down lib version, its scope is much greater than just extracting swf from exe, also dump_projector has the added benefit of skipping the "wrapper" swf's.

@Skibicki
Copy link

Skibicki commented Mar 1, 2021

Pea 0.76
SQLite 3.34.1

@Skibicki
Copy link

BSA Browser 1.12.4
Pea 1.0.0.0
UnRAR 6.1.0.0
QuickBMS 0.11.0.0
SQLite 3.35.5

@Skibicki
Copy link

PEA 1.01

@aphanic
Copy link

aphanic commented Aug 23, 2021

Hi, I was going to post about something else, but I noticed at the top of the list the decoder for those old WinHelp files was shown as outdated. v2.1 is included because there's a binary for it, but there wasn't for the last version of the tool, so I thought what the hell, since I'm (re)building some why not tackle that one too.

You'll find the binary attached to this message, it's based on the 2.1.4 sources, but some modifications were needed to make it compile. The tool itself kind of depended on Unix/Linux things like termios.h and there were several redefinitions of things that weren't compatible with the ones already defined in Windows' headers.

I was able to get a hold of some old HLP files to test it with and works as expected, so all good 😊.

helpdeco-2.1.4.zip

PS. It's a 32-bit binary, I noticed there are some 64-bit ones bundled with UniExtract, but because it was meant to be a 16/32-bit utility I don't think going to 64 would be easy (there's some pointer arithmetic in there, besides this way it's compatible with those running 32-bit Windows.

@aphanic
Copy link

aphanic commented Aug 23, 2021

Another one, BCM (currently ships in 32 and 64-bit variants, lives under the x64 and x86 folders, so I built both).

BCM-1.65.zip

Going forward though, the author has decided to close its source (his GitHub repo is no more) so I'm guessing this is the end of the line for the 32-bit one (still the latest as of right now). New distributions for this one are going to be here: https://compressme.net/#downloads

By the way, I built those with Visual Studio because the ones that are shipped with UniExtract2 were as well, but it's also possible to build them with GCC too, linking to the ubiquitous MSVCRT. They both work fine, the only difference is size (~300KB of these vs. ~100KB).

@aphanic
Copy link

aphanic commented Aug 23, 2021

I6Comp was outdated too, so here's a build of the current (last?) version. It required minor touchups for it to build cleanly, but it looks good. I didn't test it however, I'm afraid I don't have any InstallShield installer lying around and I couldn't find any easily. They'll appear sooner or later haha.

I6Comp - IS 5.x (v2.0) - IS 6.x (v1.03b).zip

@aphanic
Copy link

aphanic commented Aug 23, 2021

lzip as well, built the latest version of it, 1.22, no changes to its source code were needed for it to build cleanly, although I attached a simple version resource to it so we can just hover over the file to see its version for example.

lzip-1.22.zip

PS. Passes all tests from the test suite.

@aphanic
Copy link

aphanic commented Aug 23, 2021

sfArkXTc needn't be rebuild, but it was the only reason the zlib library was around so I decided to rebuild it (zlib1.dll can be removed from the distribution if updated). No modification to the source code was necessary for it to build, although it wasn't the typical build procedure.

sfarkxtc.zip

Tested and works as expected, it brought me back when I found the Fluid R3 SoundFont compressed as sfArk 😊.

@aphanic
Copy link

aphanic commented Aug 23, 2021

There was a new version of the Telltale TTARCH extractor from Luigi Auriemma, 0.3.2, which brought support for another title.

He already supplies a binary along with the sources from his site, but since I had the sources I decided to rebuild it to add a version info resource (same as with lzip).

ttarchext-0.3.2.zip

@aphanic
Copy link

aphanic commented Aug 23, 2021

Now, this is what started it all, although the first line of detection is TrID, file comes second and what's being shipped is an old build using and old definition database, so here you have a binary (32-bit) of the latest file (5.40) and its definitions file.

file-5.40.zip

Note that while I used the official release of the sources they were modified:

  • Location routines of the compiled definitions file, magic.mgc, were simplified. Since it's an special build for UniExtract2 I thought it'd be best to forgo the current directory structure, it's suitable for a Linux distribution, for example, but I opted for a cleaner one: the binary will look for the definitions file in its current directory, that's it. So as long as file.exe and magic.mgc are next to each other it's all good.
  • Some modifications were needed for 5.40 to build in Windows, 5.39 builds just fine, but .40 introduced F_SETFD (which is hard to implement in Windows) and O_CLOEXEC. Those needed to be set under conditional blocks (i.e. #ifndef WIN32), and the behavior we had up to .39 remained.

Now file is finally able to recognize Zstd as well, but for that I'll open another issue and patch/pull request to add support for it as well as to simplify the location for file since the 3 files can just now live under the "file" directory without the whole structure under it.

EDIT: Having the updated file requires a tiny edit to the registry.ini definition matching file, file is capable to recognize the Bethesda archives instead of just showing them as being data. It creates a problem because the ID is "BSArc archive data version XXX" and since it matches the definition for ARC (StringInStr seems to be case insensitive) treats those files as such and calls the wrong decompressor (failing of course).

Just in case someone needs the fix already, just add the next line in "def\registry.ini" before the one for ARC under the [File] section:

bsa=BSArc archive data

@aphanic
Copy link

aphanic commented Aug 24, 2021

Derived from building file, since one of the prerequisites was gettext (even though NLS is disabled throughout) I also have updated binaries for those and one of them is being shipped with UniExtract2: msgunfmt.exe

So here it is, from the 0.19.8.1 currently shipping to the latest 0.21.

msgunfmt-0.21.zip

@aphanic
Copy link

aphanic commented Aug 24, 2021

Another update, this time for the Xpdf tools (pdfdetach, pdftohtml, pdftopng and pdftotext), the shipped version is 4.01.01 from 2019 and the latest one is 4.03 from early this year.

Even though it's an open source program there was no need to build the tools as they provide binaries for Windows directly, for convenience I'll attach the relevant binaries zipped to this comment as well (the ones that replace those shipped already).

xpdf-4.03.zip

@aphanic
Copy link

aphanic commented Aug 24, 2021

Another one freshly baked! The one for Bethesda Archives (CLI version), bsab, this one is not only an update but also a fix, the one currently shipping with the UniExtract2 (oh, by the way, whenever I mention "currently shipping" I mean the current beta, RC4 as of now) doesn't work and launching it manually from a command line I could see an exception being raised.

The code was verbatim from the 1.13.0 release (only a couple of NuGet dependencies were updated), there's a tag to a beta from 2 days ago but it also notes it's unstable, so I thought it best to stay with the stable releases.

It targets .NET 4.7.2 (@Bioruebe, I noticed your tools target 4.5, but the only gain is Vista compatibility, so I stuck to the default of this project), it's also a single binary because it uses Costura from Fody 😊 (not useful adding it to the mix for cicdec, godotdec, sgbdec, etc. because they all share at least your library).

bsab-0.13.0.zip

EDIT: simdec may need a retarget / rebuild, targets .NET 4.0, but for some reason throws an exception in my system:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Deployment.Compression.Cab, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ce35f76fcda82bad' or one of its dependencies.

@aphanic
Copy link

aphanic commented Aug 24, 2021

This one is another rebuild + fix, the one for RPG Maker, RgssDecrypter. Initially it was only going to be a rebuild letting go of the pre-.NET 4 framework, just like with the issue I opened for WiX, #284, I think it's better not to require the older version if possible not to add it just to extract something to a current system.

Since source is open it wasn't hard for me to dig into it, however the ANSI terminal detection (for those pretty colors it uses when executed through a compatible terminal) needed some work. It was broken on Windows because it wasn't setting the console mode to be compatible with them.

That was a minor detail, at worse executing the tool manually would lead to odd characters displayed in the screen, but it only worked when output wasn't piped to another process, otherwise it would raise an exception. Some digging led me to only access the console buffer width if its output hasn't been redirected.

So all in all, now it works, and targets 4.7.2 as usual (no need to check for .NET 2 anymore for it in UniExtract2). Its library, RgssDecrypter.Lib.dll, can also be removed from the distribution because it was statically linked to the program itself 😉.

RgssDecrypter-1.0.0.1.zip

Also! The tee implementation for Windows that UniExtract2 ships, mtee has kept on going in a different repository, it's at version 2.7 over here: https://github.com/isanych/mtee and they provide a binary too.

However, because that binary is a 64-bit image I took the liberty to re-build that 2.7 version as a 32-bit one since UniExtract2 depends on it quite a lot, here it is too:

mtee-2.7.zip

@aphanic
Copy link

aphanic commented Aug 26, 2021

This one is an update to the current stable version with some minor modifications to accommodate it to the way UniExtract2 uses it at the moment, so it's a drop-in upgrade. lessmsi has changed its CLI interface and the listing command requires a table to be chosen as well with the -t switch.

I think the closest table to how it worked before is the File one, so the listing command was modified so that if the -t switch isn't present it'd just check for the existence of that table and output the number of rows it has (files that could be extracted, there's no need to pollute the output anymore for the purpose of UniExtract2, it parses the output looking for an absence of "Error: " when listing prior to using lessmsi to extract it.

I have also updated some NuGet packages it depends on and added Costura to bundle references in the binary directly, there are however two native indirect library requirements mspack.dll and wixcab.dll, so 3 files in total for it.

lessmsi-1.8.1.zip

In the end though, it may be useful to just change the invocation line for the utility adding a -t File to it, but for now if anyone wants to update directly it works as expected (I found out AutoIt3 building is straightforward, but setting it up required some SciTE to get it to produce the expected UniExtract2 binary).

@Bioruebe
Copy link
Owner Author

@aphanic

That's an impressive amount of work you put into keeping the extractors up-to-date. Thank you so much!
I'll try to test all of these withing the next days and add the updated binaries as soon as possible.

@aphanic
Copy link

aphanic commented Sep 14, 2021

Not at all! I've run into some trouble with the machine I was using to produce all of the builds and tests, that's why I stopped and didn't end up making a pull request for the new placement of file or a couple of ways to deal with Zstd.

Specifically one of the things I want to do is make sure all binaries work on 7, even though it's unsupported and all that's the minimum I was building for (probably even Vista for those written in unmanaged code), but still. Spinning up a VM with 7 and testing things properly.

Before it died on me I was looking into acefile.exe, not that there is a newer version, but since it's based in a Python script I wanted to try to update its bundled Python distribution (to make it slimmer) which led me through a rabbit hole of building a Python distribution with just the necessary modules and libraries for it and the exe bundler to work. Totally unnecessary of course, just like a rewrite in C++ (for example) to get a smaller binary, but that's where I was.

Hopefully it'll all be resolved by week's end and I can keep looking at all, I'm learning a lot in the process by the way, so it's a win-win situation (and as a user of UniExtract2 myself it's a nice way to contribute back 😊)

@hgdagon
Copy link

hgdagon commented Mar 9, 2022

@Bioruebe Found an updated fork of unrpa handling more variants.

Additionally

@Bioruebe Whatever is used to extract flash projectors seems to "generate" the swf files, so you don't get the original swf, but a recreated one. Insted, I've tried dump_projector, which, as stated in the readme, is the posix port of this, however the latter could not extract my projector, saying it Cannot open input file for reading!, so I'd recommend using laenion's port. I have also tried FFDec, and it extracted a swf file, that was binary identical to the one extracted by dump_projector. That seems proof enough that these extract the original swf file, as it exists inside the exe. While FFDec offers a stripped-down lib version, its scope is much greater than just extracting swf from exe, also dump_projector has the added benefit of skipping the "wrapper" swf's.
I came across a swf executable that could not be handled by laenion's port of dump_projector (an old app from 2011), but was handled successfully by ffdec, so maybe it was worth considering.

@Crystal-RainSlide
Copy link

Dead download for h4sh3m Virtual Apps Dependency Extractor

Extractor.rar:

Thinstall Extractor.rar:

@ghost
Copy link

ghost commented Jul 29, 2022

What is a password for archives?

Dead download for h4sh3m Virtual Apps Dependency Extractor

Extractor.rar:

Thinstall Extractor.rar:

@Crystal-RainSlide
Copy link

Crystal-RainSlide commented Jul 30, 2022

What is a password for archives?

My bad, I didn't noticed that BOTH of Extractor.rar and Unpack.zip had a password.

However:

  • I didn't even know or remember they have a password
    • I don't know the password right now
    • I didn't touch both of them
  • the encryption really shouldn't be there
    • both file source didn't say anything about password

To me, this is suspicious.


Anyway, I do have the content of them at UniExtract\bin, (Extractor.exe and Unpack.dll), and the CRC matches to the ones in Extractor.rar.

Here they are: Extractor.zip

Maybe I get the content from other source, can be a random Chinese software download website, and discarded the archive file, because those websites added some trash file to it.

@ghost
Copy link

ghost commented Jul 30, 2022

What is a password for archives?

My bad, I didn't noticed that BOTH of Extractor.rar and Unpack.zip had a password.

However:

  • I didn't even know or remember they have a password

    • I don't know the password right now
    • I didn't touch both of them
  • the encryption really shouldn't be there

    • both file source didn't say anything about password

To me, this is suspicious.

Anyway, I do have the content of them at UniExtract\bin, (Extractor.exe and Unpack.dll), and the CRC matches to the ones in Extractor.rar.

Here they are: Extractor.zip

Maybe I get the content from other source, can be a random Chinese software download websites, and discarded the archive file, because those websites added some trash file to it.

No problem, it happens to me all the time xD, thanks again.

@RickyLively
Copy link

RickyLively commented Dec 24, 2022

updated UniExtract on my PC today... it has 7-Zip 19.00 (2019-02-21), there is newer: 7-Zip 22.01 (2022-07-15).
https://www.7-zip.org

@demberto
Copy link

demberto commented Jan 5, 2023

ExeInfoPE v0.0.7.6 https://www22.zippyshare.com/v/RoJZCnQ8/file.html

@Skibicki
Copy link

Skibicki commented Mar 9, 2023

Exeinfo PE 0.0.7.7
lconvert 6.4.2.0
QuickBMS 0.12.0.0
UPX 4.0.2.0

@tormento
Copy link

tormento commented Sep 7, 2023

@Bioruebe I've tried to update basic utilities such as 7-zip and so but UniExtract keeps on "updating" to lower versions.

Could you implement a version check and not a blind update?

@Skibicki
Copy link

Skibicki commented Oct 11, 2023

EnigmaVBUnpacker 0.6.1.0
Exeinfo PE 0.0.8.1
Pea 1.1.4.0
RAR 6.24
SQLite 3.43.2.0
UPX 4.1.0.0

@Skibicki
Copy link

msgunfmt 0.22.0.0
Pea 1.1.5.0

@volatikus
Copy link

What is a password for archives?

My bad, I didn't noticed that BOTH of Extractor.rar and Unpack.zip had a password.

However:

  • I didn't even know or remember they have a password

    • I don't know the password right now
    • I didn't touch both of them
  • the encryption really shouldn't be there

    • both file source didn't say anything about password

To me, this is suspicious.

Anyway, I do have the content of them at UniExtract\bin, (Extractor.exe and Unpack.dll), and the CRC matches to the ones in Extractor.rar.

Here they are: Extractor.zip

Maybe I get the content from other source, can be a random Chinese software download website, and discarded the archive file, because those websites added some trash file to it.

I know this is old, but I figured I'd throw it out there in case someone else comes looking for the password. The password is h4sh3m.

h4sh3m

@Crystal-RainSlide
Copy link

The password is h4sh3m

Then it should be the Archive file from the offcial source, and the password is set along with those comments by the original author.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests