dnYara

April 26, 2019 ยท View on GitHub

Interoperability

dnYara is a .Net Standard 2.0 wrapper for the native Yara library. It will lets you use all the features of the native C Yara library in C# for a large set of .Net framework and plateforme.

Indeed, the fact it is built for .Net Standard 2.0 ensure interoperability and portability with a maximum of .Net frameworks, and os-platform (learn more).

Existing Yara wrappers for .Net:

  • are developped in C++/CLR .Net because it allows to use native .lib libraries
  • are only compatible with .Net Framework (and therefore only with Windows OS)

So I decided to write it in C# under .Net Standard, via PInvoke API mapping.

As a reminder, the motivation behind .Net Standard is to establish greater uniformity in the .Net eco-system. ECMA 335 continues to establish uniformity for .Net implementation behavior, but there is no similar specification for.NET base class libraries (BCLs) for .Net implementations.

The .Net Standard allows the following key scenarios:

  • Defines a uniform set of BCL APIs for all .NET implementations to be implemented, regardless of workload.
  • Helps developers produce portable libraries that can be used on all .NET implementations, using the same set of APIs. Reduces or even eliminates conditional compilation of the shared source due to API.NET, only for OS APIs.

.Net Standard Img

In concrete terms, the current version of dnYara can be used on the following frameworks:

.NET Standard[2.0]
.NET Core2.0
.NET Framework4.6.1
Mono5.4
Xamarin.iOS10.14
Xamarin.Mac3.8
Xamarin.Android8.0
Unity2018.1
Universal Windows Platform10.0.16299

.Net Core 2.0 - Supported OS versions

.NET Core is an open-source, general-purpose development platform maintained by Microsoft and the .NET community on GitHub. It's cross-platform (supporting Windows, macOS, and Linux) and can be used to build device, cloud, and IoT applications.

Windows

OSVersionArchitecturesNotes
Windows Client7 SP1+, 8.1x64, x86
Windows 10 ClientVersion 1607+x64, x86
Windows Server2008 R2 SP1+x64, x86

See the Windows Lifecycle Fact Sheet for details regarding each Windows release lifecycle.

macOS

OSVersionArchitecturesNotes
Mac OS X10.12+x64Apple Support Sitemap
Apple Security Updates

Linux

OSVersionArchitecturesNotes
Red Hat Enterprise Linux6x64Microsoft support policy
Red Hat Enterprise Linux
CentOS
Oracle Linux
7x64Red Hat support policy
CentOS lifecycle
Oracle Linux lifecycle
Fedora27x64Fedora lifecycle
Debian9, 8.7+x64Debian lifecycle
Ubuntu18.04, 16.04, 14.04x64Ubuntu lifecycle
Linux Mint18, 17x64Linux Mint end of life announcements
openSUSE42.3+x64OpenSUSE lifecycle
SUSE Enterprise Linux (SLES)12 SP2+x64SUSE lifecycle
  • Bold numbers indicate additions in this release.
  • '+' indicates the minimum supported version.