diff --git a/Steamless.API/Model/SteamlessOptions.cs b/Steamless.API/Model/SteamlessOptions.cs index 95dffb6..0706822 100644 --- a/Steamless.API/Model/SteamlessOptions.cs +++ b/Steamless.API/Model/SteamlessOptions.cs @@ -40,6 +40,7 @@ public SteamlessOptions() this.DontRealignSections = true; this.ZeroDosStubData = true; this.RecalculateFileChecksum = false; + this.RemoveCertificateTable = true; } /// @@ -113,5 +114,11 @@ public bool RecalculateFileChecksum get => this.Get("RecalculateFileChecksum"); set => this.Set("RecalculateFileChecksum", value); } + + public bool RemoveCertificateTable + { + get => this.Get("RemoveCertificateTable"); + set => this.Set("RemoveCertificateTable", value); + } } } \ No newline at end of file diff --git a/Steamless.Unpacker.Variant31.x64/Main.cs b/Steamless.Unpacker.Variant31.x64/Main.cs index 0e372e2..ffd4d72 100644 --- a/Steamless.Unpacker.Variant31.x64/Main.cs +++ b/Steamless.Unpacker.Variant31.x64/Main.cs @@ -463,6 +463,13 @@ private bool Step6() var ntHeaders = this.File.NtHeaders; ntHeaders.OptionalHeader.AddressOfEntryPoint = (uint)this.StubHeader.OriginalEntryPoint; ntHeaders.OptionalHeader.CheckSum = 0; + + if(this.Options.RemoveCertificateTable) + { + ntHeaders.OptionalHeader.CertificateTable.Size = 0; + ntHeaders.OptionalHeader.CertificateTable.VirtualAddress = 0; + } + this.File.NtHeaders = ntHeaders; // Write the NT headers to the file.. diff --git a/Steamless/View/MainView.xaml b/Steamless/View/MainView.xaml index 8a2f42c..f63d4d1 100644 --- a/Steamless/View/MainView.xaml +++ b/Steamless/View/MainView.xaml @@ -87,6 +87,7 @@ + @@ -96,6 +97,7 @@ +