Steamless icon indicating copy to clipboard operation
Steamless copied to clipboard

Multiple Issues With Variant 2.1 (x86) Unpacker

Open atom0s opened this issue 2 years ago • 12 comments

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:

  • https://github.com/atom0s/Steamless/blob/master/Steamless.Unpacker.Variant21.x86/Main.cs#L319
  • https://github.com/atom0s/Steamless/blob/master/Steamless.Unpacker.Variant21.x86/Main.cs#L415
  • https://github.com/atom0s/Steamless/blob/master/Steamless.Unpacker.Variant21.x86/Main.cs#L559

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

atom0s avatar Jul 02 '23 06:07 atom0s

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.

JollyWizard avatar Dec 11 '23 04:12 JollyWizard

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.

atom0s avatar Dec 11 '23 04:12 atom0s

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.

JollyWizard avatar Dec 11 '23 05:12 JollyWizard

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

atom0s avatar Mar 30 '24 05:03 atom0s

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

rec32 avatar Aug 18 '24 02:08 rec32

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?

atom0s avatar Aug 18 '24 02:08 atom0s

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

MapleHinata avatar Aug 21 '24 07:08 MapleHinata