From e54c95bea3bc2083f20258d6bf26c4e4206ca53b Mon Sep 17 00:00:00 2001 From: atom0s Date: Sat, 30 Mar 2019 01:23:48 -0700 Subject: [PATCH 1/2] Updated copyright date ranges to include 2019 across the project. Added new UseExperimentalFeatures option. Added new dynamic offset reader for v2 stub parser to better support more files. (experimental feature) General code cleanup. --- ExamplePlugin/Main.cs | 2 +- ExamplePlugin/Properties/AssemblyInfo.cs | 4 +- Steamless.API/Crypto/AesHelper.cs | 2 +- Steamless.API/Events/LogMessageEventArgs.cs | 2 +- Steamless.API/Events/LogMessageType.cs | 2 +- .../Extensions/FileStreamExtensions.cs | 2 +- Steamless.API/Model/NavigatedEventArgs.cs | 2 +- Steamless.API/Model/NotifiableModel.cs | 2 +- Steamless.API/Model/SteamlessOptions.cs | 12 ++- Steamless.API/Model/SteamlessPlugin.cs | 2 +- Steamless.API/Model/ViewModelBase.cs | 2 +- Steamless.API/PE32/NativeApi32.cs | 2 +- Steamless.API/PE32/Pe32File.cs | 2 +- Steamless.API/PE32/Pe32Helpers.cs | 2 +- Steamless.API/PE64/NativeApi64.cs | 2 +- Steamless.API/PE64/Pe64File.cs | 2 +- Steamless.API/PE64/Pe64Helpers.cs | 2 +- Steamless.API/Properties/AssemblyInfo.cs | 8 +- Steamless.API/Services/LoggingService.cs | 2 +- Steamless.API/SteamlessApiVersionAttribute.cs | 2 +- Steamless.API/SteamlessEvents.cs | 2 +- .../Classes/SteamStubDrmFlags.cs | 2 +- .../Classes/SteamStubHeader.cs | 2 +- .../Classes/SteamStubHelpers.cs | 2 +- Steamless.Unpacker.Variant20.x86/Main.cs | 95 ++++++++++++++++++- .../Properties/AssemblyInfo.cs | 8 +- .../Classes/SteamStubDrmFlags.cs | 2 +- .../Classes/SteamStubHeader.cs | 2 +- .../Classes/SteamStubHelpers.cs | 2 +- Steamless.Unpacker.Variant30.x64/Main.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 +- .../Classes/SteamStubDrmFlags.cs | 2 +- .../Classes/SteamStubHeader.cs | 2 +- .../Classes/SteamStubHelpers.cs | 2 +- Steamless.Unpacker.Variant30.x86/Main.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 +- .../Classes/SteamStubDrmFlags.cs | 2 +- .../Classes/SteamStubHeader.cs | 2 +- .../Classes/SteamStubHelpers.cs | 2 +- Steamless.Unpacker.Variant31.x64/Main.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 +- .../Classes/SteamStubDrmFlags.cs | 2 +- .../Classes/SteamStubHeader.cs | 2 +- .../Classes/SteamStubHelpers.cs | 2 +- Steamless.Unpacker.Variant31.x86/Main.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 +- Steamless/App.xaml | 2 +- Steamless/App.xaml.cs | 2 +- Steamless/Assets/Animations.xaml | 2 +- Steamless/Assets/Controls.CheckBox.xaml | 2 +- Steamless/Assets/Controls.Scrollbars.xaml | 2 +- Steamless/Assets/Controls.xaml | 2 +- Steamless/Assets/Theme.xaml | 2 +- Steamless/Assets/Window.xaml | 2 +- Steamless/Classes/ControlsHelper.cs | 2 +- .../GridViewColumnWidthFromItemsBehavior.cs | 2 +- Steamless/Model/ApplicationState.cs | 2 +- Steamless/Model/AutomaticPlugin.cs | 2 +- Steamless/Model/DataService.cs | 2 +- Steamless/Model/IDataService.cs | 2 +- Steamless/Model/Tasks/BaseTask.cs | 2 +- Steamless/Model/Tasks/LoadPluginsTask.cs | 2 +- Steamless/Model/Tasks/StartSteamlessTask.cs | 2 +- Steamless/Model/Tasks/StatusTask.cs | 2 +- Steamless/Properties/AssemblyInfo.cs | 4 +- Steamless/View/AboutView.xaml | 2 +- Steamless/View/AboutView.xaml.cs | 2 +- Steamless/View/MainView.xaml | 4 +- Steamless/View/MainView.xaml.cs | 2 +- Steamless/View/MainWindow.xaml | 2 +- Steamless/View/MainWindow.xaml.cs | 2 +- Steamless/View/SplashView.xaml | 2 +- Steamless/View/SplashView.xaml.cs | 2 +- Steamless/ViewModel/MainWindowViewModel.cs | 56 +++++------ Steamless/ViewModel/ViewModelLocator.cs | 2 +- 75 files changed, 218 insertions(+), 115 deletions(-) diff --git a/ExamplePlugin/Main.cs b/ExamplePlugin/Main.cs index 07fe5d7..3d5f8bd 100644 --- a/ExamplePlugin/Main.cs +++ b/ExamplePlugin/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/ExamplePlugin/Properties/AssemblyInfo.cs b/ExamplePlugin/Properties/AssemblyInfo.cs index 4a67dde..d1988df 100644 --- a/ExamplePlugin/Properties/AssemblyInfo.cs +++ b/ExamplePlugin/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,7 +31,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("ExamplePlugin")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Steamless.API/Crypto/AesHelper.cs b/Steamless.API/Crypto/AesHelper.cs index 871cd6f..50af36b 100644 --- a/Steamless.API/Crypto/AesHelper.cs +++ b/Steamless.API/Crypto/AesHelper.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Events/LogMessageEventArgs.cs b/Steamless.API/Events/LogMessageEventArgs.cs index 69852c4..af8d1c4 100644 --- a/Steamless.API/Events/LogMessageEventArgs.cs +++ b/Steamless.API/Events/LogMessageEventArgs.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Events/LogMessageType.cs b/Steamless.API/Events/LogMessageType.cs index 0b7237d..43a474c 100644 --- a/Steamless.API/Events/LogMessageType.cs +++ b/Steamless.API/Events/LogMessageType.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Extensions/FileStreamExtensions.cs b/Steamless.API/Extensions/FileStreamExtensions.cs index 1b99d20..698946d 100644 --- a/Steamless.API/Extensions/FileStreamExtensions.cs +++ b/Steamless.API/Extensions/FileStreamExtensions.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Model/NavigatedEventArgs.cs b/Steamless.API/Model/NavigatedEventArgs.cs index 4ce5668..4e9bb39 100644 --- a/Steamless.API/Model/NavigatedEventArgs.cs +++ b/Steamless.API/Model/NavigatedEventArgs.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Model/NotifiableModel.cs b/Steamless.API/Model/NotifiableModel.cs index a844631..9e15826 100644 --- a/Steamless.API/Model/NotifiableModel.cs +++ b/Steamless.API/Model/NotifiableModel.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Model/SteamlessOptions.cs b/Steamless.API/Model/SteamlessOptions.cs index 9e7e7bd..c4eca7a 100644 --- a/Steamless.API/Model/SteamlessOptions.cs +++ b/Steamless.API/Model/SteamlessOptions.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -36,6 +36,7 @@ namespace Steamless.API.Model this.KeepBindSection = false; this.DumpPayloadToDisk = false; this.DumpSteamDrmpToDisk = false; + this.UseExperimentalFeatures = false; } /// @@ -73,5 +74,14 @@ namespace Steamless.API.Model get { return this.Get("DumpSteamDrmpToDisk"); } set { this.Set("DumpSteamDrmpToDisk", value); } } + + /// + /// Gets or sets the use experimental features option value. + /// + public bool UseExperimentalFeatures + { + get { return this.Get("UseExperimentalFeatures"); } + set { this.Set("UseExperimentalFeatures", value); } + } } } \ No newline at end of file diff --git a/Steamless.API/Model/SteamlessPlugin.cs b/Steamless.API/Model/SteamlessPlugin.cs index 8a38aee..1fca835 100644 --- a/Steamless.API/Model/SteamlessPlugin.cs +++ b/Steamless.API/Model/SteamlessPlugin.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Model/ViewModelBase.cs b/Steamless.API/Model/ViewModelBase.cs index dbc9001..3cb44ce 100644 --- a/Steamless.API/Model/ViewModelBase.cs +++ b/Steamless.API/Model/ViewModelBase.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE32/NativeApi32.cs b/Steamless.API/PE32/NativeApi32.cs index 44a1726..c00f24f 100644 --- a/Steamless.API/PE32/NativeApi32.cs +++ b/Steamless.API/PE32/NativeApi32.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE32/Pe32File.cs b/Steamless.API/PE32/Pe32File.cs index 6ac560a..4db8ad6 100644 --- a/Steamless.API/PE32/Pe32File.cs +++ b/Steamless.API/PE32/Pe32File.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE32/Pe32Helpers.cs b/Steamless.API/PE32/Pe32Helpers.cs index 074caab..025080f 100644 --- a/Steamless.API/PE32/Pe32Helpers.cs +++ b/Steamless.API/PE32/Pe32Helpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE64/NativeApi64.cs b/Steamless.API/PE64/NativeApi64.cs index 3853b68..c1f7262 100644 --- a/Steamless.API/PE64/NativeApi64.cs +++ b/Steamless.API/PE64/NativeApi64.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE64/Pe64File.cs b/Steamless.API/PE64/Pe64File.cs index d02ae11..257de73 100644 --- a/Steamless.API/PE64/Pe64File.cs +++ b/Steamless.API/PE64/Pe64File.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/PE64/Pe64Helpers.cs b/Steamless.API/PE64/Pe64Helpers.cs index b54a996..8767c27 100644 --- a/Steamless.API/PE64/Pe64Helpers.cs +++ b/Steamless.API/PE64/Pe64Helpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/Properties/AssemblyInfo.cs b/Steamless.API/Properties/AssemblyInfo.cs index 617283d..6c815e9 100644 --- a/Steamless.API/Properties/AssemblyInfo.cs +++ b/Steamless.API/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,10 +31,10 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.API")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("56c95629-3b34-47fe-b988-04274409294f")] -[assembly: AssemblyVersion("1.0.0.2")] -[assembly: AssemblyFileVersion("1.0.0.2")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.0.3")] +[assembly: AssemblyFileVersion("1.0.0.3")] \ No newline at end of file diff --git a/Steamless.API/Services/LoggingService.cs b/Steamless.API/Services/LoggingService.cs index de2fb50..d809bb4 100644 --- a/Steamless.API/Services/LoggingService.cs +++ b/Steamless.API/Services/LoggingService.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/SteamlessApiVersionAttribute.cs b/Steamless.API/SteamlessApiVersionAttribute.cs index 4664866..106a633 100644 --- a/Steamless.API/SteamlessApiVersionAttribute.cs +++ b/Steamless.API/SteamlessApiVersionAttribute.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.API/SteamlessEvents.cs b/Steamless.API/SteamlessEvents.cs index c46d6fd..49b0de0 100644 --- a/Steamless.API/SteamlessEvents.cs +++ b/Steamless.API/SteamlessEvents.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubDrmFlags.cs b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubDrmFlags.cs index a5019d4..52220e4 100644 --- a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubDrmFlags.cs +++ b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubDrmFlags.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHeader.cs b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHeader.cs index 6b8b991..9e3cd2a 100644 --- a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHeader.cs +++ b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHeader.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHelpers.cs b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHelpers.cs index 262b276..bfb8d26 100644 --- a/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHelpers.cs +++ b/Steamless.Unpacker.Variant20.x86/Classes/SteamStubHelpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant20.x86/Main.cs b/Steamless.Unpacker.Variant20.x86/Main.cs index 76b8b7d..3f5dea6 100644 --- a/Steamless.Unpacker.Variant20.x86/Main.cs +++ b/Steamless.Unpacker.Variant20.x86/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -325,7 +325,7 @@ namespace Steamless.Unpacker.Variant20.x86 Array.Copy(this.SteamDrmpData, drmpOffset, drmpOffsetData, 0, 1024); // Obtain the offsets from the file data.. - var drmpOffsets = this.GetSteamDrmpOffsets(drmpOffsetData); + var drmpOffsets = (this.Options.UseExperimentalFeatures) ? this.GetSteamDrmpOffsetsDynamic(drmpOffsetData) : this.GetSteamDrmpOffsets(drmpOffsetData); if (drmpOffsets.Count != 8) return false; @@ -615,6 +615,97 @@ namespace Steamless.Unpacker.Variant20.x86 return offsets; } + /// + /// Obtains the needed DRM offsets from the SteamDRMP.dll file. (Dynamically via disassembling.) + /// + /// + /// + private List GetSteamDrmpOffsetsDynamic(byte[] data) + { + Disassembler disasm = null; + var offsets = new List(); + var count = 0; + + /** + * Assumed order of the offset values: + * - Flags (mov) + * - SteamAppId (mov) + * - OEP (mov) + * - Code Section VA (mov) + * - Code Section Size (mov) + * - Code Section AES Key (lea) + * - Code Section AES IV (offset from above lea) + * - Stolen Bytes (add) + */ + + try + { + var skipMov = false; + + // Disassemble the incoming block of data to look for the needed offsets dynamically.. + disasm = new Disassembler(data, ArchitectureMode.x86_32, 0); + foreach (var inst in disasm.Disassemble().Where(inst => !inst.Error)) + { + if (count >= 8) + break; + + // ex: mov eax, [eax+1234] + if (!skipMov && inst.Mnemonic == ud_mnemonic_code.UD_Imov) + { + if (inst.Operands.Length >= 2 + && inst.Operands[0].Type == ud_type.UD_OP_REG + && inst.Operands[1].Type == ud_type.UD_OP_MEM) + { + count++; + offsets.Add(inst.Operands[1].LvalSDWord); + } + } + + // ex: lea eax, [eax+1234] + if (inst.Mnemonic == ud_mnemonic_code.UD_Ilea) + { + if (inst.Operands.Length >= 2 + && inst.Operands[0].Type == ud_type.UD_OP_REG + && inst.Operands[1].Type == ud_type.UD_OP_MEM) + { + count += 2; + offsets.Add(inst.Operands[1].LvalSDWord); + offsets.Add(inst.Operands[1].LvalSDWord + 16); + + /** + * Some v2 compiled files have the order of the last offset (add inst) after a mov which loads + * GetModuleHandleA's address into a register. In order to skip that from being read as an offset + * we need this small workaround.. + */ + skipMov = true; + } + } + + // ex: add eax, 1234 + if (inst.Mnemonic == ud_mnemonic_code.UD_Iadd) + { + if (inst.Operands.Length >= 2 + && inst.Operands[0].Type == ud_type.UD_OP_REG + && inst.Operands[1].Type == ud_type.UD_OP_IMM) + { + count++; + offsets.Add(inst.Operands[1].LvalSDWord); + } + } + } + + return offsets; + } + catch + { + return new List(); + } + finally + { + disasm?.Dispose(); + } + } + /// /// Gets or sets the Steamless options this file was requested to process with. /// diff --git a/Steamless.Unpacker.Variant20.x86/Properties/AssemblyInfo.cs b/Steamless.Unpacker.Variant20.x86/Properties/AssemblyInfo.cs index baa45b1..70f056d 100644 --- a/Steamless.Unpacker.Variant20.x86/Properties/AssemblyInfo.cs +++ b/Steamless.Unpacker.Variant20.x86/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,10 +31,10 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.Unpacker.Variant20.x86")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("a40154cd-a0fd-4371-8099-ce277e0989af")] -[assembly: AssemblyVersion("1.0.0.5")] -[assembly: AssemblyFileVersion("1.0.0.5")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.0.6")] +[assembly: AssemblyFileVersion("1.0.0.6")] \ No newline at end of file diff --git a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubDrmFlags.cs b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubDrmFlags.cs index 599acf2..a9255d9 100644 --- a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubDrmFlags.cs +++ b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubDrmFlags.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHeader.cs b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHeader.cs index 92e8af3..a5cc096 100644 --- a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHeader.cs +++ b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHeader.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHelpers.cs b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHelpers.cs index 640c2a4..c590e92 100644 --- a/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHelpers.cs +++ b/Steamless.Unpacker.Variant30.x64/Classes/SteamStubHelpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x64/Main.cs b/Steamless.Unpacker.Variant30.x64/Main.cs index aa5a5dc..300cb8f 100644 --- a/Steamless.Unpacker.Variant30.x64/Main.cs +++ b/Steamless.Unpacker.Variant30.x64/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x64/Properties/AssemblyInfo.cs b/Steamless.Unpacker.Variant30.x64/Properties/AssemblyInfo.cs index 3d54c5d..a83fbad 100644 --- a/Steamless.Unpacker.Variant30.x64/Properties/AssemblyInfo.cs +++ b/Steamless.Unpacker.Variant30.x64/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,7 +31,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.Unpacker.Variant30.x64")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubDrmFlags.cs b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubDrmFlags.cs index dc41551..ba89a08 100644 --- a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubDrmFlags.cs +++ b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubDrmFlags.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHeader.cs b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHeader.cs index b2d60b7..4ee6785 100644 --- a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHeader.cs +++ b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHeader.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHelpers.cs b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHelpers.cs index 758d51a..1b52952 100644 --- a/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHelpers.cs +++ b/Steamless.Unpacker.Variant30.x86/Classes/SteamStubHelpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x86/Main.cs b/Steamless.Unpacker.Variant30.x86/Main.cs index 97f8cf5..cbf9160 100644 --- a/Steamless.Unpacker.Variant30.x86/Main.cs +++ b/Steamless.Unpacker.Variant30.x86/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant30.x86/Properties/AssemblyInfo.cs b/Steamless.Unpacker.Variant30.x86/Properties/AssemblyInfo.cs index 3a32e3b..5ebf22f 100644 --- a/Steamless.Unpacker.Variant30.x86/Properties/AssemblyInfo.cs +++ b/Steamless.Unpacker.Variant30.x86/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,7 +31,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.Unpacker.Variant30.x86")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubDrmFlags.cs b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubDrmFlags.cs index 3744aaf..fa27ac2 100644 --- a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubDrmFlags.cs +++ b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubDrmFlags.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHeader.cs b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHeader.cs index 917ebf4..687169c 100644 --- a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHeader.cs +++ b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHeader.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHelpers.cs b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHelpers.cs index 2bfd9d2..656bae4 100644 --- a/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHelpers.cs +++ b/Steamless.Unpacker.Variant31.x64/Classes/SteamStubHelpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x64/Main.cs b/Steamless.Unpacker.Variant31.x64/Main.cs index cd02726..61ab61c 100644 --- a/Steamless.Unpacker.Variant31.x64/Main.cs +++ b/Steamless.Unpacker.Variant31.x64/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x64/Properties/AssemblyInfo.cs b/Steamless.Unpacker.Variant31.x64/Properties/AssemblyInfo.cs index 530b66f..0803c92 100644 --- a/Steamless.Unpacker.Variant31.x64/Properties/AssemblyInfo.cs +++ b/Steamless.Unpacker.Variant31.x64/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,7 +31,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.Unpacker.Variant31.x64")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubDrmFlags.cs b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubDrmFlags.cs index 1a96115..cc99f8f 100644 --- a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubDrmFlags.cs +++ b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubDrmFlags.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHeader.cs b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHeader.cs index bfd168b..a2307a8 100644 --- a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHeader.cs +++ b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHeader.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHelpers.cs b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHelpers.cs index cb7aa4a..b492de7 100644 --- a/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHelpers.cs +++ b/Steamless.Unpacker.Variant31.x86/Classes/SteamStubHelpers.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x86/Main.cs b/Steamless.Unpacker.Variant31.x86/Main.cs index 5c9e579..87516c1 100644 --- a/Steamless.Unpacker.Variant31.x86/Main.cs +++ b/Steamless.Unpacker.Variant31.x86/Main.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to diff --git a/Steamless.Unpacker.Variant31.x86/Properties/AssemblyInfo.cs b/Steamless.Unpacker.Variant31.x86/Properties/AssemblyInfo.cs index b7b7886..9e3ca04 100644 --- a/Steamless.Unpacker.Variant31.x86/Properties/AssemblyInfo.cs +++ b/Steamless.Unpacker.Variant31.x86/Properties/AssemblyInfo.cs @@ -1,5 +1,5 @@ /** - * Steamless - Copyright (c) 2015 - 2018 atom0s [atom0s@live.com] + * Steamless - Copyright (c) 2015 - 2019 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to @@ -31,7 +31,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("atom0s")] [assembly: AssemblyProduct("Steamless.Unpacker.Variant31.x86")] -[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")] +[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Steamless/App.xaml b/Steamless/App.xaml index 58a713b..2eb94db 100644 --- a/Steamless/App.xaml +++ b/Steamless/App.xaml @@ -1,5 +1,5 @@