It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
I get an "unknown identifier" on Goodbye Deponia.
try going past the language selection dialog before attaching. I tested this with the french Neverwinter Night which doesn't have this selection dialog, i.e. it goes right to the "options/accept EULA/install" dialog.
Yeah, removing or adding libwine-dbg:i386 doesn't change that backtrace form. So the actual CryptProtectMemory is found in crypt32.dll? When I set this:

set $BreakOnDllLoad=1

then winedbg breaks on each dll load. I see that unrar.dll is loading crypt32.dll. It is actually implemented in Wine partially: http://wiki.winehq.org/Crypt32. What happens when some method is not implemented?

UPDATE: I wonder what will happen if I'll just pull native crypt32.dll in.
Post edited December 25, 2014 by shmerl
avatar
shmerl: What happens when some method is not implemented?
depends on how the application was coded. In this case the installer actually checks if the method is available and only uses it if it exists.

native crypt32 might be worth a try
duh, ok generating the password is actually quite easy. its simply the md5 hash of the gameID

for Neverwinter Night the gameID is 1207658890:
go to any md5 calculator(here for example), enter the id, generate the hash and voila there is your password.

or on linux: echo -n '1207658890' | md5sum
(i think)

don't know if there is any way to get the gameID from the website for a game, but if you extract the installer with innounp and then look at the install_script.iss, there is this line:

Root: HKLM; Subkey: "SOFTWARE\GOG.com\Games\1207658890"; ValueName: "gameID"; ValueType: String; ValueData: "1207658890"; Components: Component0; MinVersion: 0.0,5.0; Flags: uninsdeletekey

(since neverwinter nights is the only game i own with this new installer, i haven't actually verified this with any other game)
avatar
immi101: try going past the language selection dialog before attaching. I tested this with the french Neverwinter Night which doesn't have this selection dialog, i.e. it goes right to the "options/accept EULA/install" dialog.
Doesn't make a difference.
avatar
immi101: duh, ok generating the password is actually quite easy. its simply the md5 hash of the gameID

for Neverwinter Night the gameID is 1207658890:
go to any md5 calculator(here for example), enter the id, generate the hash and voila there is your password.

or on linux: echo -n '1207658890' | md5sum
(i think)

don't know if there is any way to get the gameID from the website for a game, but if you extract the installer with innounp and then look at the install_script.iss, there is this line:

Root: HKLM; Subkey: "SOFTWARE\GOG.com\Games\1207658890"; ValueName: "gameID"; ValueType: String; ValueData: "1207658890"; Components: Component0; MinVersion: 0.0,5.0; Flags: uninsdeletekey

(since neverwinter nights is the only game i own with this new installer, i haven't actually verified this with any other game)
dcc34fbbfc5f237919fbf258edd567e4 is indeed the password for Goodbye Deponia! :)
Post edited December 25, 2014 by Kristian
avatar
immi101: duh, ok generating the password is actually quite easy. its simply the md5 hash of the gameID

for Neverwinter Night the gameID is 1207658890:
go to any md5 calculator(here for example), enter the id, generate the hash and voila there is your password.

or on linux: echo -n '1207658890' | md5sum
(i think)

don't know if there is any way to get the gameID from the website for a game, but if you extract the installer with innounp and then look at the install_script.iss, there is this line:

Root: HKLM; Subkey: "SOFTWARE\GOG.com\Games\1207658890"; ValueName: "gameID"; ValueType: String; ValueData: "1207658890"; Components: Component0; MinVersion: 0.0,5.0; Flags: uninsdeletekey

(since neverwinter nights is the only game i own with this new installer, i haven't actually verified this with any other game)
Wow, that's a great find. The ID is actually available on the game page. Here is how you can extract it manually without using innoup (that's not a solid method though, it depends on the HTML format of the game page):

curl -s -o- 'http://www.gog.com/game/neverwinter_nights_diamond_edition' | pcregrep --buffer-size 1M -o1 "addToCart\('/cart/add/(\d+)'\)"

Or for goodby Deponia:

curl -s -o- 'http://www.gog.com/game/goodbye_deponia' | pcregrep --buffer-size 1M -o1 "addToCart\('/cart/add/(\d+)'\)"

But since the info is available in the script, innoextract can use that to automate the unpacking of the RAR file. I'll update the bug with that information.
Post edited December 26, 2014 by shmerl
These are very good news.

It indicates that GOG didn't try to make the installer less accessible, doesn't it?
Anyway, I would still like to hear an explanation.
avatar
Urnoev: These are very good news.

It indicates that GOG didn't try to make the installer less accessible, doesn't it?
Anyway, I would still like to hear an explanation.
It did make it less accessible, until time was spent on investigating and finding ways to bypass this nonsense. So no, GOG should absolutely not use this anyway.
avatar
shmerl: It did make it less accessible, until time was spent on investigating and finding ways to bypass this nonsense. So no, GOG should absolutely not use this anyway.
Of course not. But they would have used a better password if they planned to make it impossible to access the installers.

Considering the latest decisions of GOG, for example the introduction of regional pricing, I'm not sure anymore what to think or believe about this.
avatar
Urnoev: Of course not. But they would have used a better password if they planned to make it impossible to access the installers.
They could just avoid using any passwords. What's the point in it?

UPDATE1
I get this for Goodbye Deponia

curl -s -o- 'http://www.gog.com/game/goodbye_deponia' | pcregrep --buffer-size 1M -o1 "addToCart\('/cart/add/(\d+)'\)" | md5sum

1906878d167262f7f4364a89ad79a933

And it fails to work as a password though.

UPDATE2:
Ah, I figured. There are a few other games that can be listed on the same page. There can be some way to narrow down the search.
Post edited December 26, 2014 by shmerl
shmerl, this worked fine for me, I found the game ID in the installscript: http://www.gog.com/forum/general/on_gnulinux_has_anyone_be_able_to_extract_the_rar_innosetup_installers/post81
Yes, I know it's in the install script. I'm trying to find a way how to extract the game id from the site page. It's there, but mixed up with ids of other games in the related series. Trying to find a way to select the actual game id only.

Data in the install script will be useful for innoextract to actually unpack the whole thing.
Ah, I figured. You shouldn't put output of curl / grep like that right into md5sum since it appends the endline to it. Otherwise this method for getting the id is correct. Here is a script that takes url as parameter:

#!/bin/bash
game_id=$(curl -s -o- "$1" | pcregrep --buffer-size 1M -o1 "addToCart\('/cart/add/(\d+)'\)" )
printf $game_id | md5sum | cut -d ' ' -f 1

For example call it gog_unrar_pass.sh and put it somewhere in your PATH.

Then make gog_unrar.sh as follows:

#!/bin/bash

# $1 - encrypted bin file
# $2 - GOG game URL
unrar x "$1" -p$(gog_unrar_pass.sh "$2")

And call it as:

gog_unrar.sh setup_deponia_2.2.0.8.bin 'http://www.gog.com/game/deponia'

Ideally innoextract should do all that taking the id from the setup script.
Post edited December 26, 2014 by shmerl
I updated the innoextract bug with this info. Thanks again to @immi101 for digging into it.
Post edited December 26, 2014 by shmerl