Add PE checks for Steam

This commit is contained in:
Matt Nadareski
2022-03-14 12:16:38 -07:00
parent c4447fc505
commit edfc3c6c5d
2 changed files with 31 additions and 3 deletions

View File

@@ -1,12 +1,40 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using BurnOutSharp.ExecutableType.Microsoft.PE;
using BurnOutSharp.Matching;
using BurnOutSharp.Tools;
namespace BurnOutSharp.ProtectionType
{
// TODO: Investigate what content checks can be done here
public class Steam : IPathCheck
public class Steam : IPEContentCheck, IPathCheck
{
/// <inheritdoc/>
public string CheckPEContents(string file, byte[] fileContent, bool includeDebug, PortableExecutable pex)
{
// Get the sections from the executable, if possible
var sections = pex?.SectionTable;
if (sections == null)
return null;
string name = Utilities.GetFileDescription(pex);
if (!string.IsNullOrEmpty(name) && name.Contains("Steam Autorun Setup"))
return "Steam";
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client API"))
return "Steam";
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client Service"))
return "Steam";
name = Utilities.GetProductName(pex);
if (!string.IsNullOrEmpty(name) && name.Contains("Steam Autorun Setup"))
return "Steam";
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client API"))
return "Steam";
else if (!string.IsNullOrEmpty(name) && name.Contains("Steam Client Service"))
return "Steam";
return null;
}
/// <inheritdoc/>
public ConcurrentQueue<string> CheckDirectoryPath(string path, IEnumerable<string> files)
{

View File

@@ -70,7 +70,7 @@ Below is a list of protections detected by BurnOutSharp. The two columns explain
| SoftLock | False | True | Unconfirmed¹ |
| SolidShield | True | True | Some Wrapper v1 not detected² |
| StarForce | True | False | Partially unconfirmed², commented out issue with `protect.exe` false positives |
| Steam | False | True | |
| Steam | True | True | |
| SVKP (Slovak Protector) | True | False | |
| Sysiphus / Sysiphus DVD | True | False | |
| TAGES | True | True | Partially unconfirmed² |