mirror of
https://github.com/atom0s/Steamless.git
synced 2024-12-19 23:07:41 +01:00
Merge branch 'master' of https://github.com/atom0s/Steamless
This commit is contained in:
commit
e90195a0ec
75 changed files with 245 additions and 158 deletions
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -43,8 +44,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public bool VerboseOutput
|
||||
{
|
||||
get { return this.Get<bool>("VerboseOutput"); }
|
||||
set { this.Set("VerboseOutput", value); }
|
||||
get => this.Get<bool>("VerboseOutput");
|
||||
set => this.Set("VerboseOutput", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -52,8 +53,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public bool KeepBindSection
|
||||
{
|
||||
get { return this.Get<bool>("KeepBindSection"); }
|
||||
set { this.Set("KeepBindSection", value); }
|
||||
get => this.Get<bool>("KeepBindSection");
|
||||
set => this.Set("KeepBindSection", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -61,8 +62,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public bool DumpPayloadToDisk
|
||||
{
|
||||
get { return this.Get<bool>("DumpPayloadToDisk"); }
|
||||
set { this.Set("DumpPayloadToDisk", value); }
|
||||
get => this.Get<bool>("DumpPayloadToDisk");
|
||||
set => this.Set("DumpPayloadToDisk", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -70,8 +71,17 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public bool DumpSteamDrmpToDisk
|
||||
{
|
||||
get { return this.Get<bool>("DumpSteamDrmpToDisk"); }
|
||||
set { this.Set("DumpSteamDrmpToDisk", value); }
|
||||
get => this.Get<bool>("DumpSteamDrmpToDisk");
|
||||
set => this.Set("DumpSteamDrmpToDisk", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the use experimental features option value.
|
||||
/// </summary>
|
||||
public bool UseExperimentalFeatures
|
||||
{
|
||||
get => this.Get<bool>("UseExperimentalFeatures");
|
||||
set => this.Set("UseExperimentalFeatures", value);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -70,8 +70,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
private EventHandlerList Events
|
||||
{
|
||||
get { return this.Get<EventHandlerList>("Events"); }
|
||||
set { this.Set("Events", value); }
|
||||
get => this.Get<EventHandlerList>("Events");
|
||||
set => this.Set("Events", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -79,8 +79,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public event EventHandler<NavigatedEventArgs> NavigatedFrom
|
||||
{
|
||||
add { this.Events.AddHandler("NavigatedFromEvent", value); }
|
||||
remove { this.Events.RemoveHandler("NavigatedFromEvent", value); }
|
||||
add => this.Events.AddHandler("NavigatedFromEvent", value);
|
||||
remove => this.Events.RemoveHandler("NavigatedFromEvent", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -88,8 +88,8 @@ namespace Steamless.API.Model
|
|||
/// </summary>
|
||||
public event EventHandler<NavigatedEventArgs> NavigatedTo
|
||||
{
|
||||
add { this.Events.AddHandler("NavigatedToEvent", value); }
|
||||
remove { this.Events.RemoveHandler("NavigatedToEvent", value); }
|
||||
add => this.Events.AddHandler("NavigatedToEvent", value);
|
||||
remove => this.Events.RemoveHandler("NavigatedToEvent", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.API")]
|
||||
[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")]
|
||||
[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -187,20 +187,16 @@ namespace Steamless.Unpacker.Variant20.x86
|
|||
if (BitConverter.ToUInt32(this.File.FileData, (int)fileOffset - 4) != 0xC0DEC0DE)
|
||||
return false;
|
||||
|
||||
uint structOffset;
|
||||
uint structSize;
|
||||
uint structXorKey;
|
||||
|
||||
// Disassemble the file to locate the needed DRM information..
|
||||
if (!this.DisassembleFile(out structOffset, out structSize, out structXorKey))
|
||||
if (!this.DisassembleFile(out var structOffset, out var structSize, out var structXorKey))
|
||||
return false;
|
||||
|
||||
// Obtain the DRM header data..
|
||||
var headerData = new byte[structSize];
|
||||
Array.Copy(this.File.FileData, this.File.GetFileOffsetFromRva((uint)structOffset), headerData, 0, structSize);
|
||||
Array.Copy(this.File.FileData, this.File.GetFileOffsetFromRva(structOffset), headerData, 0, structSize);
|
||||
|
||||
// Xor decode the header data..
|
||||
this.XorKey = SteamStubHelpers.SteamXor(ref headerData, (uint)headerData.Length, (uint)structXorKey);
|
||||
this.XorKey = SteamStubHelpers.SteamXor(ref headerData, (uint)headerData.Length, structXorKey);
|
||||
|
||||
// Determine how to handle the header based on the size..
|
||||
if ((structSize / 4) == 0xD0)
|
||||
|
@ -325,7 +321,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;
|
||||
|
||||
|
@ -557,14 +553,14 @@ namespace Steamless.Unpacker.Variant20.x86
|
|||
if (inst.Mnemonic == ud_mnemonic_code.UD_Imov && inst.Operands[0].Type == ud_type.UD_OP_MEM && inst.Operands[1].Type == ud_type.UD_OP_IMM)
|
||||
{
|
||||
if (structOffset == 0)
|
||||
structOffset = (uint)(inst.Operands[1].LvalUDWord - this.File.NtHeaders.OptionalHeader.ImageBase);
|
||||
structOffset = inst.Operands[1].LvalUDWord - this.File.NtHeaders.OptionalHeader.ImageBase;
|
||||
else
|
||||
structXorKey = (uint)inst.Operands[1].LvalUDWord;
|
||||
structXorKey = inst.Operands[1].LvalUDWord;
|
||||
}
|
||||
|
||||
// Looks for: mov reg, immediate
|
||||
if (inst.Mnemonic == ud_mnemonic_code.UD_Imov && inst.Operands[0].Type == ud_type.UD_OP_REG && inst.Operands[1].Type == ud_type.UD_OP_IMM)
|
||||
structSize = (uint)inst.Operands[1].LvalUDWord * 4;
|
||||
structSize = inst.Operands[1].LvalUDWord * 4;
|
||||
}
|
||||
|
||||
offset = size = xorKey = 0;
|
||||
|
@ -615,6 +611,97 @@ namespace Steamless.Unpacker.Variant20.x86
|
|||
return offsets;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Obtains the needed DRM offsets from the SteamDRMP.dll file. (Dynamically via disassembling.)
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
private List<int> GetSteamDrmpOffsetsDynamic(byte[] data)
|
||||
{
|
||||
Disassembler disasm = null;
|
||||
var offsets = new List<int>();
|
||||
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);
|
||||
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<int>();
|
||||
}
|
||||
finally
|
||||
{
|
||||
disasm?.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Steamless options this file was requested to process with.
|
||||
/// </summary>
|
||||
|
|
|
@ -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")]
|
||||
[assembly: AssemblyVersion("1.0.0.6")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.6")]
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -51,8 +51,7 @@ namespace Steamless.Classes
|
|||
|
||||
private static void OnGridViewColumnWidthFromItemsPropertyChanged(DependencyObject dpo, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var lv = dpo as ListView;
|
||||
if (lv != null)
|
||||
if (dpo is ListView lv)
|
||||
{
|
||||
if ((bool)e.NewValue)
|
||||
lv.Loaded += OnListViewLoaded;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -53,8 +53,8 @@ namespace Steamless.Model.Tasks
|
|||
/// </summary>
|
||||
public bool Completed
|
||||
{
|
||||
get { return this.Get<bool>("Completed"); }
|
||||
set { this.Set("Completed", value); }
|
||||
get => this.Get<bool>("Completed");
|
||||
set => this.Set("Completed", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -62,8 +62,8 @@ namespace Steamless.Model.Tasks
|
|||
/// </summary>
|
||||
public double Progress
|
||||
{
|
||||
get { return this.Get<double>("Progress"); }
|
||||
set { this.Set("Progress", value); }
|
||||
get => this.Get<double>("Progress");
|
||||
set => this.Set("Progress", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -71,8 +71,8 @@ namespace Steamless.Model.Tasks
|
|||
/// </summary>
|
||||
public double ProgressTotal
|
||||
{
|
||||
get { return this.Get<double>("ProgressTotal"); }
|
||||
set { this.Set("ProgressTotal", value); }
|
||||
get => this.Get<double>("ProgressTotal");
|
||||
set => this.Set("ProgressTotal", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -80,8 +80,8 @@ namespace Steamless.Model.Tasks
|
|||
/// </summary>
|
||||
public string Text
|
||||
{
|
||||
get { return this.Get<string>("Text"); }
|
||||
set { this.Set("Text", value); }
|
||||
get => this.Get<string>("Text");
|
||||
set => this.Set("Text", value);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -32,7 +32,7 @@ using System.Windows;
|
|||
[assembly: AssemblyConfiguration("Release")]
|
||||
[assembly: AssemblyCompany("atom0s")]
|
||||
[assembly: AssemblyProduct("Steamless")]
|
||||
[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2018")]
|
||||
[assembly: AssemblyCopyright("Copyright © atom0s 2015 - 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -83,11 +83,13 @@
|
|||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox Grid.Row="0" Content="Verbose Output" Margin="2" ToolTip="If enabled, Steamless will allow logging of debug messages." IsChecked="{Binding Options.VerboseOutput}" />
|
||||
<CheckBox Grid.Row="1" Content="Keep Bind Section" Margin="2" ToolTip="The bind section should be kept within the file after unpacking." IsChecked="{Binding Options.KeepBindSection}" />
|
||||
<CheckBox Grid.Row="2" Content="Dump Payload To Disk" Margin="2" ToolTip="Dumps the payload to disk where the target file is located. (File will be saved with the .payload extension.)" IsChecked="{Binding Options.DumpPayloadToDisk}" />
|
||||
<CheckBox Grid.Row="3" Content="Dump SteamDRMP.dll To Disk" Margin="2" ToolTip="Dumps the SteamDRMP.dll to disk where the target file is located." IsChecked="{Binding Options.DumpSteamDrmpToDisk}" />
|
||||
<CheckBox Grid.Row="4" Content="Use Experimental Features" Margin="2" ToolTip="Enables the use of experimental features." IsChecked="{Binding Options.UseExperimentalFeatures}" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -80,8 +80,7 @@ namespace Steamless.ViewModel
|
|||
this.OnShowAboutViewCommand = new RelayCommand(() => this.ShowAboutView = !this.ShowAboutView);
|
||||
this.OnOpenHyperlinkCommand = new RelayCommand<object>(o =>
|
||||
{
|
||||
var link = o as Hyperlink;
|
||||
if (link != null)
|
||||
if (o is Hyperlink link)
|
||||
Process.Start(link.NavigateUri.AbsoluteUri);
|
||||
});
|
||||
this.OnDragDropCommand = new RelayCommand<DragEventArgs>(this.InputFileDragDrop);
|
||||
|
@ -94,7 +93,7 @@ namespace Steamless.ViewModel
|
|||
logService.AddLogMessage += this.AddLogMessage;
|
||||
logService.ClearLogMessages += this.ClearLogMessages;
|
||||
|
||||
this.AddLogMessage(this, new LogMessageEventArgs("Steamless (c) 2015 - 2018 atom0s [atom0s@live.com]", LogMessageType.Debug));
|
||||
this.AddLogMessage(this, new LogMessageEventArgs("Steamless (c) 2015 - 2019 atom0s [atom0s@live.com]", LogMessageType.Debug));
|
||||
this.AddLogMessage(this, new LogMessageEventArgs("Website: http://atom0s.com/", LogMessageType.Debug));
|
||||
|
||||
// Initialize this model..
|
||||
|
@ -123,17 +122,6 @@ namespace Steamless.ViewModel
|
|||
this.m_TaskThread.Start();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the applications current status.
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
/// <param name="msg"></param>
|
||||
public void SetApplicationStatus(ApplicationState state, string msg)
|
||||
{
|
||||
this.State = state;
|
||||
this.CurrentTask = new StatusTask(msg);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Thread callback to process application tasks.
|
||||
/// </summary>
|
||||
|
@ -142,8 +130,7 @@ namespace Steamless.ViewModel
|
|||
while (Interlocked.CompareExchange(ref this.m_TaskThread, null, null) != null && this.State != ApplicationState.Closing)
|
||||
{
|
||||
// Obtain a task from the task list..
|
||||
BaseTask task;
|
||||
if (this.Tasks.TryTake(out task))
|
||||
if (this.Tasks.TryTake(out var task))
|
||||
{
|
||||
this.CurrentTask = task;
|
||||
await this.CurrentTask.StartTask();
|
||||
|
@ -232,7 +219,8 @@ namespace Steamless.ViewModel
|
|||
private static void WindowMinimize()
|
||||
{
|
||||
// Minimize the window..
|
||||
Application.Current.MainWindow.WindowState = WindowState.Minimized;
|
||||
if (Application.Current.MainWindow != null)
|
||||
Application.Current.MainWindow.WindowState = WindowState.Minimized;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -241,7 +229,8 @@ namespace Steamless.ViewModel
|
|||
/// <param name="args"></param>
|
||||
private static void WindowMouseDown(MouseButtonEventArgs args)
|
||||
{
|
||||
Application.Current.MainWindow.DragMove();
|
||||
if (Application.Current.MainWindow != null)
|
||||
Application.Current.MainWindow.DragMove();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -401,8 +390,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public ApplicationState State
|
||||
{
|
||||
get { return this.Get<ApplicationState>("State"); }
|
||||
set { this.Set("State", value); }
|
||||
get => this.Get<ApplicationState>("State");
|
||||
set => this.Set("State", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -410,8 +399,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public Version SteamlessVersion
|
||||
{
|
||||
get { return this.Get<Version>("SteamlessVersion"); }
|
||||
set { this.Set("SteamlessVersion", value); }
|
||||
get => this.Get<Version>("SteamlessVersion");
|
||||
set => this.Set("SteamlessVersion", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -419,8 +408,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public BaseTask CurrentTask
|
||||
{
|
||||
get { return this.Get<BaseTask>("CurrentTask"); }
|
||||
set { this.Set("CurrentTask", value); }
|
||||
get => this.Get<BaseTask>("CurrentTask");
|
||||
set => this.Set("CurrentTask", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -428,8 +417,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public ConcurrentBag<BaseTask> Tasks
|
||||
{
|
||||
get { return this.Get<ConcurrentBag<BaseTask>>("Tasks"); }
|
||||
set { this.Set("Tasks", value); }
|
||||
get => this.Get<ConcurrentBag<BaseTask>>("Tasks");
|
||||
set => this.Set("Tasks", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -437,8 +426,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public bool ShowAboutView
|
||||
{
|
||||
get { return this.Get<bool>("ShowAboutView"); }
|
||||
set { this.Set("ShowAboutView", value); }
|
||||
get => this.Get<bool>("ShowAboutView");
|
||||
set => this.Set("ShowAboutView", value);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -448,8 +437,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public ObservableCollection<SteamlessPlugin> Plugins
|
||||
{
|
||||
get { return this.Get<ObservableCollection<SteamlessPlugin>>("Plugins"); }
|
||||
set { this.Set("Plugins", value); }
|
||||
get => this.Get<ObservableCollection<SteamlessPlugin>>("Plugins");
|
||||
set => this.Set("Plugins", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -457,8 +446,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public int SelectedPluginIndex
|
||||
{
|
||||
get { return this.Get<int>("SelectedPluginIndex"); }
|
||||
set { this.Set("SelectedPluginIndex", value); }
|
||||
get => this.Get<int>("SelectedPluginIndex");
|
||||
set => this.Set("SelectedPluginIndex", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -466,8 +455,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public string InputFilePath
|
||||
{
|
||||
get { return this.Get<string>("InputFilePath"); }
|
||||
set { this.Set("InputFilePath", value); }
|
||||
get => this.Get<string>("InputFilePath");
|
||||
set => this.Set("InputFilePath", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -475,8 +464,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public SteamlessOptions Options
|
||||
{
|
||||
get { return this.Get<SteamlessOptions>("Options"); }
|
||||
set { this.Set("Options", value); }
|
||||
get => this.Get<SteamlessOptions>("Options");
|
||||
set => this.Set("Options", value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -484,8 +473,8 @@ namespace Steamless.ViewModel
|
|||
/// </summary>
|
||||
public ObservableCollection<LogMessageEventArgs> Log
|
||||
{
|
||||
get { return this.Get<ObservableCollection<LogMessageEventArgs>>("Log"); }
|
||||
set { this.Set("Log", value); }
|
||||
get => this.Get<ObservableCollection<LogMessageEventArgs>>("Log");
|
||||
set => this.Set("Log", value);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue