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
pywintrace — Wrapper Python ctypes pour Event Tracing for Windows (ETW) permettant le contrôle de sessions, la capture d'événements et des rappels personnalisés pour la surveillance de sécurité et l'analyse forensique. | Kitploit
Outils/GitHubGitHub/fireeye/pywintrace
Outils DéfensifsCriminalistique NumériqueRenseignement sur les MenacesRéponse aux IncidentsAnalyse de Journaux
GitHubfireeye/pywintrace

pywintrace

Wrapper Python ctypes pour Event Tracing for Windows (ETW) permettant le contrôle de sessions, la capture d'événements et des rappels personnalisés pour la surveillance de sécurité et l'analyse forensique.

Voir le dépôt
30361il y a 3 ansVérifié par Kitploit

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

ETW (Event Tracing for Windows)

ETW est un mécanisme de traçage qui permet à un utilisateur de journaliser des événements dans un fichier ou un tampon. Un aperçu d'ETW est disponible ici. L'architecture de base comprend un fournisseur (Provider), un contrôleur (Controller) et un consommateur (Consumer). Le contrôleur définit et contrôle une session de capture. Cela inclut les fournisseurs présents dans la session ainsi que le démarrage et l'arrêt de celle-ci. Le fournisseur, spécifié à l'aide d'un GUID (Globally Unique Identifier), journalise les événements dans une série de tampons. Le consommateur reçoit les messages soit depuis un tampon, soit depuis un fichier, et les traite dans l'ordre chronologique.

Ce module est un wrapper ctypes entièrement basé sur Python autour des API Win32 nécessaires pour contrôler les sessions ETW et traiter les données des messages. Le module est très flexible et peut définir des filtres de capture avant ou après la capture.

Utilisation

Pour utiliser ce module, importez etw et créez une instance de la classe ETW en passant une liste d'instances ProviderInfo pour le(s) fournisseur(s) dont vous souhaitez capturer les données. Pour traiter les données renvoyées par ETW, vous devrez spécifier un rappel (callback).

root@kitploit:~

import etw


def some_func():
    # define capture provider info
    providers = [etw.ProviderInfo('Some Provider', etw.GUID("{11111111-1111-1111-1111-111111111111}"))]

    # create instance of ETW and start capture
    with etw.ETW(providers=providers, event_callback=etw.on_event_callback):
        # run capture
        etw.run('etw')

Voici un exemple d'utilisation du module pour effectuer une capture à l'aide d'un rappel personnalisé.

root@kitploit:~

import time
import etw


def some_func():
    # define capture provider info
    providers = [etw.ProviderInfo('Some Provider', etw.GUID("{11111111-1111-1111-1111-111111111111}"))]
    # create instance of ETW class
    job = etw.ETW(providers=providers, event_callback=lambda x: print(x))
    # start capture
    job.start()

    # wait some time
    time.sleep(5)

    # stop capture
    job.stop()

Le sous-classement est une autre méthode pratique pour définir des classes de capture ETW.

root@kitploit:~

import time
import etw


class MyETW(etw.ETW):

    def __init__(self, event_callback):
        # define capture provider info
        providers = [etw.ProviderInfo('Some Provider', etw.GUID("{11111111-1111-1111-1111-111111111111}"))]
        super().__init__(providers=providers, event_callback=event_callback)

    def start(self):
        # do pre-capture setup
        self.do_capture_setup()
        super().start()

    def stop(self):
        super().stop()
        # do post-capture teardown
        self.do_capture_teardown()

    def do_capture_setup(self):
        # do whatever setup for capture here
        pass

    def do_capture_teardown(self):
        # do whatever for capture teardown here
        pass


def my_capture():
    # instantiate class
    capture = MyETW(lambda x: print(x))
    # start capture
    capture.start()
    # wait some time to capture data
    time.sleep(5)
    # stop capture
    capture.stop()

Pour plus d'exemples, consultez examples.

Télécharger l’outil