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
pywintrace — Wrapper em Python ctypes para Event Tracing for Windows (ETW), permitindo controle de sessão, captura de eventos e callbacks personalizados para monitoramento de segurança e análise forense. | Kitploit
Ferramentas/GitHubGitHub/fireeye/pywintrace
Ferramentas DefensivasForensia DigitalInteligência de AmeaçasResposta a IncidentesAnálise de Logs
GitHubfireeye/pywintrace

pywintrace

Wrapper em Python ctypes para Event Tracing for Windows (ETW), permitindo controle de sessão, captura de eventos e callbacks personalizados para monitoramento de segurança e análise forense.

Ver Repositório
30361há 3 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

ETW (Event Tracing for Windows)

O ETW é um recurso de rastreamento que permite a um usuário registrar eventos em um arquivo ou buffer. Uma visão geral do ETW pode ser encontrada aqui. A arquitetura básica inclui um Provider, um Controller e um Consumer. O controller define e controla uma sessão de captura. Isso inclui quais providers estão na sessão, bem como iniciar e parar a sessão. O provider, especificado usando um GUID (Globally Unique Identifier), registra eventos em uma série de buffers. O Consumer recebe mensagens de um buffer ou de um arquivo e as processa em ordem cronológica.

Este módulo é um wrapper ctypes inteiramente baseado em Python em torno das APIs Win32 necessárias para controlar sessões de ETW e processar dados de mensagens. O módulo é muito flexível e pode definir filtros de captura pré ou pós-captura.

Uso

Para usar este módulo, importe etw e crie uma instância da classe ETW passando uma lista de instâncias de ProviderInfo para o(s) provider(s) dos quais você deseja capturar dados. Para processar os dados retornados do ETW, você precisará especificar um 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')

Abaixo está um exemplo de uso do módulo para realizar uma captura usando um callback personalizado.

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()

A subclasse é outra maneira prática de definir classes de captura de 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()

Para mais exemplos, veja examples.

Baixar ferramenta