Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CsWhispers — Source Generator zum Hinzufügen von D/Invoke- und indirekten Syscall-Methoden zu einem C#-Projekt. | Kitploit
Tools/GitHubGitHub/rasta-mouse/cswhispers
IDS/IPS-UmgehungPost-ExploitationPenetrationstestsDienstprogramme & FrameworksRed TeamingPayload-Entwicklung
GitHubrasta-mouse/cswhispers

CsWhispers

Source Generator zum Hinzufügen von D/Invoke- und indirekten Syscall-Methoden zu einem C#-Projekt.

Repository anzeigen
193293vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CsWhispers

Source-Generator zum Hinzufügen von D/Invoke- und indirekten Syscall-Methoden zu einem C#-Projekt.

Schnellstart

Fügen Sie Ihrem Projekt das neueste NuGet-Paket hinzu und lassen Sie unsicheren Code zu.

root@kitploit:~
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net481</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <LangVersion>12</LangVersion>
    </PropertyGroup>

    <!-- CsWhispers package -->
    <ItemGroup>
      <PackageReference Include="CsWhispers" Version="0.0.3" />
    </ItemGroup>

    <!-- Allow unsafe code -->
    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    </PropertyGroup>

</Project>

Erstellen Sie in Ihrem Projekt eine Datei namens CsWhispers.txt und setzen Sie die Buildaktion-Eigenschaft auf AdditionalFiles.

root@kitploit:~
<ItemGroup>
  <None Remove="CsWhispers.txt" />
  <AdditionalFiles Include="CsWhispers.txt" />
</ItemGroup>

Fügen Sie jede NT-API und alle unterstützenden Strukturen/Aufzählungen hinzu, die Sie in Ihr Projekt aufnehmen möchten. Jede muss in einer eigenen Zeile stehen, zum Beispiel:

root@kitploit:~
NtOpenProcess

HANDLE
NTSTATUS
CLIENT_ID
UNICODE_STRING
OBJECT_ATTRIBUTES

PWSTR
PCWSTR

Die vollständige Liste der unterstützten APIs finden Sie im Projekt-Wiki.

Globale Namespaces werden automatisch hinzugefügt, um sauberen Code zu ermöglichen.

root@kitploit:~
public static unsafe void Main()
{
    // use self as example
    using var self = Process.GetCurrentProcess();
        
    HANDLE hProcess;
    OBJECT_ATTRIBUTES oa;
    CLIENT_ID cid = new()
    {
        UniqueProcess = new HANDLE((IntPtr)self.Id)
    };

    var status = NtOpenProcess(
        &hProcess,
        PROCESS_ALL_ACCESS,
        &oa,
        &cid);

    Console.WriteLine("Status: {0}", status.SeverityCode);
    Console.WriteLine("HANDLE: 0x{0:X}", hProcess.Value.ToInt64());
}

D/Invoke

CsWhispers enthält eine minimierte Version von D/Invoke, sodass Sie auch Generic.GetLibraryAddress, Generic.DynamicFunctionInvoke usw. aufrufen können.

Erweitern

Der gesamte generierte Code wird in einer partiellen Klasse CsWhispers.Syscalls gesammelt, die Sie erweitern können, um Ihre eigenen APIs hinzuzufügen. Erstellen Sie beispielsweise MyAPIs.cs und fügen Sie Folgendes hinzu:

root@kitploit:~
namespace CsWhispers;

public static partial class Syscalls
{
    public static NTSTATUS NtCreateThreadEx()
    {
        // whatever
        return new NTSTATUS(0);
    }
}

Dies kann dann in Ihrem Hauptcode aufgerufen werden, ohne zusätzliche using-Anweisungen hinzufügen zu müssen.

root@kitploit:~
namespace ConsoleApp1;

internal static class Program
{
    public static void Main()
    {
        var status = NtCreateThreadEx();
    }
}

TODO

  • 32-Bit-Unterstützung hinzufügen.
  • API-Hashes bei jedem Build randomisieren.
  • Zusätzliche Konfigurationsoptionen hinzufügen, um zwischen direkten und indirekten Syscalls zu wählen.
  • Strukturen/Aufzählungen für APIs implizit hinzufügen, ohne sie in CsWhispers.txt deklarieren zu müssen.

Danksagungen

Dieses Projekt wurde von den früheren Versionen von SysWhipsers und insbesondere SharpWhispers inspiriert. Daher: Hut ab an @Jackson_T, @KlezVirus, @d_glenx und alle anderen, die Code und/oder Ideen beigetragen haben.

Tool herunterladen