Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pywintrace — Python ctypes-обёртка для Event Tracing for Windows (ETW), обеспечивающая управление сеансами, захват событий и пользовательские обратные вызовы для мониторинга безопасности и криминалистического анализа. | Kitploit
Инструменты/GitHubGitHub/fireeye/pywintrace
Оборонительные ИнструментыЦифровая криминалистикаРазведка угрозРеагирование на ИнцидентыАнализ Журналов
GitHubfireeye/pywintrace

pywintrace

Python ctypes-обёртка для Event Tracing for Windows (ETW), обеспечивающая управление сеансами, захват событий и пользовательские обратные вызовы для мониторинга безопасности и криминалистического анализа.

Репозиторий
30561623 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ETW (Event Tracing for Windows)

ETW — это механизм трассировки, позволяющий пользователю записывать события в файл или буфер. Обзор ETW можно найти здесь. Базовая архитектура включает поставщика (Provider), контроллер (Controller) и потребителя (Consumer). Контроллер определяет и управляет сеансом захвата. Это включает в себя то, какие поставщики входят в сеанс, а также запуск и остановку сеанса. Поставщик, задаваемый с помощью GUID (глобально уникального идентификатора), записывает события в серию буферов. Потребитель получает сообщения либо из буфера, либо из файла и обрабатывает их в хронологическом порядке.

Этот модуль представляет собой полностью Python-обёртку на основе ctypes вокруг Win32 API, необходимых для управления сеансами ETW и обработки данных сообщений. Модуль очень гибкий и позволяет задавать фильтры до или после захвата.

Использование

Чтобы использовать этот модуль, импортируйте etw и создайте экземпляр класса ETW, передав список экземпляров ProviderInfo для поставщика(ов), данные которых вы хотите захватывать. Для обработки данных, возвращаемых из ETW, вам потребуется указать функцию обратного вызова.


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

Ниже приведён пример использования модуля для выполнения захвата с помощью пользовательской функции обратного вызова.


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

Наследование классов — ещё один удобный способ определения классов захвата ETW.


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

Дополнительные примеры см. в разделе examples.

Скачать инструмент