mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 23:20:53 +01:00
56 lines
2.9 KiB
C++
56 lines
2.9 KiB
C++
/**
|
|
* Steamless Steam DRM Remover - SteamStub_Variant3.h
|
|
* (c) 2015 atom0s [atom0s@live.com]
|
|
*
|
|
* 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 http://www.gnu.org/licenses/
|
|
*/
|
|
#pragma once
|
|
#include <cstdint>
|
|
|
|
namespace steam
|
|
{
|
|
struct SteamStubHeaderV31
|
|
{
|
|
uint32_t XorKey; // The base xor key, if defined, to unpack the file with.
|
|
uint32_t Signature; // The signature to ensure the xor decoding was successful.
|
|
uintptr_t ImageBase; // The base of the image that was protected.
|
|
uintptr_t AddressOfEntryPoint; // The entry point that is set from the DRM.
|
|
uint32_t BindSectionOffset; // The starting offset to the .bind section data. RVA(AddressOfEntryPoint -
|
|
uint32_t Unknown0000; // [Cyanic: This field is most likely the .bind code size.] public
|
|
uintptr_t OriginalEntryPoint; // The original entry point of the binary before it was protected.
|
|
uint32_t Unknown0001; // [Cyanic: This field is most likely an offset to a string table.]
|
|
uint32_t PayloadSize;
|
|
uint32_t DRMPDllOffset; // The offset to the SteamDrmp.dll file.
|
|
uint32_t DRMPDllSize; // The size of the SteamDrmp.dll file. uint32_tSteamAppId; // The Steam application id of this
|
|
uint32_t Flags; // The DRM flags used while protecting this program.
|
|
uint32_t BindSectionVirtualSize; // The .bind section virtual size.
|
|
uint32_t Unknown0002; // [Cyanic: This field is most likely a hash of some sort.]
|
|
uintptr_t CodeSectionVirtualAddress; // The code section virtual address.
|
|
uintptr_t CodeSectionRawSize; // The code section raw size.
|
|
|
|
uint8_t AES_Key[32];
|
|
uint8_t AES_IV[16];
|
|
uint8_t CodeSectionStolenData[16]; // The first 16 bytes of the code section stolen.
|
|
uint32_t EncryptionKeys[4]; // Encryption keys used to decrypt the SteamDrmp.dll file.
|
|
uint32_t Unknown0003[8]; // Unknown unused data.
|
|
|
|
uintptr_t GetModuleHandleA_Rva; // The rva to GetModuleHandleA.
|
|
uintptr_t GetModuleHandleW_Rva; // The rva to GetModuleHandleW.
|
|
uintptr_t LoadLibraryA_Rva; // The rva to LoadLibraryA.
|
|
uintptr_t LoadLibraryW_Rva; // The rva to LoadLibraryW.
|
|
uintptr_t GetProcAddress_Rva; // The rva to GetProcAddress.
|
|
};
|
|
|
|
static_assert(sizeof(SteamStubHeaderV31) == 240);
|
|
} // namespace steam
|