Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
stealth_call — Bibliothèque d'appels système indirects Windows x64 uniquement en-tête. Zéro CRT, zéro IAT, VEH anti-BP, contournement AMSI/ETW, mémoire W^X, stubs dynamiques par appel. | Kitploit
Outils/GitHubGitHub/share-devn/stealth_call
Escalade de PrivilègesCriminalistique MémoireExploitationÉvasion IDS/IPSShellcodePost-ExploitationRed TeamingDéveloppement de Charges Utiles
GitHubshare-devn/stealth_call

stealth_call

Bibliothèque d'appels système indirects Windows x64 uniquement en-tête. Zéro CRT, zéro IAT, VEH anti-BP, contournement AMSI/ETW, mémoire W^X, stubs dynamiques par appel.

Voir le dépôt
7il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

stealth_call


Qu'est-ce que c'est ?

Bibliothèque header-only pour Windows x64 qui vous permet d'invoquer n'importe quel appel système NT sans toucher aux imports ntdll, sans laisser de chaînes dans votre binaire, et sans les drapeaux rouges habituels qui font perdre la tête aux EDR.

Pas de CRT. Pas de STL. Pas d'IAT. Le tout compile en environ 19KB avec littéralement zéro dépendance DLL.

Conçue pour éviter les pièges courants des bibliothèques d'appels système existantes — chaînes en clair, constantes de hachage connues, appel système direct depuis une mémoire non-ntdll, imports IAT qui crient « Je fais quelque chose d'étrange », IOC SEC_NO_CHANGE, bloat CRT. Rien de tout ça ici.


Fonctionnalités

Moteur d'appel système

  • Appels système indirects — les stubs sautent dans le propre gadget syscall; ret de ntdll, donc RIP est toujours à l'intérieur de ntdll lorsque l'instruction syscall est déclenchée
  • Génération de stub par appel — chaque invocation unique construit un stub frais avec du code aléatoire, une disposition aléatoire, un numéro de syscall XORé. Rien n'est réutilisé
  • Application de W^X — les pages scratch passent RW → RX → RW. RWX n'est jamais alloué, point barre
  • Stubs effacés immédiatement après chaque appel
  • Appels système extraits du mappage de section de \KnownDlls\ntdll.dll (pas d'accès au système de fichiers, invisible pour ProcMon)
  • 977 appels système résolus sur un système Win11 typique

Anti-Breakpoint

  • Approche basée sur VEH — si un débogueur place un 0xCC sur votre fonction cible, le gestionnaire d'exception restaure silencieusement l'octet d'origine, exécute l'instruction en pas à pas simple, puis remet le point d'arrêt. Le débogueur n'en saura jamais rien. Fenêtre de temps nulle
  • Fonctionne sur n'importe quelle fonction dans n'importe quelle DLL, pas seulement ntdll

Évasion

  • Contournement AMSI — patch AmsiScanBuffer pour retourner S_OK
  • Contournement ETW — patch EtwEventWrite pour retourner SUCCESS
  • Tout patching effectué via des appels système directs, pas VirtualProtect
  • Chaînes chiffrées par XOR partout — noms de DLL, chemins, tout. Déchiffrées sur la pile, effacées après utilisation
  • Algorithme de hachage personnalisé (pas FNV-1a, pas CRC32 — aucune signature YARA connue)
  • Parcours PEB pour toute résolution de module/fonction — pas de GetModuleHandle, pas de GetProcAddress

Qualité du code

  • Header-only, placez le dossier stealth/ dans votre projet et c'est parti
  • Thread-safe via pages scratch par thread + spinlocks
  • Nettoyage complet à l'arrêt — pages scratch libérées, mappings remis à zéro, VEH supprimé
  • Détection de hooks pour les trampolines EDR courants (jmp rel32, jmp [rip], mov rax + jmp rax)

Comment ça marche

flow

Chemin d'appel système

  1. initialize() ouvre ntdll via la section \KnownDlls, analyse les exports PE, récupère chaque numéro d'appel système
  2. Scanne le .text de ntdll pour un gadget syscall; ret — c'est là que l'instruction syscall réelle s'exécutera
  3. Lorsque vous appelez sc::invoke() :
    • Recherche l'entrée syscall par hachage
    • Récupère la page scratch du thread appelant (ou en alloue une, RW uniquement)
    • emit_stub() construit un stub polymorphe unique — instructions aléatoires avant/après, numéro syscall obfusqué par XOR avec une clé par appel, saut indirect vers le gadget ntdll
    • Passe la page de RW → RX
    • Appelle via le stub
    • Passe de RX → RW
    • Remet les octets du stub à zéro

À aucun moment la mémoire RWX n'existe. À aucun moment une instruction syscall ne s'exécute en dehors de ntdll. À aucun moment les numéros d'appel système ne sont stockés en clair.

Trampoline VEH

Vous appelez tramp::invoke() avec la fonction cible. S'il n'y a pas de point d'arrêt — la fonction s'exécute normalement avec zéro surcharge. Si un débogueur a placé 0xCC :

  1. L'exception INT3 se déclenche
  2. Notre gestionnaire VEH vérifie si l'adresse est dans notre table (recherche par hachage, pas de parcours linéaire)
  3. Restaure l'octet d'origine depuis une copie propre lue sur le disque
  4. Définit le Trap Flag
  5. Continue l'exécution — la véritable instruction s'exécute
  6. L'exception de pas à pas se déclenche
  7. Le gestionnaire remet 0xCC

La liste des points d'arrêt du débogueur le montre toujours comme actif. Le point d'arrêt ne se déclenche simplement jamais sur nos appels.


Compilation

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

Nécessite MSVC (VS 2019+) et CMake 3.15+. La sortie fait environ 19KB avec zéro import.


Utilisation

Appels système

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"

// fonctionne même si x64dbg a un BP sur 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();

Nettoyage

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

Structure du projet

root@kitploit:~
stealth/
  common.hpp      — opérations mémoire, spinlock, static_map, PRNG, sortie de débogage
  hash.hpp        — hachage personnalisé au moment de la compilation
  xorstr.hpp      — chiffrement XOR de chaînes au moment de la compilation
  peb.hpp         — parcours PEB, analyseur d'exports PE, détection de hooks
  syscall.hpp     — moteur d'appel système indirect, générateur de stub, W^X, anti-dump
  trampoline.hpp  — anti-breakpoint basé sur VEH
  bypass.hpp      — patching AMSI + ETW

Licence

MIT — faites-en ce que vous voulez.

Télécharger l’outil