Musa.Core
0.1.5
See the version list below for details.
Requires NuGet 2.5 or higher.
dotnet add package Musa.Core --version 0.1.5
NuGet\Install-Package Musa.Core -Version 0.1.5
<PackageReference Include="Musa.Core" Version="0.1.5" />
paket add Musa.Core --version 0.1.5
#r "nuget: Musa.Core, 0.1.5"
// Install Musa.Core as a Cake Addin #addin nuget:?package=Musa.Core&version=0.1.5 // Install Musa.Core as a Cake Tool #tool nuget:?package=Musa.Core&version=0.1.5
Musa.Core
Introduction
Warning
Musa.Core is in beta testing...
Musa.Core is a derivative of the underlying API implementation of Musa.Runtime (formerly ucxxrt).
Use ntdll/ntoskrnl to implement Kernel32, Advapi32 and other APIs. It includes user-mode and kernel-mode.
Recommended for use with Musa.Veil.
How to use
Right click on the project, select "Manage NuGet Packages".
Search for Musa.Core
, choose the version that suits you, and then click "Install".
Or
If your project template uses Mile.Project.Windows, you can add the following code directly to your .vcxproj
file:
<ItemGroup>
<PackageReference Include="Musa.Core">
<Version>0.1.0</Version>
</PackageReference>
</ItemGroup>
Header-only mode
Add the following code to your .vcxproj
file:
<PropertyGroup>
<MusaCoreOnlyHeader>true</MusaCoreOnlyHeader>
</PropertyGroup>
This mode will not automatically import lib files.
Feature
All ZwRoutines supported by the current system can be used directly.
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) { UNREFERENCED_PARAMETER(DriverObject); UNREFERENCED_PARAMETER(RegistryPath); NTSTATUS Status; do { DriverObject->DriverUnload = DriverUnload; Status = MusaCoreStartup(DriverObject, RegistryPath); if (!NT_SUCCESS(Status)) { break; } LARGE_INTEGER SystemTime{}; Status = ZwQuerySystemTime(&SystemTime); if (!NT_SUCCESS(Status)) { break; } Status = RtlSystemTimeToLocalTime(&SystemTime, &SystemTime); if (!NT_SUCCESS(Status)) { break; } TIME_FIELDS Time{}; RtlTimeToTimeFields(&SystemTime, &Time); MusaLOG("Loading time is %04d/%02d/%02d %02d:%02d:%02d", Time.Year, Time.Month, Time.Day, Time.Hour, Time.Minute, Time.Second); } while (false); if (!NT_SUCCESS(Status)) { DriverUnload(DriverObject); } return Status; }
Support part of RtlXxxx API.
Support part of KernelBase API.
Support part of Advapi32 API.
Progress
See Project
Acknowledgements
Thanks to JetBrains for providing free licenses such as Resharper C++ for my open-source projects.
Thanks & References
- Thanks: The scheme to export ZwRoutines is provided by @xiaobfly.
- References: systeminformer/phnt
- References: Windows_OS_Internals_Curriculum_Resource_Kit-ACADEMIC
Product | Versions Compatible and additional computed target framework versions. |
---|---|
native | native is compatible. |
-
- YY.NuGet.Import.Helper (>= 1.0.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Musa.Core:
Package | Downloads |
---|---|
Musa.Runtime
Musa.Runtime - 是以 Musa.Core 作为底层支持的微软 MSVC 运行时库。 * 它可以让内核开发者拥有和应用开发者近似的 C++ 开发体验。 Musa.Runtime - Musa.Runtime is a Microsoft MSVC runtime library based on Musa.Core. * It allows kernel developers to have a C++ development experience similar to that of application developers. |
GitHub repositories
This package is not used by any popular GitHub repositories.
fix: symbol conflict with ntdll/ntoskrnl