Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
stealth_call — Header-only Windows x64 libreria di syscall indirette. Zero CRT, zero IAT, VEH anti-BP, bypass AMSI/ETW, memoria W^X, stub dinamici per chiamata. | Kitploit
Strumenti/GitHubGitHub/kitsune-de/stealth_call
Strumenti DifensiviExploitAnalisi MalwareRed TeamingSviluppo PayloadAnti-Bot
GitHubkitsune-de/stealth_call

stealth_call

Header-only Windows x64 libreria di syscall indirette. Zero CRT, zero IAT, VEH anti-BP, bypass AMSI/ETW, memoria W^X, stub dinamici per chiamata.

Vedi Repository
7104 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

stealth_call


Cos'è questo?

Libreria header-only per Windows x64 che ti permette di invocare qualsiasi syscall NT senza toccare gli import di ntdll, senza lasciare stringhe nel binario e senza i soliti campanelli d'allarme che fanno impazzire gli EDR.

Niente CRT. Niente STL. Niente IAT. Il tutto si compila in circa 19KB con zero dipendenze DLL.

Progettata per evitare le insidie comuni delle librerie syscall esistenti — stringhe in chiaro, costanti hash note, syscall dirette da memoria non-ntdll, import IAT che gridano "sto facendo qualcosa di strano", IOC SEC_NO_CHANGE, gonfiore CRT. Niente di tutto questo qui.


Caratteristiche

Motore Syscall

  • Syscall indirette — gli stub saltano nel gadget syscall; ret di ntdll stesso, quindi RIP è sempre dentro ntdll quando l'istruzione syscall viene eseguita
  • Generazione stub per chiamata — ogni singola invocazione costruisce uno stub nuovo con junk casuale, layout casuale, numero syscall XOR-ato. Nulla viene riutilizzato
  • Applicazione W^X — le pagine scratch passano da RW → RX → RW. RWX non viene mai allocato, punto
  • Stub cancellati immediatamente dopo ogni chiamata
  • Syscall estratte dalla sezione mapping \KnownDlls\ntdll.dll (nessun accesso al filesystem, invisibile a ProcMon)
  • 977 syscall risolte su un tipico sistema Win11

Anti-Breakpoint

  • Approccio basato su VEH — se un debugger piazza uno 0xCC sulla tua funzione target, l'handler delle eccezioni ripristina silenziosamente il byte originale, esegue l'istruzione in single-step, poi rimette il breakpoint. Il debugger non saprà mai di essere stato aggirato. Zero finestra temporale
  • Funziona su qualsiasi funzione in qualsiasi DLL, non solo ntdll

Evasione

  • Bypass AMSI — patcha AmsiScanBuffer per restituire S_OK
  • Bypass ETW — patcha EtwEventWrite per restituire SUCCESS
  • Tutte le patch fatte tramite syscall dirette, non VirtualProtect
  • Stringhe crittografate XOR ovunque — nomi DLL, percorsi, tutto. Decriptate sullo stack, cancellate dopo l'uso
  • Algoritmo hash personalizzato (non FNV-1a, non CRC32 — nessuna firma YARA nota)
  • PEB walk per tutta la risoluzione di moduli/funzioni — niente GetModuleHandle, niente GetProcAddress

Qualità del Codice

  • Header-only, metti la cartella stealth/ nel tuo progetto e via
  • Thread-safe tramite pagine scratch per-thread + spinlock
  • Pulizia completa allo spegnimento — pagine scratch liberate, mappe azzerate, VEH rimosso
  • Rilevamento hook per i trampoline EDR comuni (jmp rel32, jmp [rip], mov rax + jmp rax)

Come Funziona

flow

Percorso Syscall

  1. initialize() apre ntdll tramite la sezione \KnownDlls, analizza gli export PE, cattura ogni numero syscall
  2. Scansiona .text di ntdll per un gadget syscall; ret — è da qui che verrà eseguita l'istruzione syscall vera e propria
  3. Quando chiami sc::invoke():
    • Cerca la voce syscall tramite hash
    • Prende la pagina scratch del thread chiamante (o ne alloca una, solo RW)
    • emit_stub() costruisce uno stub polimorfico unico — istruzioni junk casuali prima/dopo, numero syscall offuscato XOR con chiave per-call, jmp indiretto al gadget di ntdll
    • Porta la pagina da RW → RX
    • Chiama tramite lo stub
    • Riporta da RX → RW
    • Azzera i byte dello stub

In nessun momento esiste memoria RWX. In nessun momento un'istruzione syscall viene eseguita fuori da ntdll. In nessun momento i numeri syscall sono memorizzati in chiaro.

Trampoline VEH

Chiami tramp::invoke() con la funzione target. Se non c'è breakpoint — la funzione viene eseguita normalmente con zero overhead. Se un debugger ha piazzato 0xCC:

  1. Viene generata l'eccezione INT3
  2. Il nostro handler VEH controlla se l'indirizzo è nella nostra tabella (ricerca hash, non scansione lineare)
  3. Ripristina il byte originale da una copia pulita letta dal disco
  4. Imposta il Trap Flag
  5. Continua l'esecuzione — l'istruzione reale viene eseguita
  6. Viene generata l'eccezione single-step
  7. L'handler rimette lo 0xCC

La lista breakpoint del debugger mostra ancora il breakpoint come attivo. Il breakpoint semplicemente non scatta mai sulle nostre chiamate.


Build

root@kitploit:~
cmake -B build -A x64
cmake --build build --config Release

Richiede MSVC (VS 2019+) e CMake 3.15+. Output di ~19KB con zero import.


Utilizzo

Syscall

root@kitploit:~
#include "stealth/syscall.hpp"

stealth::sc::initialize();

PVOID base = nullptr;
SIZE_T size = 0x1000;
NTSTATUS status = stealth::sc::invoke<NTSTATUS>(
    HASH("NtAllocateVirtualMemory"),
    NtCurrentProcess(), &base, (ULONG_PTR)0, &size,
    (ULONG)(MEM_COMMIT | MEM_RESERVE), (ULONG)PAGE_READWRITE
);

Anti-Breakpoint

root@kitploit:~
#include "stealth/trampoline.hpp"

// funziona anche se x64dbg ha un BP su MessageBoxA
int ret = stealth::tramp::invoke<int>(
    HASH_CI("user32.dll"), HASH("MessageBoxA"),
    (HWND)nullptr, (LPCSTR)"hello", (LPCSTR)"title", (UINT)MB_OK
);

AMSI / ETW

root@kitploit:~
#include "stealth/bypass.hpp"

stealth::bypass::patch_etw();
stealth::bypass::patch_amsi();

Pulizia

root@kitploit:~
stealth::tramp::shutdown();
stealth::sc::shutdown();

Struttura del Progetto

root@kitploit:~
stealth/
  common.hpp      — operazioni memoria, spinlock, static_map, PRNG, output debug
  hash.hpp        — hash personalizzato a tempo di compilazione
  xorstr.hpp      — crittografia stringhe XOR a tempo di compilazione
  peb.hpp         — PEB walk, parser export PE, rilevamento hook
  syscall.hpp     — motore syscall indirette, generatore stub, W^X, anti-dump
  trampoline.hpp  — anti-breakpoint basato su VEH
  bypass.hpp      — patching AMSI + ETW

Licenza

MIT — fai quello che vuoi con essa.

Scarica lo strumento