View previous topic :: View next topic |
Author |
Message |
mgostIH Expert Cheater
Reputation: 3
Joined: 01 Jan 2016 Posts: 159
|
Posted: Tue Mar 01, 2016 3:51 pm Post subject: Help with Steam hiding threads |
|
|
So, a while ago I stumbled upon the whole "thing" about steam protecting games from debuggers using the infamous ThreadHideFromDebugger flag, which doesn't let any normal debugger (VEH and kernel mode based still work) from handling the game, causing a crash for EVERY Windows debugger.
So, my idea was to hook NtSetInformationThread, but the ThreadHideFromDebugger can also be setted by other functions, such as NtCreateThreadEx, so I am really sure that I am doing the right thing here.
My question was, where specifically does Steam hide the main thread of the game?
Is it a simple NtSetInformationThread inside the game or do I need to hook Steam.exe API calls themselves?
The closest thing I could find on the internet about this stuff was a DLL to inject that would automatically disable this Steam protection, but it's easy to detect for VAC games and I'd also prefer to code the stuff on my own.
With this, I could run easily ollydbg on my games without needing kernel mode plugins (such as TitanHide).
Thanks for reading.
_________________
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25785 Location: The netherlands
|
|
Back to top |
|
 |
mgostIH Expert Cheater
Reputation: 3
Joined: 01 Jan 2016 Posts: 159
|
Posted: Tue Mar 01, 2016 4:04 pm Post subject: |
|
|
Dark Byte wrote: | http://forum.cheatengine.org/viewtopic.php?p=5598917 |
This unhides the thread using kernel mode debugging, which I can't use for distribution.
I'd prefer something that anticipates the thread being hidden, rather than it becoming normal afterword.
_________________
|
|
Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8585 Location: 127.0.0.1
|
Posted: Tue Mar 01, 2016 4:58 pm Post subject: |
|
|
Steam games can be protected using the SteamStub DRM. When it is used it has an encrypted payload called SteamDRMP.dll inside of the exe that is packed away inside of the .bind section.
When the game starts it unpacks itself via the .bind section functionality. The SteamDRMP.dll is loaded via manual mapping and they hide threads via NtSetInformationThread.
_________________
- Retired. |
|
Back to top |
|
 |
|