YaraSharp
1.0.0
C # Emballage autour de la bibliothèque assortie du motif Yara.
Utilisez des signatures Formez Loki ou Yara.
Le package NuGet est disponible
// All API calls happens here
YSInstance YSInstance = new YSInstance ( ) ;
// Declare external variables (could be null)
Dictionary < string , object > externals = new Dictionary < string , object > ( )
{
{ "filename" , string . Empty } ,
{ "filepath" , string . Empty } ,
{ "extension" , string . Empty }
} ;
// Get list of YARA rules
List < string > ruleFilenames = Directory . GetFiles ( @"D:Testyara" , "*.yar" , SearchOption . AllDirectories ) . ToList ( ) ;
// Context is where yara is initialized
// From yr_initialize() to yr_finalize()
using ( YSContext context = new YSContext ( ) )
{
// Compiling rules
using ( YSCompiler compiler = instance . CompileFromFiles ( ruleFilenames , externals ) )
{
// Get compiled rules
YSRules rules = compiler . GetRules ( ) ;
// Get errors
YSReport errors = compiler . GetErrors ( ) ;
// Get warnings
YSReport warnings = compiler . GetWarnings ( ) ;
// Some file to test yara rules
string Filename = @"" ;
// Get matches
List < YSMatches > Matches = instance . ScanFile ( Filename , rules ,
new Dictionary < string , object > ( )
{
{ "filename" , Alphaleonis . Win32 . Filesystem . Path . GetFileName ( Filename ) } ,
{ "filepath" , Alphaleonis . Win32 . Filesystem . Path . GetFullPath ( Filename ) } ,
{ "extension" , Alphaleonis . Win32 . Filesystem . Path . GetExtension ( Filename ) }
} ,
0 ) ;
// Iterate over matches
foreach ( YSMatches Match in Matches )
{
//...
}
}
// Log errors
}Pour la numérisation asynchrone, l'utilisation doit appeler les méthodes de détruire:
YaraSharp . CYaraSharp YSInstance = new CYaraSharp ( ) ;
YaraSharp . CContext YSContext = new YaraSharp . CContext ( ) ;
YaraSharp . CRules YSRules = YSInstance . CompileFromFiles ( RuleFilenames , null , out Errors ) ;
// Async here
YSRules . Destroy ( ) ;
YSContext . Destroy ( ) ; Documentation de l'API Libyara C pour un aperçu général de la façon d'utiliser la Libye.
L'âme contient 2 projets:
Construire vs 2017
Compilé avec yara 3.8.1
Yara corrigé pour prendre en charge les chemins Unicode
Vous pouvez utiliser ou modifier les sources comme vous le souhaitez
Un merci spécial à Kallanreed