Steamless is a specialized software designed to remove the Digital Rights Management (DRM) protections embedded within applications and games distributed via Steam, specifically targeting the SteamStub variants. This tool aims to streamline the process of unpacking Steam DRM-protected files by offering a unified solution capable of handling all known versions of SteamStub DRM. Its development is focused on maximizing compatibility to support as many Steam-based titles as possible, although practical testing may be limited by individual resources.
Note: Due to budget constraints, I am unable to verify compatibility with every game firsthand.
Donations and Support
If you find Steamless helpful, consider expressing appreciation through donations or sponsorships:
- GitHub Sponsorship: https://github.com/users/atom0s/sponsorship
- PayPal: https://www.paypal.me/atom0s
- Patreon: https://www.patreon.com/atom0s
Functionality of Steamless
The primary purpose of Steamless is to strip away the SteamStub DRM layer that is applied to game executables via the Steamworks SDK. By doing so, it facilitates further analysis, modification, or preservation of game files free from DRM restrictions.
What Steamless Will Not Do
Steamless strictly adheres to its scope and purpose. It will never:
- Remove or interfere with the Steamworks API integration, such as `steam_api.dll` or `steam_api64.dll`.
- Distribute or develop emulators for Steam’s API.
- Handle Valve’s CEG (Custom Executable Generation) DRM used in some older titles.
- Promote or facilitate piracy or illegal game access.
- Bypass anti-cheat mechanisms or other protections implemented by game developers.
Requests to bypass such protections or run games without Steam will be ignored and may be blocked, as this falls outside the project’s intended scope.
Understanding SteamStub DRM
According to the Steamworks documentation, Steam’s DRM system wraps game executables to verify their authenticity when launched through Steam. This DRM ensures that the game runs only under an authorized Steam session, providing a safeguard against unauthorized copying. Steam also offers encryption measures to protect game media during distribution, preventing early leaks by keeping game data encrypted until the moment of release. For more details, see the official Steamworks API documentation.
Supported Versions
Steamless currently supports various versions of SteamStub DRM, including:
- SteamStub Variant 1: 32-bit support, primarily tested with a single sample.
- SteamStub Variant 2: v2.0.0 and v2.0.1, supporting 32-bit systems.
- SteamStub Variant 3: Versions 3.0.0, 3.0.1, 3.1.0, and 3.1.2, with support for both 32-bit and 64-bit architectures.
Note: The version numbers are approximate and based on observable changes in the DRM and sample analysis. A more formal versioning scheme may be adopted later.
Licensing and Legal Notice
Steamless is distributed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International license. It is intended solely for educational purposes, aimed at understanding DRM technologies. The software is provided as-is, with no warranties regarding its functionality or suitability. It should only be used on legally purchased and owned games. Steamless makes no association with Steam or Valve, and no code is derived from Valve’s proprietary sources.
Use of Steamless is at your own risk. The developer, atom0s, disclaims responsibility for any consequences resulting from its use. Redistribution of unpacked files is prohibited.
Acknowledgments
Special thanks to Cyanic (Golem_x86) for assistance with header analysis and other technical guidance. More about their contributions can be found here.
Building Steamless
The project is developed using Visual Studio 2022. To compile, simply load the provided solution file (`.sln`) and build without modifications. No additional changes are typically necessary.
Contributing to Steamless
Contributions are encouraged but must follow certain guidelines:
- Maintain the existing coding style and naming conventions.
- Use spaces instead of tabs, with four spaces per indentation level.
- Avoid introducing external dependencies without prior discussion.
- Do not alter or remove copyright notices without approval.
- Ensure that the software remains adaptable to multiple titles and does not hard-code target-specific data.
For issues or feature requests, visit the issue tracker.
—
In developing tools like this, understanding key concepts such as entity-component systems in game development can be valuable. Additionally, exploring how to enhance user experience on smaller screens is pertinent when designing user interfaces for such utilities. For insights on advancing your project through research points, see this guide on acquiring more research points in game development. Lastly, grasping the role of developers in the gaming industry can deepen your appreciation of the technical landscape, as explained in this terminology overview.
