2023-03-09 11:52:28 -05:00
using BinaryObjectScanner.Interfaces ;
2023-03-07 16:59:14 -05:00
using BinaryObjectScanner.Wrappers ;
2021-09-05 23:31:10 -07:00
2023-03-09 23:19:27 -05:00
namespace BinaryObjectScanner.Protection
2021-09-05 23:31:10 -07:00
{
// 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 ;
}
}
}