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

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

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

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

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

Категории

Все категории
Loading categories
NtTrace — Аналог strace для Windows 'native' API | Kitploit
Инструменты/GitHubGitHub/rogerorr/nttrace
Динамический анализ кода (DAST)Обратная инженерияТестирование безопасности APIОтладчикиАнализ вредоносных программ
GitHubrogerorr/nttrace

NtTrace

Аналог strace для Windows 'native' API

Репозиторий
38849916 ч 27 мин назадПроверено Kitploit
Сайт

Популярное

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

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

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

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

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

Readme-файл NtTrace

См. также http://rogerorr.github.io/NtTrace/

Содержание

  • Readme.md - этот файл
  • NtTrace.cfg - конфигурационный файл по умолчанию для NtTrace
  • NtTrace.ico - файл иконки
  • NtTrace.mak - make-файл для командной строки Microsoft Visual Studio
  • NtTrace.rc - файл ресурсов
  • src - исходные файлы
  • include - включаемые файлы
  • version.rc - ресурс версии
  • Gdi32Trace.cfg - конфигурационный файл для вызовов GDI
  • User32Trace.cfg - конфигурационный файл для вызовов USER32

Инструкции по сборке

Вам потребуется 64-битная или 32-битная версия NtTrace, в зависимости от целевого приложения.

  • Перейдите в корневой каталог
  • Запустите scripts\build-vs-x64.bat или scripts\build-vs-x86.bat для сборки 64-битной или 32-битной версии соответственно.

или

  • Запустите "x64 Native Tools Command Prompt for VS2022" (64-битная) или "Developer Command Prompt for VS2022" (32-битная)
  • Перейдите в корневой каталог
  • Выполните nmake /f NtTrace.mak

или

$Id: Readme.md 2542 2025-01-21 23:15:34Z roger $
  • Откройте командную строку Windows
  • Перейдите в корневой каталог
  • Установите окружение для целевой версии VC
  • Например, "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
  • или "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
  • Выполните nmake /f NtTrace.mak

Запуск NtTrace

NtTrace предназначен для запуска из командной строки.

Он может использоваться для запуска программы с аргументами (если необходимо). Например:
NtTrace -filter File cmd /c echo hello

или для присоединения к существующему процессу по PID или, с опцией -a, по имени. Например: NtTrace 1234 или NtTrace -a notepad

Запустите NtTrace -h для получения полного списка опций.

Вызовы GDI и User

По умолчанию NtTrace работает с Windows Native API, предоставляемым через NtDll.dll

Также предоставляются файлы конфигурации для многих точек входа, поддерживающих графический интерфейс Windows:

Gdi32Trace.cfg для Graphics Device Interface (интерфейс графических устройств)

User32Trace.cfg для User Interface (интерфейс пользователя)

Вы можете выбрать один из них вместо стандартного NtTrace.cfg, используя аргумент командной строки -config.

Примечание о DbgHelp.dll

В Windows в каталоге system32 поставляется DbgHelp.dll. Однако более новые версии этой DLL иногда доступны от Microsoft в их SDK.

Версия DLL, установленная с ОС, как правило, имеет приоритет над более новой загруженной версией.

Если вам потребуется более новая версия, чем установленная в системном каталоге, вы можете просто скопировать более новую DbgHelp.dll в тот же каталог, где находится NtTrace.exe. (Также потребуется скопировать SymSrv.dll и SrcSrv.dll)

Как это работает

Технология

NtTrace использует отладочный интерфейс Windows для установки точек останова в NtDll вокруг нативных вызовов Windows в ядро. Каждый раз, когда срабатывает точка останова, NtTrace считывает аргументы, переданные вызываемой функции, и возвращаемые значения.

Он работает на пользовательском уровне и затрагивает только конкретный процесс (и его дочерние процессы). Не предпринимается попыток проникнуть в ядро. Это было осознанным решением, так как инструмент можно использовать без прав администратора или разрешения на установку драйверов устройств. Однако это также означает, что инструмент не перехватит:

  • вызовы ядра, сделанные драйверами устройств от имени приложения
  • прямое использование механизмов int 2e, syscall или sysenter

По умолчанию NtTrace также трассирует дочерние процессы начального процесса. Опция -pid добавляет идентификатор процесса в каждую строку вывода, чтобы определить, какой процесс выполнил вызов. Опция -only подавляет трассировку дочерних процессов.

Инструмент также работает с многопоточными приложениями (опция -tid поможет определить, какой поток выполняет вызов). Однако учтите, что, поскольку отладочный интерфейс Windows основан на событиях, при одновременных вызовах из нескольких потоков трассировка будет сериализована.

По умолчанию трассируются вызовы в NtDll; файлы конфигурации для Gdi32 и User32 выбирают другую целевую DLL. NtTrace в настоящее время не поддерживает одновременную трассировку разных типов системных вызовов.

Конфигурация

Конфигурация нативных вызовов хранится в NtTrace.cfg, и этот файл анализируется при запуске программы. Учтите, что разные версии Windows поддерживают разные наборы вызовов.

Некоторые из нативных функций официально документированы Microsoft, но многие не документированы. (Почти) полный список был получен путём детективной работы над функциями и из веб-сайтов, таких как ReactOS.

Каждая функция отнесена к категории; фильтрация может выполняться по имени функции (частичное совпадение) и по категории функции.

По умолчанию NtTrace трассирует при возврате из системного вызова, но опция -pre позволяет трассировать и до вызова. Это может быть полезно, например, если одна и та же структура используется для буфера запроса и ответа.


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