A work-in-progress, experimental dynamic analysis framework for .NET programs.
The following steps describe all dependencies and steps to build SharpDetect, both its managed (.NET) and its unmanaged (.NET AOT-compiled) modules. Cross-compilation is not supported - install required dependencies for your current platform.
- .NET 7 SDK
- ILVerify tool
- Windows dependencies
- Visual Studio 2022 Build Tools
- Linux dependencies
- clang
- zlib1g-dev
# Managed part
cd src/SharpDetect.sln
dotnet build
# Unmanaged part (Windows)
cd src/SharpDetect.Profiler/Scripts
./publish-win-x64-aot-debug.ps1
# Unmanaged part (Linux)
cd src/SharpDetect.Profiler/Scripts
./publish-linux-x64-aot-debug.sh
# Unit tests
dotnet test src/Tests/SharpDetect.UnitTests/SharpDetect.UnitTests.csproj
# End-2-end tests
dotnet test src/Tests/SharpDetect.E2ETests/SharpDetect.E2ETests.csproj
# IL verification tests
dotnet test src/Tests/SharpDetect.ILVerifications/SharpDetect.ILVerifications.csproj
SharpDetect is still in development and not production ready. The following runtimes and .NET implementations are supported:
Runtime | .NET Core/5+ | .NET Framework |
---|---|---|
win-x64 | ✅ | 🚧 (in-progress) |
win-x86 | ❌ | ❌ |
linux-x64 | ✅ | (not applicable) |
linux-x86 | ❌ | (not applicable) |
osx-x64 | ❌ | (not applicable) |
Please read CONTRIBUTING.md for a guide on how to contribute to this repository.
This project is licensed under the Apache-2.0 license, unless specified otherwise in a file header.