2022-12-03 22:17:48 -08:00
using BurnOutSharp.Interfaces ;
using BurnOutSharp.Wrappers ;
2021-09-05 23:31:10 -07:00
namespace BurnOutSharp.ProtectionType
{
// TODO: Figure out how versions/version ranges work for this protection
2022-07-13 12:46:17 -07:00
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
2022-08-13 21:04:26 -06:00
// The official website (https://web.archive.org/web/20010301183549/http://www.anticracking.sk/) contains installations for demo versions of SVKP, which themselves are also protected with SVKP.
// The site also contains useful information about various other copy protections from the era.
// Additional info: https://www.cdmediaworld.com/hardware/cdrom/cd_protections_svkp.shtml
2022-05-01 17:17:15 -07:00
public class SVKProtector : IPortableExecutableCheck
2021-09-05 23:31:10 -07:00
{
/// <inheritdoc/>
2022-05-01 17:17:15 -07:00
public string CheckPortableExecutable ( string file , PortableExecutable pex , bool includeDebug )
2021-09-05 23:31:10 -07:00
{
2022-12-05 10:47:17 -08:00
// Get the sections from the executable, if possible
var sections = pex ? . SectionTable ;
if ( sections = = null )
2021-09-05 23:31:10 -07:00
return null ;
2022-12-05 10:47:17 -08:00
2021-09-05 23:31:10 -07:00
// 0x504B5653 is "SVKP"
2022-12-03 22:17:48 -08:00
if ( pex . PointerToSymbolTable = = 0x504B5653 )
2021-09-05 23:31:10 -07:00
return "SVKP (Slovak Protector)" ;
return null ;
}
}
}