Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Steamless - Steam DRM Remover / Unpacker

Featured Replies

  • Author
  • Localization

atom0s, posted Thu Sep 10, 2015 8:32 pm (7382)


What is Steamless
Steamless is a DRM remover for the SteamStub DRM that has been added to most newer games released on Steam.

Main Repository
Legal
I, atom0s, am not responsible for what you do with this source code. I do not condone piracy and wish that if you choose to remove the DRM of a Steam game, do so with a game that you already own. Use this code at your own risk!

Notes
I am not releasing a binary form of this project for legal reasons.
Instead, the code is posted as an educational piece of work.

The code is compiled using Visual Studio 2015.

Special Note: This will only remove the SteamStub DRM. If the game makes use of the steam_api.dll file, then you will need to manually remove the usage of that file yourself. (Or create a proxy DLL that just nulls all the exports so that the game assumes its working etc.)
  • Author
  • Localization

Ekey, posted Sat Sep 12, 2015 3:14 pm (7423)


Interesting stuff. Thanks for sharing ;)
  • Author
  • Localization

atom0s, posted Sat Feb 13, 2016 7:41 am (11384)


I have moved this project to Gitlab as Github has been bought over by corporate greed.


(This has undergone a lot of updates since I posted here last. The Steamless repo is now the main repo and is maintained in C# rather then C/C . It supports v2, v3 and v3.1 of SteamStub DRM now.)
  • Author
  • Localization

Xiron, posted Tue Feb 16, 2016 9:18 am (11448)


Any chance on a compiled build for the latest version?
  • Author
  • Localization

atom0s, posted Sat Feb 20, 2016 3:27 am (11540)


Xiron wrote:
Any chance on a compiled build for the latest version?


For legal reasons, no. I do not distribute compiled binaries for this. You can download Visual Studio for free and compile it yourself though. Visual Studio community is free:
https://www.visualstudio.com/products/v ... t-editions
  • Author
  • Localization

atom0s, posted Wed Sep 07, 2016 2:05 am (17290)


Steamless v3
Image

Info
I decided to rewrite Steamless with a UI since I had a lot of emails / private messages from people asking me how to use the old version etc. Along with that, the older version was not extendable or friendly to others developing unpackers. This new version is now fully done via plugins (Example plugin source code is included in the release) allowing others to easily create their own unpackers.

Download / Information
http://atom0s.com/forums/viewtopic.php?f=25&t=146
  • Author
  • Localization

atom0s, posted Mon Jan 23, 2017 10:48 am (20367)


Changelog

v3.0.0.1
  • PeFile32 - Added support for reading the ImageTlsDirectory section.
  • SteamStub Variant 3.1 (x86) - Adjusted the unpacker to attempt to use the Tls callback as the real OEP if general unpacking fails.

v3.0.0.2
  • Adjusted Steamless to use older Aero presentation library for Windows 7 support.

v3.0.0.3
  • Fixed issue with variant 2.0 (x86) unpacker failing to unpack files with non-encrypted code sections.
  • Author
  • Localization

atom0s, posted Mon Jan 23, 2017 10:49 am (20368)


Changelog

v3.0.0.4 - 64bit Support!
  • Steamless.Unpacker.Variant30.x86
    • Fixed issue with header size not unpacking properly for certain files.
    • Fixed issue with TLS callbacks not being unpacked properly when present.
  • Steamless.Unpacker.Variant30.x64
    • Added support for 64bit version of SteamStub Variant 3.0.
  • Steamless.Unpacker.Variant31.x64
    • Added support for 64bit version of SteamStub Variant 3.1

Steamless source code and such is now hosted back on Github here:
https://github.com/atom0s/Steamless

The latest release can be found here:
https://github.com/atom0s/Steamless/releases/latest
  • Author
  • Localization

Ekey, posted Tue Jan 24, 2017 12:49 pm (20390)


Great job! ;)
  • Author
  • Localization

atom0s, posted Mon Apr 16, 2018 6:32 am (34077)


Changelog

v3.0.0.5
  • Steamless.Unpacker.Variant20.x86
    • Added fallback pattern for variant 2.0 (x86).
  • Main Program
    • Adjusted the default window size on startup so that the full plugin names are seen with default screen settings.
  • Steamless.Unpacker.Variant31.x86
    • Added support for new SteamStub v3.1.2 variant.

Changelog

v3.0.0.6
  • Steamless.Unpacker.Variant31.x64
    • Added support for new SteamStub v3.1.2 variant.
  • Overall
    • Updated all plugins to make use of reflection to get their versions from their assembly info.
    • Added ignore for Windows image cache file. (Thumbs.db)
    • Updated all copyrights to include 2018.
    • Updated the list of supported versions.
  • Author
  • Localization

atom0s, posted Wed Jun 27, 2018 8:13 am (36219)


v3.0.0.7
  • Steamless.Unpacker.Variant20.x86
    • Added SteamStub 2.x variant D0 (header size) support.
    • Fixed some issues with the 2.x disassembler using incorrect types.
    • Updated the SharpDisasm.dll file to latest version.

https://github.com/atom0s/Steamless/releases/latest
  • Author
  • Localization

atom0s, posted Sat Mar 30, 2019 8:39 am (46196)


v3.0.0.8
  • General code cleanup.
  • Added new experimental features option.
  • Added new SteamStub 2.x variant offset dumper. (Experimental Feature)

The new SteamStub 2.x variant offset dumper should be able to dump most of the v2 files that would fail before. This newer feature is experimental for now and uses disassembling to pull the offsets instead. This has only been tested on a few files so far, but all seems to work ok. In order to use this feature, you must check the new 'Use Experimental Features' box before attempting to unpack a file.

https://github.com/atom0s/Steamless/releases/latest
  • Author
  • Localization

GHFear, posted Thu Jun 06, 2019 12:10 pm (48535)


Thanks for this tool :) Very useful.
  • Author
  • Localization

aluigi, posted Thu Jun 06, 2019 7:12 pm (48546)


I agree
  • Author
  • Localization

atom0s, posted Fri Jun 07, 2019 3:57 am (48560)


Thanks for the kind words :) Glad you guys find it useful. Same goes for all your work/tools aluigi, tons of useful stuff.
  • Author
  • Localization

atom0s, posted Fri Sep 24, 2021 6:04 am (66626)


Steamless v3.0.0.10
  • Updated copyright date ranges across the project.
  • Fixed issue with memory errors due to incorrect structure mapping handling.

Steamless v3.0.0.11
  • Renamed SteamStub Variant 2.0 to 2.1. (This is not technically the first version of 2.0.)
  • Added support for real SteamStub Variant 2.0 (Fixes/closes #37)
  • General code cleanup.
  • Adjusted Paypal URLs.


Steamless v3.0.0.12
  • Fixed 2.1 (x86) unpacker using the wrong encryption size when the .text section is encrypted. (Fixes #57)

Get the latest version here: https://github.com/atom0s/Steamless/releases/latest
  • Author
  • Localization

atom0s, posted Sat Mar 26, 2022 9:56 am (70726)


Steamless v3.0.0.13 Released

Highlights

  • Add new plugin to support unpacking SteamStub variant v1.0 (x86) files. (Beta until more files are found to test with.)
  • Add new option to allow disabling of section realignment.
  • Add support for handling files packed with TlsCallback overrides.
  • Add new option to zero the DOS stub data when unpacking.
  • DontRealignSections and ZeroDosStubData features are now default enabled.
  • Add new option RecalculateFileChecksum to allow unpacked files to have their PE checksum recalculated.

Full Changelog

  • API: PE64 - Add check for TlsDirectory.AddressOfCallBacks == 0 to prevent attempting to reference invalid data.
  • Unpacker: v31.x64 - Adjust size of data searched when determining the variant version. Fixes #56
  • Misc: Update project copyrights.
  • Misc: Remove some unused/dead code from the UI.
  • API: Add ToString overrides to the section entries to allow easier debugging.
  • Unpacker: v31.x64 - Remove code section size check. (Some virtualized files will have an empty code section.)
  • Unpacker: v31.x64 - Allow empty code section files to still unpack by skipping decryption step.
  • API: Add new option to allow disabling of section realignment.
  • Core: Add support for new disable section realignment option.
  • Unpacker: v20.x86 - Add support for new disable section realignment option.
  • Unpacker: v21.x86 - Add support for new disable section realignment option.
  • Unpacker: v30.x86 - Add support for new disable section realignment option.
  • Unpacker: v30.x64 - Add support for new disable section realignment option.
  • Unpacker: v31.x86 - Add support for new disable section realignment option.
  • Unpacker: v31.x64 - Add support for new disable section realignment option.
  • API: PE32 - Fix SizeOfImage alignment.
  • API: PE64 - Fix SizeOfImage alignment.
  • Unpacker: v20.x86 - Fix SizeOfImage alignment.
  • Unpacker: v21.x86 - Fix SizeOfImage alignment.
  • Unpacker: v30.x64 - Fix incorrect TlsOepRva being stored and used.
  • Unpacker: v30.x64 - Fix incorrect TlsOepRva calculations when reading payload and SteamDRMP.dll.
  • Unpacker: v31.x64 - Fix incorrect TlsOepRva being stored and used.
  • Unpacker: v31.x64 - Fix incorrect TlsOepRva calculations when reading payload and SteamDRMP.dll.
  • Unpacker: v30.x64 - Renamed header field Unknown0003 to HasTlsCallback.
  • Unpacker: v30.x64 - Add support for handling files packed with TlsCallback overrides.
    • This feature is currently only supported in this variant for the time being. (Until other samples are provided that have a TlsCallback override for the other variants.)
    • Notes on how this file type works can be found here: #20 (comment)
  • API: PE32 Adjusted FindPattern to return a long instead of uint. Default return is now -1.
  • API: PE36 Adjusted FindPattern to return a long instead of uint. Default return is now -1.
  • Unpackers: Updated all usages of FindPattern to reflect new API change.
  • Begin variant v1.0 x86 plugin support.
  • Update project information copyrights.
  • Unpacker: v10.x86 - Finish implementing SteamStub variant v1.0 (x86) unpacker.
  • API: Add new option to zero the DOS stub data when unpacking.
  • Core: Add UI option to enable/disable the new zero DOS stub data option.
  • Unpackers: Add support for new zero DOS stub data option.
  • API: DontRealignSections and ZeroDosStubData are now default enabled as this is the general 'correct' way to handle most files. (Some files do require the section alignment to happen and some files may use the DOS stub for self-validation and such. Adjust accordingly when using Steamless.)
  • Core: Fix typo with new ZeroDosStubData option checkbox using wrong field bool.
  • API: Add new option RecalculateFileChecksum to allow unpacked files to have their PE checksum recalculated.
  • API: PE32 - Add new functionality to Pe32Helpers to recalculate a PE file checksum.
  • Unpackers: (x86) Ensure all unpacked files default to a checksum of 0.
  • Unpackers: (x86) Add support for new RecalculateFileChecksum setting.
  • API: PE64 - Add new functionality to Pe64Helpers to recalculate a PE file checksum.
  • Unpackers: (x64) Ensure all unpacked files default to a checksum of 0.
  • Unpackers: (x64) Add support for new RecalculateFileChecksum setting.

Other Changes

  • Repository has been heavily cleaned up.
  • Labels for issues/pull requests have been redone.
  • All past issues/pulls have had their labels updated to reflect the new labeling setup.
  • Most old pending issues are now resolved.

Get the latest version here: https://github.com/atom0s/Steamless/releases/latest
  • Author
  • Localization

atom0s, posted Tue Apr 05, 2022 5:12 am (70865)


Steamless v3.1.0.0 Released

Highlights

  • Steamless now includes a command line version. (Steamless.CLI.exe)

Full Changelog

  • Added Steamless.CLI to run Steamless from the command line.
  • Unpacker: v10x86 - Fix incorrect output path when compiled for Release mode.

Command Line Options

The command line version of Steamless allows for the following arguments to be used:

Code:
--quiet - Disables output of debug log messages.
--keepbind - Keeps the .bind section in the unpacked file.
--keepstub - Keeps the DOS stub in the unpacked file.
--dumppayload - Dumps the stub payload to disk.
--dumpdrmp - Dumps the SteamDRMP.dll to disk.
--realign - Realigns the unpacked file sections.
--recalcchecksum - Recalculates the unpacked file checksum.
--exp - Use experimental features.


Get the latest version here: https://github.com/atom0s/Steamless/releases/latest
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.