|
@ -1,43 +1,77 @@ |
|
|
# Xvirus SDK 4.0.4 |
|
|
# Xvirus SDK C# |
|
|
|
|
|
|
|
|
Xvirus SDK 4.0.4 C# bindings. |
|
|
Xvirus SDK 4.2 C# bindings. |
|
|
|
|
|
|
|
|
## Table of Contents |
|
|
## Table of Contents |
|
|
|
|
|
|
|
|
- [Xvirus SDK 4.0.4](#xvirus-sdk-40) |
|
|
- [Xvirus SDK C#](#xvirus-sdk-c) |
|
|
- [Table of Contents](#table-of-contents) |
|
|
- [Table of Contents](#table-of-contents) |
|
|
- [Minimum Requirements](#minimum-requirements) |
|
|
- [Minimum Requirements](#minimum-requirements) |
|
|
- [Changelog](#changelog) |
|
|
- [Changelog](#changelog) |
|
|
- [Known Issues](#known-issues) |
|
|
- [Known Issues](#known-issues) |
|
|
- [Get Started](#get-started) |
|
|
- [Get Started](#get-started) |
|
|
- [Avaiable Functions](#avaiable-functions) |
|
|
- [Avaiable Functions](#avaiable-functions) |
|
|
|
|
|
- [Model](#model) |
|
|
- [Settings](#settings) |
|
|
- [Settings](#settings) |
|
|
|
|
|
- [Exceptions](#exceptions) |
|
|
|
|
|
|
|
|
## Minimum Requirements |
|
|
## Minimum Requirements |
|
|
|
|
|
|
|
|
To run Xvirus SDK you need: |
|
|
To use Xvirus C# 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) |
|
|
|
|
|
|
|
|
|
|
|
The following Operating Systems are supported: |
|
|
|
|
|
|
|
|
|
|
|
- Windows: |
|
|
|
|
|
- Windows 10 1607 |
|
|
|
|
|
- Windows 11 22000 |
|
|
|
|
|
- Windows Server 2012 |
|
|
|
|
|
- Windows Server Core 2012 |
|
|
|
|
|
- Linux (glibc 2.17): |
|
|
|
|
|
- Alpine Linux 3.15 |
|
|
|
|
|
- CentOS 7 |
|
|
|
|
|
- Debian 10 |
|
|
|
|
|
- Fedora 36 |
|
|
|
|
|
- openSUSE 15 |
|
|
|
|
|
- Oracle Linux 7 |
|
|
|
|
|
- Red Hat Enterprise Linux 7 |
|
|
|
|
|
- SUSE Enterprise Linux (SLES) 12 SP2 |
|
|
|
|
|
- Ubuntu 18.04 |
|
|
|
|
|
|
|
|
## Changelog |
|
|
## Changelog |
|
|
|
|
|
|
|
|
- Completely redone in .NET 5 |
|
|
- Version **4.2**: |
|
|
- Now supports Linux (CLI and C# bindings only) |
|
|
- Reduced glibc minimum version to 2.17 on Linux |
|
|
- Added XvirusAI scan engine (BETA) |
|
|
- Added "Logging()" function to enable/disable logging |
|
|
- Scan speed is up to 2x faster |
|
|
- Added "BaseFolder()" function to set a custom base folder |
|
|
- Fixed memory usage spike when scanning large files |
|
|
- Added new setting "DatabaseFolder" to set the Database folder path |
|
|
- Removed file size limit for scanned files by default |
|
|
- Fixed C++ binding will return "Success=false" correctly when failing to scan a file |
|
|
- 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 |
|
|
|
|
|
- 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 |
|
|
## Known Issues |
|
|
|
|
|
|
|
|
- XvirusAI engine is still in BETA. It is not recomended to use in production yet. |
|
|
- 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 |
|
|
- The checkUpdate function can now check for SDK updates but can't update it |
|
|
|
|
|
|
|
|
## Get Started |
|
|
## 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. |
|
|
You can run it by building it and then running executable file in the output folder. |
|
|
|
|
|
|
|
@ -62,6 +96,8 @@ You have the following functions available: |
|
|
- "**Database is up-to-date!**" |
|
|
- "**Database is up-to-date!**" |
|
|
- **GetSettings** - returns object representation of the `settings.json` file. |
|
|
- **GetSettings** - returns object representation of the `settings.json` file. |
|
|
- **GetSettingsAsString** - returns a string representation of the `settings.json` file. |
|
|
- **GetSettingsAsString** - returns a string representation of the `settings.json` file. |
|
|
|
|
|
- **Logging** - Sets and returns if `Logging` is enabled. If no `enableLogging` value is provided it will only return. |
|
|
|
|
|
- **BaseFolder** - Sets and returns the `BaseFolder` path. If no `baseFolder` value is provided it will only return. |
|
|
- **Version** - returns the version of the SDK/CLI. |
|
|
- **Version** - returns the version of the SDK/CLI. |
|
|
|
|
|
|
|
|
## Model |
|
|
## Model |
|
@ -79,11 +115,12 @@ public class ScanResult |
|
|
|
|
|
|
|
|
## Settings |
|
|
## Settings |
|
|
|
|
|
|
|
|
Settings are located in the "`settings.json`" file in the root folder of the SDK. There are 4 avaiable options: |
|
|
Settings are located in the "`settings.json`" file in the root folder of the SDK. There are 5 avaiable options: |
|
|
|
|
|
|
|
|
- **EnableHeuristics** - Enables heuristics scanning of files. Default: _true_ |
|
|
- **EnableHeuristics** - Enables heuristics scanning of files. Default: _true_ |
|
|
- **EnableAIScan** - Enables XvirusAI scan engine. This feature is still in BETA. Default: _false_ |
|
|
- **EnableAIScan** - Enables XvirusAI scan engine. This feature is still in BETA. Default: _false_ |
|
|
- **MaxScanLength** - Maximum file size to be scanned in bytes. If set "null" then there is no limit. Default: _null_ |
|
|
- **MaxScanLength** - Maximum file size to be scanned in bytes. If set "null" then there is no limit. Default: _null_ |
|
|
|
|
|
- **DatabaseFolder** - Path to the database folder, it accepts both relative and absolute paths. Default: _"Database"_ |
|
|
- **DatabaseVersion** - KeyValue list of database files version. This is updated automatically when using the "checkUpdate()" function. |
|
|
- **DatabaseVersion** - KeyValue list of database files version. This is updated automatically when using the "checkUpdate()" function. |
|
|
|
|
|
|
|
|
Example of a `settings.json` file: |
|
|
Example of a `settings.json` file: |
|
@ -93,6 +130,7 @@ Example of a `settings.json` file: |
|
|
"EnableHeuristics": true, |
|
|
"EnableHeuristics": true, |
|
|
"EnableAIScan": false, |
|
|
"EnableAIScan": false, |
|
|
"MaxScanLength": null, |
|
|
"MaxScanLength": null, |
|
|
|
|
|
"DatabaseFolder": "Database", |
|
|
"DatabaseVersion": { |
|
|
"DatabaseVersion": { |
|
|
"AIModel": 0, |
|
|
"AIModel": 0, |
|
|
"MainDB": 0, |
|
|
"MainDB": 0, |
|
|