Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CsWhispers — Gerador de código-fonte para adicionar métodos D/Invoke e syscall indireto a um projeto C#. | Kitploit
Ferramentas/GitHubGitHub/rasta-mouse/cswhispers
Evasão de IDS/IPSPós-ExploraçãoTestes de PenetraçãoUtilitários e FrameworksRed TeamingDesenvolvimento de Payloads
GitHubrasta-mouse/cswhispers

CsWhispers

Gerador de código-fonte para adicionar métodos D/Invoke e syscall indireto a um projeto C#.

Ver Repositório
193294há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CsWhispers

Gerador de código-fonte para adicionar métodos D/Invoke e syscalls indiretos a um projeto C#.

Início Rápido

Adicione o pacote NuGet mais recente ao seu projeto e permita código unsafe.

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>

Crie um arquivo no seu projeto chamado CsWhispers.txt e defina as propriedades da ação de build para AdditionalFiles.

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

Adicione cada API NT e quaisquer structs/enums de suporte que deseja incluir no seu projeto. Cada uma deve estar em sua própria linha, por exemplo:

root@kitploit:~
NtOpenProcess

HANDLE
NTSTATUS
CLIENT_ID
UNICODE_STRING
OBJECT_ATTRIBUTES

PWSTR
PCWSTR

Consulte o Wiki do projeto para uma lista completa de APIs suportadas.

Namespaces globais são adicionados automaticamente para permitir código limpo.

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 inclui uma versão minimizada de D/Invoke, portanto você também pode chamar Generic.GetLibraryAddress, Generic.DynamicFunctionInvoke, etc.

Estendendo

Todo o código gerado vai para uma classe parcial CsWhispers.Syscalls, que você pode estender para adicionar suas próprias APIs. Por exemplo, crie MyAPIs.cs e adicione:

root@kitploit:~
namespace CsWhispers;

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

Isso pode então ser chamado no seu código principal sem precisar adicionar quaisquer declarações using adicionais.

root@kitploit:~
namespace ConsoleApp1;

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

A fazer

  • Adicionar suporte a 32 bits.
  • Randomizar hashes de API em cada build.
  • Adicionar opções de configuração adicionais para escolher entre syscalls diretos e indiretos.
  • Adicionar implicitamente structs/enums para APIs sem precisar declará-los em CsWhispers.txt.

Agradecimentos

Este projeto foi inspirado nas versões anteriores de SysWhipsers e SharpWhispers em particular. Então, tiremos o chapéu para @Jackson_T, @KlezVirus, @d_glenx e todos os outros que contribuíram com código e/ou ideias.

Baixar ferramenta