atom0s / Steamless

Steamless is a DRM remover of the SteamStub variants. The goal of Steamless is to make a single solution for unpacking all Steam DRM-packed files. Steamless aims to support as many games as possible.
Other
3.33k stars 210 forks source link

Multiple Issues With Variant 2.1 (x86) Unpacker #102

Open atom0s opened 1 year ago

atom0s commented 1 year ago

The variant 2.1 (x86) unpacker has several bugs. Because of how this variant works, it makes use of the SteamDRMP.dll file to handle various parts of the unpacking/decryption. The current way that Steamless is handling this causes the offsets being pulled to not be correct all the time. While some v2.1 files work fine, others fail entirely because the data being used is wrong.

Additional patterns would be ideal to confirm which offsets are being used for which parts of the unpacking.

The main issue(s) stem from:

There needs to be a better manner of handling these offsets that are pulled from the DLL to ensure all files making use of this variant work correctly.

The following issues are affected by this problem: #16, #46, #101

JollyWizard commented 11 months ago

Issues with Obulis, which reports v2.1 as well.

After unpacking with default options, it reports that steam must be running. Tried with various options and get same result or it launches and the process terminates immediately. I ran it from the CLI and no errors were reported before the process dies.

atom0s commented 11 months ago

Issues with Obulis, which reports v2.1 as well.

After unpacking with default options, it reports that steam must be running. Tried with various options and get same result or it launches and the process terminates immediately. I ran it from the CLI and no errors were reported before the process dies.

If Steamless worked on the file, then that kind of error is due to the game also using the Steamworks API. (steam_api.dll / steam_api64.dll) Steamless does not remove that.

JollyWizard commented 11 months ago

Issues with Obulis, which reports v2.1 as well. After unpacking with default options, it reports that steam must be running. Tried with various options and get same result or it launches and the process terminates immediately. I ran it from the CLI and no errors were reported before the process dies.

If Steamless worked on the file, then that kind of error is due to the game also using the Steamworks API. (steam_api.dll / steam_api64.dll) Steamless does not remove that.

Thanks for clarifying. I wasn't familiar with the symptoms.

atom0s commented 7 months ago

Parts of these issues have been fixed with the latest version of Steamless. (3.1.0.5)

rec32 commented 3 months ago

I got an exception with game "Iron Front: Liberation 1944" (Iron Front: Digital War Edition) which uses SteamStub 2.1

Index out of range. The index must be a positive number and its size must not exceed the size of the collection

No options helped against this, I'm using 3.1.0.5

atom0s commented 3 months ago

I got an exception with game "Iron Front: Liberation 1944" (Iron Front: Digital War Edition) which uses SteamStub 2.1

Index out of range. The index must be a positive number and its size must not exceed the size of the collection

No options helped against this, I'm using 3.1.0.5

Hello, can you upload the exe for that game somewhere and link it here?

MapleHinata commented 3 months ago

I'm currently encountering this issue with the latest depot of Final Fantasy XIII (AppId 292120), with the default options, the latest version of Steamless reports an failure when attempting to decrypt the .text section, with the "Use Experimental Features" option enabled, Steamless outputs a broken executable.

Here is the executable. ffxiiiimg.zip