mirror of
https://github.com/atom0s/Steamless.git
synced 2024-12-19 23:07:41 +01:00
Added support for new SteamStub v3.1.2 variant. (x86 only at this time. I do not have any 64bit test files.)
- Thanks to Gano for supplying test files. - Thanks to immorr for supplying test files. Adjusted the default window size on startup so that the full plugin names are seen with default screen settings.
This commit is contained in:
parent
b3d5981784
commit
57dba9916f
4 changed files with 27 additions and 16 deletions
|
@ -34,6 +34,7 @@ namespace Steamless.Unpacker.Variant31.x86
|
|||
using API.Services;
|
||||
using Classes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
|
@ -108,19 +109,29 @@ namespace Steamless.Unpacker.Variant31.x86
|
|||
var varient = Pe32Helpers.FindPattern(bind, "E8 00 00 00 00 50 53 51 52 56 57 55 8B 44 24 1C 2D 05 00 00 00 8B CC 83 E4 F0 51 51 51 50");
|
||||
if (varient == 0) return false;
|
||||
|
||||
// Attempt to determine the varient version..
|
||||
int headerSize;
|
||||
var offset = Pe32Helpers.FindPattern(bind, "55 8B EC 81 EC ?? ?? ?? ?? 53 ?? ?? ?? ?? ?? 68");
|
||||
if (offset == 0)
|
||||
{
|
||||
offset = Pe32Helpers.FindPattern(bind, "55 8B EC 81 EC ?? ?? ?? ?? 53 ?? ?? ?? ?? ?? 8D 83");
|
||||
if (offset == 0)
|
||||
return false;
|
||||
// Version patterns..
|
||||
var varientPatterns = new List<KeyValuePair<string, int>>
|
||||
{
|
||||
new KeyValuePair<string, int>("55 8B EC 81 EC ?? ?? ?? ?? 53 ?? ?? ?? ?? ?? 68", 0x10), // v3.1 [Original version?]
|
||||
new KeyValuePair<string, int>("55 8B EC 81 EC ?? ?? ?? ?? 53 ?? ?? ?? ?? ?? 8D 83", 0x16), // v3.1.1 [Newer, 3.1.1? (Seen 2015?)]
|
||||
new KeyValuePair<string, int>("55 8B EC 81 EC ?? ?? ?? ?? 56 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 8D", 0x10) // v3.1.2 [Newer, 3.1.2? (Seen late 2017.)]
|
||||
};
|
||||
|
||||
headerSize = BitConverter.ToInt32(bind, (int)offset + 22);
|
||||
var headerSize = 0;
|
||||
uint offset = 0;
|
||||
foreach (var p in varientPatterns)
|
||||
{
|
||||
offset = Pe32Helpers.FindPattern(bind, p.Key);
|
||||
if (offset <= 0)
|
||||
continue;
|
||||
|
||||
headerSize = BitConverter.ToInt32(bind, (int)offset + p.Value);
|
||||
break;
|
||||
}
|
||||
else
|
||||
headerSize = BitConverter.ToInt32(bind, (int)offset + 16);
|
||||
|
||||
// Ensure valid data was found..
|
||||
if (offset == 0 || headerSize == 0)
|
||||
return false;
|
||||
|
||||
return headerSize == 0xF0;
|
||||
}
|
||||
|
|
|
@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: Guid("0f2fae37-f898-4392-b4f6-711954beeb4f")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: AssemblyVersion("1.0.0.1")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.1")]
|
|
@ -37,5 +37,5 @@ using System.Windows;
|
|||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
|
||||
[assembly: AssemblyVersion("3.0.0.4")]
|
||||
[assembly: AssemblyFileVersion("3.0.0.4")]
|
||||
[assembly: AssemblyVersion("3.0.0.5")]
|
||||
[assembly: AssemblyFileVersion("3.0.0.5")]
|
|
@ -30,7 +30,7 @@
|
|||
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
||||
xmlns:view="clr-namespace:Steamless.View"
|
||||
mc:Ignorable="d" FontFamily="Tahoma" Icon="../Assets/steam.ico"
|
||||
Title="Steamless" MinHeight="600" MaxHeight="800" MinWidth="450" Width="450" SizeToContent="Height"
|
||||
Title="Steamless" MinHeight="600" MaxHeight="800" MinWidth="450" Width="525" SizeToContent="Height"
|
||||
TextOptions.TextRenderingMode="ClearType" TextOptions.TextFormattingMode="Display" ResizeMode="CanResizeWithGrip"
|
||||
AllowsTransparency="True" WindowStartupLocation="CenterScreen" WindowStyle="None">
|
||||
|
||||
|
|
Loading…
Reference in a new issue