Dani Santos
3 years ago
commit
85de1ef358
43 changed files with 2714 additions and 0 deletions
@ -0,0 +1,116 @@ |
|||
# Xvirus SDK 4.0.4 |
|||
|
|||
Xvirus SDK 4.0.4 C++ bindings x64. |
|||
|
|||
## Table of Contents |
|||
|
|||
- [Xvirus SDK 4.0.4](#xvirus-sdk-40) |
|||
- [Table of Contents](#table-of-contents) |
|||
- [Minimum Requirements](#minimum-requirements) |
|||
- [Changelog](#changelog) |
|||
- [Known Issues](#known-issues) |
|||
- [Get Started](#get-started) |
|||
- [Avaiable Functions](#avaiable-functions) |
|||
- [Settings](#settings) |
|||
|
|||
## Minimum Requirements |
|||
|
|||
To run Xvirus SDK you need: |
|||
|
|||
- .NET 5 Runtime - [download](<[https://link](https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-5.0.11-windows-x64-installer)>) |
|||
- Visual C++ Redistributable 2019 - [download](https://aka.ms/vs/16/release/vc_redist.x64.exe) |
|||
|
|||
## 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" |
|||
|
|||
## Known Issues |
|||
|
|||
- XvirusAI engine is still in BETA. It is not recomended to use in production yet. |
|||
- 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++. |
|||
|
|||
This project shows you how to statically load Xvirus SDK using `xvneng.lib`, you can also dinamically load `xvneng.dll` like any other dll, [see](https://stackoverflow.com/questions/8696653/dynamically-load-a-function-from-a-dll). |
|||
|
|||
You can run it by building it, copying the files from the `bin` folder to the output folder of the build and then running `xvbdc.exe`. |
|||
|
|||
## Avaiable Functions |
|||
|
|||
You can find the declaration of all functions and structs in the file `xvneng.h` located in the "headers" folder. |
|||
|
|||
- **load** - Loads Xvirus Scan Engine into memory, if set `force`=true it will reload the scan engine, even if it is already loaded. |
|||
- **unload** - Unloads Xvirus Scan Engine from memory. |
|||
- **scan** - Scans the file located at `filepath`. It will return a [`ScanResult`](#Model). |
|||
- **scanAsString** - Scans the file located at `filepath`. It will return one of the following strings: |
|||
- "**Safe**" - If no malware is detected. |
|||
- "**Malware**" - If malware is detected but the name isn't known. |
|||
- **_Malware Name_** - If it is malware from a known family (example: "Trojan.Downloader"). |
|||
- "**AI.{aiScore}**" - Score of the file using XvirusAI from 0 to 100, the higher the score the more probable it is malicious (example: "AI.99"). |
|||
- "**File not found!**" - If no file is found in the submited path. |
|||
- "**File too big!**" - If the file size is bigger than the set limit. |
|||
- "**Could not get file hash!**" - There was an error calculating the hash of the file. |
|||
- **checkUpdates** - Checks and updates the databases and AI engine to the most recent versions. If `checkSDKUpdates`=true then it will also check for SDK updates. If `loadDBAfterUpdate`=true then it will reload the Xvirus Scan Engine after the update is done. It can return the following strings: |
|||
- "**There is a new SDK version available!**" |
|||
- "**Database was updated!**" |
|||
- "**Database is up-to-date!**" |
|||
- **getSettings** - returns a string representation of the `settings.json` file. |
|||
- **version** - returns the version of the SDK/CLI. |
|||
|
|||
![functions](./functions.JPG) |
|||
|
|||
## Model |
|||
|
|||
The `scan` function returns a struct `ScanResult` with the following properties: |
|||
|
|||
```c++ |
|||
struct ScanResult { |
|||
bool isMalware; // true if malware |
|||
double score; // between 0 and 1, higher score means more likely to be malware, -1 if there was an error |
|||
char* name; // detection name |
|||
}; |
|||
``` |
|||
|
|||
## Settings |
|||
|
|||
Settings are located in the "`settings.json`" file in the root folder of the SDK. There are 4 avaiable options: |
|||
|
|||
- **EnableHeuristics** - Enables heuristics scanning of files. Default: _true_ |
|||
- **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_ |
|||
- **DatabaseVersion** - KeyValue list of database files version. This is updated automatically when using the "checkUpdate()" function. |
|||
|
|||
Example of a `settings.json` file: |
|||
|
|||
```JSON |
|||
{ |
|||
"EnableHeuristics": true, |
|||
"EnableAIScan": false, |
|||
"MaxScanLength": null, |
|||
"DatabaseVersion": { |
|||
"AIModel": 0, |
|||
"MainDB": 0, |
|||
"DailyDB": 0, |
|||
"WhiteDB": 0, |
|||
"DailywlDB": 0, |
|||
"HeurDB": 0, |
|||
"HeurDB2": 0, |
|||
"MalvendorDB": 0 |
|||
} |
|||
} |
|||
``` |
|||
|
|||
## Exceptions |
|||
|
|||
If any of the functions fail it may return an [exception](https://www.cplusplus.com/doc/tutorial/exceptions/). |
|||
|
|||
All exceptions are logged in the `errorlog.txt` file. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
@ -0,0 +1,12 @@ |
|||
{ |
|||
"runtimeOptions": { |
|||
"tfm": "net5.0", |
|||
"framework": { |
|||
"name": "Microsoft.NETCore.App", |
|||
"version": "5.0.0" |
|||
}, |
|||
"configProperties": { |
|||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false |
|||
} |
|||
} |
|||
} |
Binary file not shown.
@ -0,0 +1,15 @@ |
|||
{ |
|||
"EnableHeuristics": true, |
|||
"EnableAIScan": false, |
|||
"MaxScanLength": null, |
|||
"DatabaseVersion": { |
|||
"AIModel": 0, |
|||
"MainDB": 0, |
|||
"DailyDB": 0, |
|||
"WhiteDB": 0, |
|||
"DailywlDB": 0, |
|||
"HeurDB": 0, |
|||
"HeurDB2": 0, |
|||
"MalvendorDB": 0 |
|||
} |
|||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,169 @@ |
|||
{ |
|||
"runtimeTarget": { |
|||
"name": "net5.0", |
|||
"signature": "" |
|||
}, |
|||
"compilationOptions": {}, |
|||
"targets": { |
|||
"net5.0": { |
|||
"xvneng/1.0.0": { |
|||
"dependencies": { |
|||
"XescSDK": "4.0.4.0" |
|||
}, |
|||
"runtime": { |
|||
"xvneng.dll": {} |
|||
} |
|||
}, |
|||
"XescSDK/4.0.4.0": { |
|||
"runtime": { |
|||
"XescSDK.dll": { |
|||
"assemblyVersion": "4.0.4.0", |
|||
"fileVersion": "4.0.4.0" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.Data/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.Data.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.Core/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.Core.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.DataView/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.DataView.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"PeNet/1.6.1.0": { |
|||
"runtime": { |
|||
"PeNet.dll": { |
|||
"assemblyVersion": "1.6.1.0", |
|||
"fileVersion": "1.6.1.0" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.Transforms/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.Transforms.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.FastTree/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.FastTree.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.StandardTrainers/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.StandardTrainers.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"Newtonsoft.Json/10.0.0.0": { |
|||
"runtime": { |
|||
"Newtonsoft.Json.dll": { |
|||
"assemblyVersion": "10.0.0.0", |
|||
"fileVersion": "10.0.3.21018" |
|||
} |
|||
} |
|||
}, |
|||
"Microsoft.ML.CpuMath/1.0.0.0": { |
|||
"runtime": { |
|||
"Microsoft.ML.CpuMath.dll": { |
|||
"assemblyVersion": "1.0.0.0", |
|||
"fileVersion": "1.700.122.15804" |
|||
} |
|||
} |
|||
}, |
|||
"PeNet.Asn1/1.3.3.0": { |
|||
"runtime": { |
|||
"PeNet.Asn1.dll": { |
|||
"assemblyVersion": "1.3.3.0", |
|||
"fileVersion": "1.3.3.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"libraries": { |
|||
"xvneng/1.0.0": { |
|||
"type": "project", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"XescSDK/4.0.4.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.Data/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.Core/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.DataView/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"PeNet/1.6.1.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.Transforms/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.FastTree/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.StandardTrainers/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Newtonsoft.Json/10.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.ML.CpuMath/1.0.0.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"PeNet.Asn1/1.3.3.0": { |
|||
"type": "reference", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
} |
|||
} |
|||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,12 @@ |
|||
{ |
|||
"runtimeOptions": { |
|||
"tfm": "net5.0", |
|||
"framework": { |
|||
"name": "Microsoft.NETCore.App", |
|||
"version": "5.0.0" |
|||
}, |
|||
"configProperties": { |
|||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,35 @@ |
|||
#include <iostream> |
|||
|
|||
#include "xvneng.h" |
|||
|
|||
using namespace std; |
|||
|
|||
int main ( |
|||
int argc, |
|||
char* argv[] |
|||
) |
|||
{ |
|||
string info = string ( version () ); |
|||
|
|||
try |
|||
{ |
|||
load(false); |
|||
} |
|||
catch (const std::exception& e ) |
|||
{ |
|||
cout << e.what() << endl; |
|||
} |
|||
|
|||
if ( info.length () ) |
|||
{ |
|||
cout << info.c_str () << endl; |
|||
} |
|||
else |
|||
{ |
|||
cout << "N/A" << endl; |
|||
} |
|||
|
|||
(void) getchar (); |
|||
|
|||
return EXIT_SUCCESS; |
|||
} |
@ -0,0 +1,31 @@ |
|||
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00 |
|||
# Visual Studio Version 16 |
|||
VisualStudioVersion = 16.0.31727.386 |
|||
MinimumVisualStudioVersion = 10.0.40219.1 |
|||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xvbdc", "xvbdc.vcxproj", "{4BB437D2-6130-4B33-BD70-6131B4C491EB}" |
|||
EndProject |
|||
Global |
|||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|||
Debug|x64 = Debug|x64 |
|||
Debug|x86 = Debug|x86 |
|||
Release|x64 = Release|x64 |
|||
Release|x86 = Release|x86 |
|||
EndGlobalSection |
|||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Debug|x64.ActiveCfg = Debug|x64 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Debug|x64.Build.0 = Debug|x64 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Debug|x86.ActiveCfg = Debug|Win32 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Debug|x86.Build.0 = Debug|Win32 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Release|x64.ActiveCfg = Release|x64 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Release|x64.Build.0 = Release|x64 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Release|x86.ActiveCfg = Release|Win32 |
|||
{4BB437D2-6130-4B33-BD70-6131B4C491EB}.Release|x86.Build.0 = Release|Win32 |
|||
EndGlobalSection |
|||
GlobalSection(SolutionProperties) = preSolution |
|||
HideSolutionNode = FALSE |
|||
EndGlobalSection |
|||
GlobalSection(ExtensibilityGlobals) = postSolution |
|||
SolutionGuid = {C7B73751-3C79-4487-BDAC-775522402091} |
|||
EndGlobalSection |
|||
EndGlobal |
@ -0,0 +1,152 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<ItemGroup Label="ProjectConfigurations"> |
|||
<ProjectConfiguration Include="Debug|Win32"> |
|||
<Configuration>Debug</Configuration> |
|||
<Platform>Win32</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Release|Win32"> |
|||
<Configuration>Release</Configuration> |
|||
<Platform>Win32</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Debug|x64"> |
|||
<Configuration>Debug</Configuration> |
|||
<Platform>x64</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Release|x64"> |
|||
<Configuration>Release</Configuration> |
|||
<Platform>x64</Platform> |
|||
</ProjectConfiguration> |
|||
</ItemGroup> |
|||
<PropertyGroup Label="Globals"> |
|||
<VCProjectVersion>16.0</VCProjectVersion> |
|||
<Keyword>Win32Proj</Keyword> |
|||
<ProjectGuid>{4bb437d2-6130-4b33-bd70-6131b4c491eb}</ProjectGuid> |
|||
<RootNamespace>xvbdc</RootNamespace> |
|||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> |
|||
</PropertyGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>true</UseDebugLibraries> |
|||
<PlatformToolset>v142</PlatformToolset> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>false</UseDebugLibraries> |
|||
<PlatformToolset>v142</PlatformToolset> |
|||
<WholeProgramOptimization>true</WholeProgramOptimization> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>true</UseDebugLibraries> |
|||
<PlatformToolset>v142</PlatformToolset> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>false</UseDebugLibraries> |
|||
<PlatformToolset>v142</PlatformToolset> |
|||
<WholeProgramOptimization>true</WholeProgramOptimization> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
</PropertyGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
|||
<ImportGroup Label="ExtensionSettings"> |
|||
</ImportGroup> |
|||
<ImportGroup Label="Shared"> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<PropertyGroup Label="UserMacros" /> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<LinkIncremental>true</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<LinkIncremental>false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<LinkIncremental>true</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<LinkIncremental>false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<SDLCheck>true</SDLCheck> |
|||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ConformanceMode>true</ConformanceMode> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Console</SubSystem> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<FunctionLevelLinking>true</FunctionLevelLinking> |
|||
<IntrinsicFunctions>true</IntrinsicFunctions> |
|||
<SDLCheck>true</SDLCheck> |
|||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ConformanceMode>true</ConformanceMode> |
|||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Console</SubSystem> |
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
|||
<OptimizeReferences>true</OptimizeReferences> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<SDLCheck>true</SDLCheck> |
|||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ConformanceMode>true</ConformanceMode> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Console</SubSystem> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<FunctionLevelLinking>true</FunctionLevelLinking> |
|||
<IntrinsicFunctions>true</IntrinsicFunctions> |
|||
<SDLCheck>true</SDLCheck> |
|||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ConformanceMode>true</ConformanceMode> |
|||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Console</SubSystem> |
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
|||
<OptimizeReferences>true</OptimizeReferences> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemGroup> |
|||
<ClCompile Include="xvbdc.cpp" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClInclude Include="xvneng.h" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
|||
<ImportGroup Label="ExtensionTargets"> |
|||
</ImportGroup> |
|||
</Project> |
@ -0,0 +1,27 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<ItemGroup> |
|||
<Filter Include="Source Files"> |
|||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> |
|||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> |
|||
</Filter> |
|||
<Filter Include="Header Files"> |
|||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> |
|||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> |
|||
</Filter> |
|||
<Filter Include="Resource Files"> |
|||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> |
|||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> |
|||
</Filter> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClCompile Include="xvbdc.cpp"> |
|||
<Filter>Source Files</Filter> |
|||
</ClCompile> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClInclude Include="xvneng.h"> |
|||
<Filter>Header Files</Filter> |
|||
</ClInclude> |
|||
</ItemGroup> |
|||
</Project> |
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<ShowAllFiles>true</ShowAllFiles> |
|||
</PropertyGroup> |
|||
</Project> |
@ -0,0 +1,21 @@ |
|||
#pragma once |
|||
#ifndef _XVNENG_H |
|||
#define _XVNENG_H |
|||
|
|||
#pragma comment ( lib, "xvneng.lib" ) |
|||
|
|||
struct ScanResult { |
|||
bool isMalware; |
|||
double score; |
|||
char* name; |
|||
}; |
|||
|
|||
__declspec(dllimport) void load(bool force); |
|||
__declspec(dllimport) void unload(); |
|||
__declspec(dllimport) ScanResult scan(const wchar_t* filepath); |
|||
__declspec(dllimport) char* scanAsString(const wchar_t* filepath); |
|||
__declspec(dllimport) char* checkUpdates(bool checkSDKUpdates, bool loadDBAfterUpdate); |
|||
__declspec(dllimport) char* getSettings(); |
|||
__declspec(dllimport) char* version(); |
|||
|
|||
#endif // _XVNENG_H
|
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,21 @@ |
|||
#pragma once |
|||
#ifndef _XVNENG_H |
|||
#define _XVNENG_H |
|||
|
|||
#pragma comment ( lib, "xvneng.lib" ) |
|||
|
|||
struct ScanResult { |
|||
bool isMalware; |
|||
double score; |
|||
char* name; |
|||
}; |
|||
|
|||
__declspec(dllimport) void load(bool force); |
|||
__declspec(dllimport) void unload(); |
|||
__declspec(dllimport) ScanResult scan(const wchar_t* filepath); |
|||
__declspec(dllimport) char* scanAsString(const wchar_t* filepath); |
|||
__declspec(dllimport) char* checkUpdates(bool checkSDKUpdates, bool loadDBAfterUpdate); |
|||
__declspec(dllimport) char* getSettings(); |
|||
__declspec(dllimport) char* version(); |
|||
|
|||
#endif // _XVNENG_H
|
Loading…
Reference in new issue