atom0s / 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.
Other
3.07k stars 195 forks source link

Repository Cleanup #70

Closed atom0s closed 2 years ago

atom0s commented 2 years ago

Some maintenance / general cleanup of the repository. A general TODO list for myself:

atom0s commented 2 years ago

This is the current running changelog that will be for the next version, will update as more is done before the release is made.

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: https://github.com/atom0s/Steamless/issues/20#issuecomment-1078821463

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.