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
instrumentation_callbacks — Une preuve de concept démontrant les callbacks d'instrumentation sur Windows 10 21h1 avec une variable TLS pour garantir que tous les appels système sont interceptés. | Kitploit
Outils/GitHubGitHub/deputation/instrumentation_callbacks
Analyse Dynamique (Sandboxing)Rétro-ingénierieDébogueursAnalyse de Binaires
GitHubdeputation/instrumentation_callbacks

instrumentation_callbacks

Une preuve de concept démontrant les callbacks d'instrumentation sur Windows 10 21h1 avec une variable TLS pour garantir que tous les appels système sont interceptés.

Voir le dépôt

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 →
160282il y a 4 ansVérifié par Kitploit
Partager

instrumentation_callbacks

Les callbacks d'instrumentation sont une partie plutôt amusante et non documentée de Windows. Tout le code de ce dépôt est publié sous licence MIT. Ce dépôt utilise l'espacement de style Google pour le C++.

Les PRs sont les bienvenues si vous trouvez des problèmes, des bugs, ou si vous pensez qu'une fonctionnalité spécifique devrait être ajoutée.

Que sont-ils ?

Les callbacks d'instrumentation vous permettent de gérer tous les syscalls (et les exceptions !) émis par un processus sur lequel vous avez placé un callback.

Le problème des callbacks.

Bien sûr, chaque syscall sera intercepté, donc pendant l'exécution du callback, vous ne devriez normalement pas émettre d'autres syscalls à l'intérieur, à moins de vouloir récurser indéfiniment.

Cela limiterait grandement ce que vous pouvez faire à l'intérieur du callback, ou du moins poserait un certain défi de conception, mais dans le paragraphe suivant, vous verrez une solution assez élégante au problème.

Elle n'est pas parfaite, car un attaquant éventuel pourrait délibérément définir la variable pour désactiver le callback, mais elle est presque parfaite à des fins d'analyse.

La ou les solutions possibles.

Une solution à ce problème pourrait consister à définir un indicateur vrai/faux qui active et désactive les capacités d'analyse du callback, laissant essentiellement passer chaque syscall si un autre syscall est déjà en cours de traitement.

Cela laissera toutefois passer la plupart des syscalls.

Ce dépôt, en revanche, résout le problème de l'impossibilité d'émettre des syscalls à l'intérieur d'un callback en définissant une variable dépendante de TLS, garantissant ainsi que nous gérons les syscalls de tous les threads tout en pouvant les appeler nous-mêmes. Les seuls syscalls que nous manquerons sont ceux que nous émettons depuis l'intérieur du callback, ce qui (dans la plupart des situations, comme celles où nous analysons un logiciel) ne nous importe sans doute pas.

tous

Utilisations hypothétiques.

Les callbacks d'instrumentation ont de nombreuses utilisations possibles, l'une d'elles pourrait être à des fins anti-triche : vous pourriez analyser les syscalls provenant du processus et déterminer s'ils proviennent d'un espace d'adressage illégitime ou sont utilisés à des fins malveillantes, sans avoir à remplir les DLL système de bytepatches et de hooks.

Vous pourriez également les utiliser pour gagner l'exécution de code à l'intérieur d'un processus : si vous pouvez allouer et écrire en mémoire puis définir les informations du processus, vous pourrez détourner un thread exécutant un syscall en lui faisant appeler un de vos callbacks.

Bien sûr, je n'approuve pas l'utilisation de tout code de ce dépôt ou de mes autres dépôts pour développer des logiciels de triche ou malveillants.

Ce que vous en faites est de votre propre responsabilité.

Télécharger l’outil