-
Notifications
You must be signed in to change notification settings - Fork 121
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
Innoextract doesn't extract multiple install files #37
Comments
In these multi-file setups the .exe typically doesn't store any files but only the headers that describe where and how the files are stored - so some of the .bin files must be read.
Install shield files for what? If they are for the game and not some extra utility (like Foxit Reader / DirectX / MSVC runtime / .NET runtime / ...) then I haven't seen that layout from GOG before. What size do these files have (ie: are they large enough to contain the game files)? I don't have access to a version 2.5.0 installer - besides The Witcher 2 (which seems to use a different versioning scheme), the newest GOG installer I have is versioned 2.1.0.6 - maybe they did change something. Can you please post the complete console output of:
and
and
|
Install shield files for the game installer itself. Eula, various .pngs that are shown in the background of gog installs.
and
and:
|
Hm, that is odd… Normally the output for multi-part installers would start with something like:
You can see that the first The |
Unrar demands a password for the bin files, which I have no idea where I can find that.
|
I don't think there's much I can do here then - extracting RAR files is certainly out of the scope of the project.
It is probably embedded in th compiled Inno Setup script code, possibly obfuscated - I have seen something similar with other installers that used Inno Setup's encryption feature, but have no idea why GOG would do that. Getting to that password could be very hard - doing it reliably would mean implementing Inno Setup scripting and the WinAPI calls it supports, including loading and running external helper DLLs. At that point you might as well run the installer directly (there should be a non-interactive mode as well), either on Windows or under Wine. |
How can it use RAR? Innosetup is an open source tool, and there is no open RAR compressor. I think it's some confusion. This requires some further investigation. |
I don't think Inno Setup is directly using rar here. The Have you seen any other GOG installers like this? I'm only aware of Divinity: Original Sin so far. |
@dscharrer : You are right. I just checked it for Deponia (the first game, 2.2.0.8). Other games that were reported to be affected by this: Heroes of Might and Magic 5, French version 2.1.0.22 For first Deponia, the first file setup_deponia_2.2.0.8.exe is an innosetup archive, and the second file (setup_deponia_2.2.0.8.bin) is an encrypted RAR archive. Is there any way to extract the scripts from the package made by innosetup which are executed by the installer? May be then it will be possible to figure out how that password is generated. |
It appears this is more common after all :(
However not all installers with version 2.1+ and multiple files are affected. At least this one is fine:
Smaller installers with only the
Not currently, but that is easy to add - it's part of the headers that innoextract already needs to decompress and parse. I'll look more into this, thanks for the update. WTF is GOG encrypting installers for DRM-free games anyway? |
No idea and it's indeed rather weird for GOG to do such a thing. I'm still waiting for any concrete answer from them. See related discussions here: |
Thanks to great help from immi101 from the GOG forums. He figured out that password is generated as md5sum of the game ID. Id can be extracted from the installations script (install_script.iss) For Neverwinter Nights for example:
You need 1207658890. To get the password make md5sum using that as a string. For example to test it with unrar
You'll get 7387bbd6cc05b8c37e1c21b3061f241c That's the password for unrar. You can also fetch the game ID from the GOG site page for that game as follows:
|
While unrar is non-free software, RAR 3.0 archives can be extracted with unar, which is free software (LGPL 2.1+): |
Yes, unrar isn't an issue to use. |
Turns out |
Here's a modified innoextract build: http://constexpr.org/innoextract/files/snapshots/innoextract-1.5-rc1/ Additions:
Any thoughts? The |
Sounds good. May be it would be good to add an option for extracting all .iss data as well? |
Some news on the topic: GOG.com decided to drop the password encryption on their installers. I didn’t check if it’s done yet. |
As far as I can tell, it's not done yet. There's been no indication that new installers have been released so far, either via the flagging system or via manual announcement in the "What did just update?" thread. |
Both additional Inno Setup installers and RAR archives from recent multi-part GOG.com installers are supported. Fixes: issue #37
1.5 is out with the |
Sorry to reopen this but I want to list the contents of an old installer and I'm being asked for unrar or unar, I already have unrar on my PATH but innoextract keeps asking for it, I'm using Windows 10, I also tried copying the unrar.exe file to the program directory to no avail. |
I tried to extract the GOG Installer for Divinity: Original Sin but innoextract just extracts the.exe file (I think), not the 3 .bin files that are part of the install. The files on GOG are:
setup_divinity_original_sin_2.5.0.11.exe
setup_divinity_original_sin_2.5.0.11-1.bin
setup_divinity_original_sin_2.5.0.11-2.bin
setup_divinity_original_sin_2.5.0.11-3.bin
It extracts a /tmp (files for the install shield) and /app (contains GameuxInstallHelper.dll Support.ico ) folder, but not all the game files.
The text was updated successfully, but these errors were encountered: