Open Bioruebe opened 5 years ago
innounp: 0.49 mtee: 2.21 (https://github.com/ritchielawrence/mtee) (which fixed issue under Windows 10, so wtee is needless.)
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 ?
Enigma Virtual Box unpacker 0.5.7.0
Dead download for h4sh3m Virtual Apps Dependency Extractor
@Bioruebe I have uploaded a 32 bits unshield at https://github.com/Bioruebe/UniExtract2/issues/169#issuecomment-543120312
...not sure if this is a proper place, but in more recent sgb engine versions sgbpack files are no longer unpacked by 7zip.
Exeinfo PE Pea QuickBMS SQLite UE Viewer UnRAR UPX
MediaInfo
Pea 0.71 Qt Translation File Converter 5.13.2.0
Exeinfo PE 0.0.6.0
UnRAR 5.91
GCFScape 1.8.6
demoleition 0.6.4.0 Pea 0.74 SQLite 3.33.0 Qt Translation File Converter 5.14
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?
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.
@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.
@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.
Pea 0.76 SQLite 3.34.1
BSA Browser 1.12.4 Pea 1.0.0.0 UnRAR 6.1.0.0 QuickBMS 0.11.0.0 SQLite 3.35.5
PEA 1.01
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 😊.
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.
Another one, BCM (currently ships in 32 and 64-bit variants, lives under the x64 and x86 folders, so I built both).
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).
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.
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.
PS. Passes all tests from the test suite.
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.
Tested and works as expected, it brought me back when I found the Fluid R3 SoundFont compressed as sfArk 😊.
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
).
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.
Note that while I used the official release of the sources they were modified:
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.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
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.
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).
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).
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.
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 😉.
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:
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.
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).
@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.
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 😊)
@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 bydump_projector
. That seems proof enough that these extract the original swf file, as it exists inside the exe. WhileFFDec
offers a stripped-down lib version, its scope is much greater than just extracting swf from exe, alsodump_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 ofdump_projector
(an old app from 2011), but was handled successfully by ffdec, so maybe it was worth considering.
Dead download for h4sh3m Virtual Apps Dependency Extractor
Extractor.rar
:
Extractor.rar
, the content is same;Thinstall Extractor.rar
:
What is a password for archives?
Dead download for h4sh3m Virtual Apps Dependency Extractor
Extractor.rar
:
- http://hashem20.persiangig.com/crack%20tools/Extractor.rar
- From my own backup, uploaded to GitHub: Extractor.rar.gz
https://m.blog.naver.com/nova386/100199655630
- is just a repack of
Extractor.rar
, the content is same;- backup, uploaded to GitHub: Unpack.zip
Thinstall Extractor.rar
:
What is a password for archives?
My bad, I didn't noticed that BOTH of Extractor.rar
and Unpack.zip
had a password.
However:
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.
What is a password for archives?
My bad, I didn't noticed that BOTH of
Extractor.rar
andUnpack.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
andUnpack.dll
), and the CRC matches to the ones inExtractor.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.
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
ExeInfoPE v0.0.7.6 https://www22.zippyshare.com/v/RoJZCnQ8/file.html
Exeinfo PE 0.0.7.7 lconvert 6.4.2.0 QuickBMS 0.12.0.0 UPX 4.0.2.0
@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?
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
msgunfmt 0.22.0.0 Pea 1.1.5.0
What is a password for archives?
My bad, I didn't noticed that BOTH of
Extractor.rar
andUnpack.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
andUnpack.dll
), and the CRC matches to the ones inExtractor.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.
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.
Please report outdated extractors here
If you want to request a new extractor being added to UniExtract, please open a new issue instead.
Notes