From 1fcabbd8b6e0b853a0bc90623b264c0178331796 Mon Sep 17 00:00:00 2001 From: Dani Santos Date: Wed, 11 Jan 2023 21:59:06 +0000 Subject: [PATCH] Version 4.1 --- README.md | 35 +++++++++++------- bin/BaseLibrary.dll | Bin 0 -> 66048 bytes bin/XescSDK.dll | Bin 41472 -> 0 bytes bin/XescSDK.runtimeconfig.json | 12 ------ ...{XescSDK.deps.json => XvirusSDK.deps.json} | 29 +++++++++++---- bin/XvirusSDK.dll | Bin 0 -> 5632 bytes example/Example.csproj | 6 +-- 7 files changed, 46 insertions(+), 36 deletions(-) create mode 100644 bin/BaseLibrary.dll delete mode 100644 bin/XescSDK.dll delete mode 100644 bin/XescSDK.runtimeconfig.json rename bin/{XescSDK.deps.json => XvirusSDK.deps.json} (99%) create mode 100644 bin/XvirusSDK.dll diff --git a/README.md b/README.md index 204072d..b0820c3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Xvirus SDK C# -Xvirus SDK 4.0.5 C# bindings. +Xvirus SDK 4.1 C# bindings. ## Table of Contents @@ -17,29 +17,38 @@ Xvirus SDK 4.0.5 C# bindings. ## Minimum Requirements -To run Xvirus SDK you need: +To use Xvirus SDK you need: -- .NET 5 Runtime - [download](https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-5.0.11-windows-x64-installer) +- .NET 7 SDK - [download](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) ## Changelog -- Completely redone in .NET 5 -- Now supports Linux (CLI and C# bindings only) -- Added XvirusAI scan engine (BETA) -- Scan speed is up to 2x faster -- Fixed memory usage spike when scanning large files -- Removed file size limit for scanned files by default -- The checkUpdate function can now check for SDK updates -- Added 3 new settings "EnableAIScan", "MaxScanLength" and "DatabaseVersion" +- Version **4.1**: + + - Upgraded from .NET 5 to .NET 7 + - C++ bindings now also support Linux + - Removed Minimum Requirements on C++ bindings and CLI + - Changed how exceptions are handled in C++ bindings + +- Version **4.0**: + - Completely redone in .NET 5 + - Now supports Linux (CLI and C# bindings only) + - Added XvirusAI scan engine (BETA) + - Scan speed is up to 2x faster + - Fixed memory usage spike when scanning large files + - Removed file size limit for scanned files by default + - The checkUpdate function can now check for SDK updates + - Added 3 new settings "EnableAIScan", "MaxScanLength" and "DatabaseVersion" ## Known Issues - XvirusAI engine is still in BETA. It is not recomended to use in production yet. +- XvirusAI engine does not work in C++ bindings. - The checkUpdate function can now check for SDK updates but can't update it ## Get Started -The "`example`" folder contains an example project on how to import and use Xvirus SDK in C# (.NET Core 5). +The "`example`" folder contains an example project on how to import and use Xvirus SDK in C# (.NET 7). You can run it by building it and then running executable file in the output folder. @@ -74,7 +83,7 @@ The `scan` function returns a class `ScanResult` with the following properties: public class ScanResult { public bool IsMalware { get; set; } // true if malware - public string Name { get; set; } // detection name + public string Name { get; set; } // detection name public double MalwareScore { get; set; } // between 0 and 1, higher score means more likely to be malware, -1 if there was an error } ``` diff --git a/bin/BaseLibrary.dll b/bin/BaseLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..d24ca45a7642ee1e6a67d9d0f88cc1638ac159f8 GIT binary patch literal 66048 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 literal 0 HcmV?d00001 diff --git a/example/Example.csproj b/example/Example.csproj index 35ed8ac..d562b3d 100644 --- a/example/Example.csproj +++ b/example/Example.csproj @@ -2,12 +2,12 @@ Exe - net5.0 + net7.0 - - ..\bin\XescSDK.dll + + ..\bin\XvirusSDK.dll