Exetools  

Go Back   Exetools > General > Source Code

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 02-14-2015, 06:50
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
[C++] Steamless - SteamStub DRM Remover

What is 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.
However, due to personal limited funds, I cannot test every game myself.
  • Project Home: http://atom0s.com/forums/viewforum.php?f=25
  • Source Code: https://github.com/atom0s/Steamless
  • Bug Reports: https://github.com/atom0s/Steamless/issues
  • Pull Requests: https://github.com/atom0s/Steamless/pulls
  • Latest Release: https://github.com/atom0s/Steamless/releases/latest

Supported Versions
Steamless currently supports the following SteamStub DRM variants:
  • SteamStub Variant 1
    • There is currently no support for this version of the protection.
  • SteamStub Variant 2
    • 32bit version of this variant is supported.
  • SteamStub Variant 3.0.0
    • 32bit version of this variant is supported.
    • 64bit version of this variant is supported.
  • SteamStub Variant 3.0.1
    • 32bit version of this variant is supported.
    • 64bit version of this variant is supported.

Please note; these version numbers are superficial. They are an assumed version based on major changes to the DRM over its lifespan.

What is SteamDRM / SteamStub
Quote:
DRM

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: https://partner.steamgames.com/documentation/api
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 Notes
The newest version of Steamless is written in C# to make it more community friendly. Not many people code in C/C++ so I opt'd to go with C# since more of the hacking/cracking scene seems to like using .NET languages.

Steamless can be compiled using Visual Studio 2015. Community Edition should work fine for those that do not own a paid version or do not wish to pirate it. No special features are required from any of the paid versions of VS. By default, Steamless is compiled against the .NET Framework v4.5.2. This means that the compiled binary WILL NOT work on Windows XP.

Last edited by atom0s; 01-24-2017 at 03:56. Reason: Updated for newest version of project.
Reply With Quote
The Following User Gave Reputation+1 to atom0s For This Useful Post:
Computer_Angel (02-14-2015)
The Following 6 Users Say Thank You to atom0s For This Useful Post:
emo (04-21-2018), giv (12-02-2015), Indigo (07-19-2019), mm10121991 (01-28-2016), romero (09-08-2016), swell (01-31-2016)
  #2  
Old 02-14-2015, 23:51
emo emo is offline
Friend
 
Join Date: Dec 2010
Posts: 82
Rept. Given: 237
Rept. Rcvd 12 Times in 8 Posts
Thanks Given: 69
Thanks Rcvd at 8 Times in 6 Posts
emo Reputation: 12
drm removed play csgo online with steam?
Reply With Quote
The Following User Says Thank You to emo For This Useful Post:
Indigo (07-19-2019)
  #3  
Old 02-15-2015, 02:32
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
Quote:
Originally Posted by emo View Post
drm removed play csgo online with steam?
No, you will have to have a legit copy of the game to play it online as it makes use of Steams validation system / session system.
Reply With Quote
The Following User Says Thank You to atom0s For This Useful Post:
Indigo (07-19-2019)
  #4  
Old 02-15-2015, 16:44
evlncrn8 evlncrn8 is offline
VIP
 
Join Date: Sep 2005
Posts: 179
Rept. Given: 36
Rept. Rcvd 54 Times in 24 Posts
Thanks Given: 49
Thanks Rcvd at 117 Times in 69 Posts
evlncrn8 Reputation: 54
it only works on exe's with a .bind section?
Reply With Quote
The Following User Says Thank You to evlncrn8 For This Useful Post:
Indigo (07-19-2019)
  #5  
Old 02-16-2015, 04:31
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
Quote:
Originally Posted by evlncrn8 View Post
it only works on exe's with a .bind section?
I have not personally see any Steam DRM protected files that do not have this section. So yes it is one of the things it looks for specifically. If you know of any files protected with the DRM that do not have this section, feel free to upload the exe and I can check it out.

Right now I have put this project on the side due to some real life issues but in my spare time I do tinker with it still.
Reply With Quote
The Following User Says Thank You to atom0s For This Useful Post:
Indigo (07-19-2019)
  #6  
Old 02-16-2015, 08:08
leetone's Avatar
leetone leetone is offline
Family
 
Join Date: Apr 2014
Posts: 144
Rept. Given: 41
Rept. Rcvd 31 Times in 20 Posts
Thanks Given: 21
Thanks Rcvd at 50 Times in 36 Posts
leetone Reputation: 34
Of course you need a legit copy to play online. This we will never crack, you can connect to non-VAC servers but that's it.....Can't change how computers work.

I am honestly shocked that I'm explaining this to an XDA member....this isn't cs.rin.ru!!!!

AMAZING code OP.
Reply With Quote
The Following User Says Thank You to leetone For This Useful Post:
Indigo (07-19-2019)
  #7  
Old 02-16-2015, 16:36
n00b n00b is offline
Friend
 
Join Date: Mar 2009
Posts: 43
Rept. Given: 18
Rept. Rcvd 25 Times in 14 Posts
Thanks Given: 11
Thanks Rcvd at 59 Times in 20 Posts
n00b Reputation: 26
https://github.com/w4kfu/hacnpx/tree/master/SteamStub

Amazing how similar this code in Python is to yours, atom0s...?
Reply With Quote
The Following User Says Thank You to n00b For This Useful Post:
Indigo (07-19-2019)
  #8  
Old 02-16-2015, 20:39
evlncrn8 evlncrn8 is offline
VIP
 
Join Date: Sep 2005
Posts: 179
Rept. Given: 36
Rept. Rcvd 54 Times in 24 Posts
Thanks Given: 49
Thanks Rcvd at 117 Times in 69 Posts
evlncrn8 Reputation: 54
i have quite a few steam exe's without a bind section - want some?
Reply With Quote
The Following User Says Thank You to evlncrn8 For This Useful Post:
Indigo (07-19-2019)
  #9  
Old 02-17-2015, 01:19
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
Quote:
Originally Posted by evlncrn8 View Post
i have quite a few steam exe's without a bind section - want some?
Yes please if you want to share them.

Quote:
Originally Posted by n00b View Post
https://github.com/w4kfu/hacnpx/tree/master/SteamStub

Amazing how similar this code in Python is to yours, atom0s...?
My information and notes are based on this:
Code:
http://pcgamingwiki.com/wiki/User:Cyanic/Steam_DRM
If you wish to contact Cyanic to confirm it, feel free. I have been in discussions with him for the last 2 or so weeks about it.
Reply With Quote
The Following User Says Thank You to atom0s For This Useful Post:
Indigo (07-19-2019)
  #10  
Old 02-17-2015, 08:50
cracker[PYG] cracker[PYG] is offline
Friend
 
Join Date: Aug 2005
Posts: 74
Rept. Given: 18
Rept. Rcvd 1 Time in 1 Post
Thanks Given: 11
Thanks Rcvd at 7 Times in 5 Posts
cracker[PYG] Reputation: 1
This is a great tool, is in need of my research study. Thank you
Reply With Quote
The Following User Says Thank You to cracker[PYG] For This Useful Post:
Indigo (07-19-2019)
  #11  
Old 02-17-2015, 20:29
n00b n00b is offline
Friend
 
Join Date: Mar 2009
Posts: 43
Rept. Given: 18
Rept. Rcvd 25 Times in 14 Posts
Thanks Given: 11
Thanks Rcvd at 59 Times in 20 Posts
n00b Reputation: 26
Naw, don't worry mate - I just found it to be very similar to one and another, despite being two very different programming languages.

Anywho, good work mate
Reply With Quote
The Following User Says Thank You to n00b For This Useful Post:
Indigo (07-19-2019)
  #12  
Old 08-21-2015, 14:03
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
Some updates on this project. I have opt'd to move the code over to C# since more developers are familiar with that over C/C++.
(I'd rather stick with C/C++ but in the same sense I do want this to have some community contribution to it as well.)

SteamStub v3
As the Github page states, I have this version working 100% for 32bit files. At this time, 64bit is still not supported yet since I have not really focused on them. I don't have many games that are 64bit either to work with. There are some things that may/may not work properly though that I never mentioned before. The DRM has various flags that can be used and one of them prevents the .text section from being encrypted. At this time Steamless does not check for that. (I have not seen a game use this yet so I am waiting til I find an exe to test against etc.)

SteamStub v2
The last update on this was that I was around 75% with getting this to work. I'm now up to 100%, but again, with the same stipulations as v3. Some things may not work properly based on the flags used against the file. I have tested my unpacker for v2 against several files and all of them have worked fine.

SteamStub v1 / v1.5
This is still at 0% done as I do not have any games that use it. However I am still talking with Cyanic whom does have an assortment of collected exe's and hopefully I can get some from him and continue working on v1 as well.


Again a big thanks to Cyanic for his assistance with some parts of the DRM that I got stuck on. While his work is private for the DRM he has shared some things with me to help push me in the right direction without just giving me the answer etc. Hopefully Steamless will be able to handle all 3 versions of the DRM (and possibly future versions as they come) soon.

For those interested, feel free to fork the repo and help out too. Or if you need to pm me here or on my personal forum and we can discuss this more if need be. I'm open to suggestions and feedback as well for anyone that has it.

PS: To those that would rather use a C/C++ version of Steamless, once I get things cleaned up and settled in the C# version I will continue to update and maintain the C/C++ version as well.
Reply With Quote
The Following 2 Users Gave Reputation+1 to atom0s For This Useful Post:
giv (08-22-2015), Loki (08-28-2015)
The Following 3 Users Say Thank You to atom0s For This Useful Post:
giv (08-22-2015), Indigo (07-19-2019), Loki (08-28-2015)
  #13  
Old 08-28-2015, 20:14
mr.exodia mr.exodia is offline
Retired Moderator
 
Join Date: Nov 2011
Posts: 784
Rept. Given: 492
Rept. Rcvd 1,122 Times in 305 Posts
Thanks Given: 90
Thanks Rcvd at 711 Times in 333 Posts
mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299 mr.exodia Reputation: 1100-1299
Hm, C# is a nice language but I wouldn't prefer it over C++ for this kind of applications.
Reply With Quote
The Following User Says Thank You to mr.exodia For This Useful Post:
Indigo (07-19-2019)
  #14  
Old 08-29-2015, 00:33
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
Quote:
Originally Posted by mr.exodia View Post
Hm, C# is a nice language but I wouldn't prefer it over C++ for this kind of applications.
I don't either but based on how many open source tools in the RE community there are that are C# now a days, I figured I'd remake it in a language more of the community seems to be using. I plan to keep the C++ version going as well since I prefer it as well.
Reply With Quote
The Following User Says Thank You to atom0s For This Useful Post:
Indigo (07-19-2019)
  #15  
Old 08-29-2015, 00:56
atom0s's Avatar
atom0s atom0s is offline
Family
 
Join Date: Jan 2015
Location: 127.0.0.1
Posts: 396
Rept. Given: 26
Rept. Rcvd 126 Times in 63 Posts
Thanks Given: 54
Thanks Rcvd at 730 Times in 279 Posts
atom0s Reputation: 100-199 atom0s Reputation: 100-199
This post is no longer relavent as the main project has moved to a different repo. Please check the main post.

Last edited by atom0s; 02-27-2016 at 02:00.
Reply With Quote
The Following 2 Users Say Thank You to atom0s For This Useful Post:
Indigo (07-19-2019), niculaita (08-29-2015)
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On



All times are GMT +8. The time now is 17:21.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( 1998 - 2024 )