Coder Social home page Coder Social logo

atom0s / steamless Goto Github PK

View Code? Open in Web Editor NEW
3.0K 66.0 194.0 927 KB

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.

License: Other

C# 100.00%
drm steam steamstub-drm csharp

steamless's Introduction

steamless
Discord server license
sponsors paypal paypal

Steamless

Steamless is a DRM remover of the various SteamStub variants applied to applications and games released on Steam via the DRM tool in the Steamworks SDK.

Steamless aims to be a single solution for unpacking all variants of the SteamStub DRM, ranging from the very first version to the most recently released.

However, due to personal limited funds, I cannot test every game myself.

Donations

Want to say thanks for my work on Steamless? Feel free to donate or sponsor me:

What Steamless Will Do

Steamless will remove the SteamStub DRM protection layer that is applied via the DRM tool from the Steamworks SDK.

What Steamless Wont Do

Steamless WILL NEVER do any of the following:

  • Steamless will never remove the Steamworks API integration. (via steam_api.dll/steam_api64.dll)
  • Steamless will never include or distribute any emulator for the Steamworks API integration.
  • Steamless will never handle Valve's CEG (Custom Executable Generation) DRM that is used on some older games.
  • Steamless will never promote, encourage, or assist with piracy.
  • Steamless will never assist with bypassing anti-cheats or other protections in place by games.

Do not ask for help with running games without Steam. Your requests will be ignored/blocked.

That is not the scope or goal of this project.

What is SteamStub DRM?

From the Steamworks documentation:

Steamworks Digital Rights Management wraps your game's compiled executable and checks to make sure that it is running under an authenticated instance of Steam. This DRM solution is the same as the one used to protect games like Half-Life 2 and Counter-Strike: Source. Steamworks DRM has been heavily road-tested and is customer-friendly. In addition to DRM solutions, Steamworks also offers protection for game through day one release by shipping encrypted media to stores worldwide. There's no worry that your game will leak early from the manufacturing path, because your game stays encrypted until the moment you decide to release it. This protection can be added to your game simply by handing us finished bits or a gold master.

ref: hxxps://partner.steamgames.com/documentation/api

Supported Versions

Steamless currently supports the following SteamStub DRM variants:

  • SteamStub Variant 1
    • 32bit version is supported. (Support for this is only tested with 1 file so far.)
  • SteamStub Variant 2
    • v2.0.0
      • 32bit version is supported.
    • v2.0.1
      • 32bit version is supported.
  • SteamStub Variant 3
    • v3.0.0
      • 32bit version is supported.
      • 64bit version is supported.
    • v3.0.1
      • 32bit version is supported.
      • 64bit version is supported.
    • v3.1.0
      • 32bit version is supported.
      • 64bit version is supported.
    • v3.1.2
      • 32bit version is supported.
      • 64bit version is supported.

Note: Version numbers are not 'real'. They are superficial and are simply assumed versions based on major changes to the DRM and what has been observed in the various submitted file samples. A better versioning system may come at a later date.

Legal

Steamless is released under the following license:
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International

Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material 
as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether 
express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness 
for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of 
errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this 
disclaimer may not apply to You.

Steamless is not intended for malicious use or for the use of obtaining or playing games illegally.
Steamless should only be used on games that you legally purchased and own.

Steamless is not associated with Steam or any of its partners / affiliates.
No code used within Steamless is taken from Valve or any of its partners / affiliates.

Steamless is released for educational purposes in the hopes to learn and understand DRM technologies. 

Use Steamless at your own risk. I, atom0s, am not responsible for what happens while using Steamless. You take full reponsibility for any outcome that happens to you while using this application. Do not distribute unpacked files.

Thanks

Thanks to Cyanic (aka Golem_x86) for his notes and help with parts of the stub headers and such.
You can find his information here: http://pcgamingwiki.com/wiki/User:Cyanic/Steam_DRM

Compiling Steamless

Steamless is coded using Visual Studio 2022.
To compile, you should only need to load the sln file and compile as-is.

No changes should be needed to the solution or source.

Contributing To Steamless (Guidelines)

I welcome and encourage contributions to the Steamless project. However, I do have some guidelines I wish for people to follow when doing so.

  • Please follow the similar coding style / naming conventions found in Steamless already.
  • Please do not use tabs. Tabs should be 4 spaces instead.
  • Please do not introduce additional dependencies without a discussion before hand.
  • Please do not alter or remove any copyrights without a discussion prior.
  • Please do not hard code information specific to any one target. Steamless should be dynamic for all titles.

Discussions can be opened within the Issue tracker here:

steamless's People

Contributors

atom0s avatar pengc99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

steamless's Issues

[Steamless] Failed to unpack file.

Hello! So I have been trying to unpack a few different steam games, but everytime I click "Unpack", it logs the following:

[ExamplePlugin] ExamplePlugin was asked to check if it can process a file!
[Steamless] Failed to unpack file.

I have no idea why this is happening, but it happens one every game I try to unpack. The plugin setting is set on automatic by the way, but nothing changes even if I try the other plugins. Thanks!

Unable to unpack Endless Legend and Endless Space

Hi, I don't find any option useful to unpack both games. It doesn't detect any valid variant so I tried all individually but nothing happens. Only a message [Steamless] Failed to unpack file.

Thanks

Linux compatibility

I assume Linux isn't a priority, but would you be open to fixes to improve compatibility?

I tried to get this running with mono and wine, but unfortunately WPF apparently is pretty much a no-go even when installing Microsoft's dotnet runtime in wine. I'm not very familiar with c# or dotnet, but is there a simple less windows-specific way of creating UIs in C#?

And a related (possibly dumb) question; do you still have the code for the C++ version somewhere? I don't know C# at all, so I'd be more comfortable trying to get the C++ version running cross platform (and backporting whatever stuff is needed).

Problem Unpack Steam Stub 3.1 (X86) & 3.0 (X64)

Hi atom0s ı have issue unpack Steam Stub 3.1 (X86) & 3.0 (X64) game carmageddon max damage and metal gear solid ground zeroes,
if ı unpack the files (Note:I Use Steamless 3.0.0.11), files are unpacked but not work with game can you fix this problem please
ı upload orginal and stubbed files this link
carmageddon max damage Steam Stub 3.1 (X86)
https://www.filecad.com/aloX/CGMD.7z
gear solid ground zeroes 3.0 (X64)
https://www.filecad.com/aloZ/MGS.7z

Run Steamless over command line

I would like to include Steamless in a mod manager to automatically run it when setting up a game.
Is there some sort of command line interface for Steamless?

Leave one .exe extension in the file name after unpacking.

The .exe extension is hidden in Windows, and this is what creates confusion for many people.
As a result, the extension .exe remains twice, after renaming - "EXAMPLE.exe.exe".
Now "EXAMPLE.exe" after unpacking "EXAMPLE.exe.unpacked.exe".
Is it possible to change the file name after unpacking to "EXAMPLE.unpacked.exe"?
This would prevent a bunch of questions about renaming.

Steamless Unpacker Variant 2.1 After Unpack Looks Like Virus File

Hi atom0s Firstly I Thank You Make For This Tool,This Tool Work Flawless 🥇
But I Some Problem With Steamless Unpacker Variant 2.1, Everytime İf I Use Steamless Unpacker Variant 2.1 After Unpacked Exes Looks Like Virus File (TR/Crypt.XPACK.Gen).I Try To Close "Keep Bind Section" and Use "Experimental Features" But Didn't Change Anything, I Unpack 30+ Games With Your Tool But When Unpack Variant 2.1 I Have Problem Game Exes
Please Can You Fix This Problem ?
Note: My Opinion, Unpacking Good But Rebuild Process Have Some Problem
Best Regards
Dark Frost

Steamless can't unpack the executable of the Code 7 game

Steamless can't unpack the executable of the Code 7 game, not even with the experimental features enabled. Can something be done about this? It would be great to be able to play this game without Steam.
Here is the executable if you want to take a look at it.

Black ops 3 not unpacking

I’ve tried unpacking black ops 3 but it says unpacking failed the game is using steams drm could this game be made to be unpacked?

Fails to build on Linux: Invalid accessor body `=>', expecting `;' or `{'

Not sure if this tool supports Linux, but I'll post an issue anyway.

Attempted to build with Mono 4.4.1.0:
Running xbuild fails with this output:

itsme@antelope /tmp/Steamless [env]$ xbuild
XBuild Engine Version 14.0
Mono, Version 4.4.1.0
Copyright (C) 2005-2013 Various Mono authors

Build started 08/05/2019 11:47:12.
__________________________________________________
Project "/tmp/Steamless/Steamless.sln" (default target(s)):
	Target ValidateSolutionConfiguration:
		Building solution configuration "Debug|x86".
	Target Build:
		Project "/tmp/Steamless/Steamless.API/Steamless.API.csproj" (default target(s)):
			Target PrepareForBuild:
				Configuration: Debug Platform: x86
				Created directory "../Steamless/bin/x86/Debug/Plugins/"
				Created directory "obj/x86/Debug/"
			Target ResolveAssemblyReferences:
/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'PresentationCore' not resolved
				For searchpath {CandidateAssemblyFiles}
				Warning: {CandidateAssemblyFiles} not supported currently
				For searchpath {HintPathFromItem}
				HintPath attribute not found
				For searchpath {TargetFrameworkDirectory}
				Considered target framework dir /gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api, assembly named 'PresentationCore' not found.
				Considered target framework dir /gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/Facades/, assembly named 'PresentationCore' not found.
				For searchpath {PkgConfig}
				Considered PresentationCore, but could not find in any pkg-config files.
				For searchpath {GAC}
				Considered PresentationCore, but could not find in the GAC.
				For searchpath {RawFileName}
				Considered 'PresentationCore' as a file, but the file does not exist
				For searchpath ../Steamless/bin/x86/Debug/Plugins/
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationCore' as a file, but the file does not exist
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationCore.exe' as a file, but the file does not exist
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationCore.dll' as a file, but the file does not exist
/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'PresentationFramework' not resolved
				For searchpath {CandidateAssemblyFiles}
				Warning: {CandidateAssemblyFiles} not supported currently
				For searchpath {HintPathFromItem}
				HintPath attribute not found
				For searchpath {TargetFrameworkDirectory}
				Considered target framework dir /gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api, assembly named 'PresentationFramework' not found.
				Considered target framework dir /gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/Facades/, assembly named 'PresentationFramework' not found.
				For searchpath {PkgConfig}
				Considered PresentationFramework, but could not find in any pkg-config files.
				For searchpath {GAC}
				Considered PresentationFramework, but could not find in the GAC.
				For searchpath {RawFileName}
				Considered 'PresentationFramework' as a file, but the file does not exist
				For searchpath ../Steamless/bin/x86/Debug/Plugins/
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationFramework' as a file, but the file does not exist
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationFramework.exe' as a file, but the file does not exist
				Considered '/tmp/Steamless/Steamless/bin/x86/Debug/Plugins/PresentationFramework.dll' as a file, but the file does not exist
			Target GenerateSatelliteAssemblies:
			No input files were specified for target GenerateSatelliteAssemblies, skipping.
			Target CoreCompile:
				Tool /gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5/mcs.exe execution started with arguments: /noconfig /out:obj/x86/Debug/Steamless.API.dll Crypto/AesHelper.cs Extensions/FileStreamExtensions.cs Model/NavigatedEventArgs.cs Model/NotifiableModel.cs Model/ViewModelBase.cs PE32/NativeApi32.cs PE32/Pe32File.cs PE32/Pe32Helpers.cs PE64/NativeApi64.cs PE64/Pe64File.cs PE64/Pe64Helpers.cs SteamlessEvents.cs Events/LogMessageEventArgs.cs Events/LogMessageType.cs Services/LoggingService.cs SteamlessApiVersionAttribute.cs Model/SteamlessOptions.cs Model/SteamlessPlugin.cs Properties/AssemblyInfo.cs obj/x86/Debug/.NETFramework,Version=v4.5.2.AssemblyAttribute.cs /target:library /define:"TRACE;DEBUG" /nostdlib /platform:x86 /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Xaml.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Xml.Linq.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Data.DataSetExtensions.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/Microsoft.CSharp.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Data.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Net.Http.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Xml.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/WindowsBase.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/System.Core.dll /reference:/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/4.5-api/mscorlib.dll
Model/ViewModelBase.cs(73,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/ViewModelBase.cs(74,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/ViewModelBase.cs(82,17): error CS1055: An add or remove accessor expected
Model/ViewModelBase.cs(91,17): error CS1055: An add or remove accessor expected
Model/SteamlessOptions.cs(47,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(48,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(56,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(57,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(65,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(66,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(74,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(75,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(83,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
Model/SteamlessOptions.cs(84,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
			Task "Csc" execution -- FAILED
			Done building target "CoreCompile" in project "/tmp/Steamless/Steamless.API/Steamless.API.csproj".-- FAILED
		Done building project "/tmp/Steamless/Steamless.API/Steamless.API.csproj".-- FAILED
	Task "MSBuild" execution -- FAILED
	Done building target "Build" in project "/tmp/Steamless/Steamless.sln".-- FAILED
Done building project "/tmp/Steamless/Steamless.sln".-- FAILED

Build FAILED.

Warnings:

/tmp/Steamless/Steamless.sln (default targets) ->
(Build target) ->
/tmp/Steamless/Steamless.API/Steamless.API.csproj (default targets) ->
/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets (ResolveAssemblyReferences target) ->

	/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'PresentationCore' not resolved
	/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'PresentationFramework' not resolved

Errors:

/tmp/Steamless/Steamless.sln (default targets) ->
(Build target) ->
/tmp/Steamless/Steamless.API/Steamless.API.csproj (default targets) ->
/gnu/store/r4ipddqjd575sjm3azx6a2id12xva87a-mono-4.4.1.0/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

	Model/ViewModelBase.cs(73,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/ViewModelBase.cs(74,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/ViewModelBase.cs(82,17): error CS1055: An add or remove accessor expected
	Model/ViewModelBase.cs(91,17): error CS1055: An add or remove accessor expected
	Model/SteamlessOptions.cs(47,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(48,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(56,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(57,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(65,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(66,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(74,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(75,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(83,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'
	Model/SteamlessOptions.cs(84,16): error CS1043: Invalid accessor body `=>', expecting `;' or `{'

	 2 Warning(s)
	 14 Error(s)

Time Elapsed 00:00:00.6307230

Ground Zeroes fails to unpack

Detected as SteamStub 3.0, but unknown if there are any additional layers of protection such as Denuvo; which The Phantom Pain does have. "Failed to unpack file."

"Use Experimental Features" is no help, either.

Use an open source license

In the README you encourage people to contribute. However, under the current license (Creative Commons Attribution-NonCommercial-NoDerivatives), they are actually not allowed to; the license says they may not make changes. Would you consider using an open source license? ChooseALicense.com explains some of the choices in simple terms. I'll go over two common options.

There's MIT, which basically means anyone can do absolutely anything as long as they give you credit. This is good if you want something simple that you don't have to think about, and you don't really care if people make versions where they don't share.

Then there's GPLv3, which means people can make changes and contribute to the project, but they can't take any of the permissions away (i.e. they have to let everyone else do the things they were allowed to do, like make changes). This makes sure the code stays open.


If you want to use GPLv3, it's pretty simple. You can add this text to your project description:

Copyright (C) 2018 atom0s

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Usage instructions

I don't know at all how to use this tool, and I'm sure many people have the same issue.
There's only:

Compiling Steamless

Steamless is coded using Visual Studio 2015 (Update 3) at this time.
To compile, you should only need to load the sln file and compile as-is.

No changes should be needed to the solution or source.

DOS Stub Restoration and CRC Checksum Updating

Stub Background: I've noticed some executables using per-user unique data in the VLV section. The original DOS stub is destroyed.

I've added an option in my own compile to write the de facto DOS stub. If anyone is curious, will post here.

CRC Background: Executables are recommended to have their CRC checksum values set correctly (or set to Zero).

I've added an option in my own compile to update the CRC checksum after unpack using a Microsoft API (the recommended way of doing this.) If anyone is curious, will post here. I believe it possible that the CRCs, sometimes unique per user because of the VLV header's original contents, could be used to identify the original user's build...

I added these options in my own compile to v2, v3.0, v3.1, both x86 and x64. If anyone is curious, will post here.

stemless + Blade & Sorcery problem(maybe steamless's problem?)

game exe: https://www74.zippyshare.com/v/sgfa4EKT/file.html

Error you get in game

EntryPointNotFoundException: SteamAPI_ISteamClient_GetISteamGameSearch at (wrapper managed-to-native) Steamworks.NativeMethods.ISteamClient_GetISteamGameSearch(intptr,Steamworks.HSteamUser,Steamworks.HSteamPipe,Steamworks.InteropHelp/UTF8StringHandle) at Steamworks.SteamClient.GetISteamGameSearch (Steamworks.HSteamUser hSteamuser, Steamworks.HSteamPipe hSteamPipe, System.String pchVersion) [0x00011] in <7b87d15258b74e8cb8a7caa9db5ad167>:0 at Steamworks.CSteamAPIContext.Init () [0x001b8] in <7b87d15258b74e8cb8a7caa9db5ad167>:0 at Steamworks.SteamAPI.Init () [0x0000e] in <7b87d15258b74e8cb8a7caa9db5ad167>:0 at BS.PlateformSteam.Init (System.UInt32 steamAppID, System.String& errorMessage) [0x00033] in <07990e97cf3c4e34b0caf95fd9ab82ba>:0 at BS.PlateformSteam..ctor (BS.PlateformBase+Callback clbk) [0x0003c] in <07990e97cf3c4e34b0caf95fd9ab82ba>:0 at BS.GameManager+<Init>d__64.MoveNext () [0x003ad] in <07990e97cf3c4e34b0caf95fd9ab82ba>:0 at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00027] in <3a69dc1755714a688e272fb29550dc99>:0

64 bit support

Hello atom0s

Thanks very much for coding Steamless , hell of a program.

Do you intend to support 64 bit binaries?

You need 64 bit games?
I can help with that , if needed.

Regards.

Unnescessary realignment of virtual section sizes

When unpacking a game, Steamless rounds the virtual section size up to the page alignment. This is actually not necessary. Nearly all PE executables out there (both 32 and 64 bit) have those unaligned.

I think removing those lines will fix it, but I'm not sure, as I'm not familiar with the code.

section.VirtualSize = this.GetAlignment(section.VirtualSize, this.NtHeaders.OptionalHeader.SectionAlignment);

section.VirtualSize = (uint)this.GetAlignment(section.VirtualSize, this.NtHeaders.OptionalHeader.SectionAlignment);


Background: I unpacked a couple of Variant31.x86 games (ids: 745880, 924650, 937570, 937580) and compared them with their retail (DRM-free) versions. The only differences were MS-DOS stub (which is clobbered by SteamStub), and virtual section sizes.

This worked for me, but I have a few questions about reliability.

I own a game on Steam, and this program worked for me. (I used version 3.0.0.9)

I quickly tested the game with the new executable file and it worked, but I have a few concerns.

1:
Could this possibly cause glitches that are hard to notice? I mean, imagine that I play 20 hours of a game with the EXE file produced by Steamless. Could a glitch appear later as a result of using this new EXE file, or is it 100 percent as reliable as using the official EXE file from Steam?

2:
Is Steamless so perfect that I would be wasting money by buying the GOG version of the game? If the creator of Steamless says that some unwanted and unforeseen problems could be caused by using an executable file produced by Steamless, I'll buy the GOG version, but if the Steamless procedure is guaranteed to be flawless, I'll save money.

Full Disclosure: some of the problems mentioned in various comments in the Issue Tracker scared me, but I don't understand them, so I would like some reassurance.

Cannot unpack Liz ~The Tower and the Grimoire~

This game uses Steamstub 3.1 and is an RPG maker VX ACE game. It's unknown whether there are additional layers of protection but all previous games from the same publisher can be properly unpacked without any problem.

Steamless shows that the game is successfully unpacked, but when I click on the unpacked game, nothing opens.

‘Use experimental feature" doesn't resolve the problem.

Capture

The main EXE file is below
Game.zip

meet problem with steamapi init

I've bought a game on steam,and I use steamless to remove drm for some offline injection.
Though the steamless says that the unpack is successful,when I tried to launch the game without steam,there popped a window saying that:"steam setup:steam must be running to play this game(steamapi_init()failed)"
Bur when I tried to launch the unpacked exe inside steam ,it still works
What does this message means?the readme says that it will not remove the layers on steamapi ,but I've already had a valid one,confused

Unable to unpack BlazBlue Calamity Trigger

EXE cannot be unpacked using Steamless v3.0.0.11. Using experimental features will "successfully" unpack the exe, but if you use this unpacked exe to play the game will crash. Is it possible this is related to SteamStub 2.0?

BBCT.zip

SizeOfImage is incorrectly calculated

Some PE32s feature Sections out of order. A loop in RebuildSections adding together VirtualAddress and VirtualSize aligned to SectionAlignment (according to PE32 Specification) should be used to determine the 'biggest that will be mapped' into memory and accurately, the SizeOfImage.

Failing to unpack on newer windows versions?

I’ve tried unpacking three games. Stride, HL-2 and Titan souls. Failed all three times. Last time (In may) I tried unpacking Stride, it worked flawlessly. The only thing that has changed since is my windows version. Please look into it. Amazing tool btw.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.