Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
NtTrace — 一个类似于strace的程序,用于Windows的“原生”API。 | Kitploit
工具/GitHubGitHub/rogerorr/nttrace
动态代码分析 (DAST)逆向工程API安全测试调试器恶意软件分析
GitHubrogerorr/nttrace

NtTrace

一个类似于strace的程序,用于Windows的“原生”API。

查看仓库
38849916小时27分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
网站
分享

NtTrace 自述文件

另见 http://rogerorr.github.io/NtTrace/

目录

  • Readme.md - 本文件
  • NtTrace.cfg - NtTrace 的默认配置文件
  • NtTrace.ico - 图标文件
  • NtTrace.mak - 用于 Microsoft Visual Studio 命令提示符的生成文件
  • NtTrace.rc - 资源文件
  • src - 源文件
  • include - 包含文件
  • version.rc - 版本资源
  • Gdi32Trace.cfg - GDI 原生调用的配置文件
  • User32Trace.cfg - USER32 原生调用的配置文件

生成说明

您需要 64 位或 32 位版本的 NtTrace(或两者),具体取决于您的目标应用程序

  • cd 到此顶层目录
  • 运行 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 位)
  • cd 到此顶层目录
  • 运行 nmake /f NtTrace.mak

或者

  • 启动 Windows 命令提示符
  • cd 到此顶层目录
  • 设置目标 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
$Id: Readme.md 2542 2025-01-21 23:15:34Z roger $

运行 NtTrace

NtTrace 设计为从命令行运行。

它可以用于执行一个程序,并在需要时传递参数。 例如:
NtTrace -filter File cmd /c echo hello

或通过按 PID 附加到现有进程,或使用 -a 选项按名称附加。 例如: NtTrace 1234 或 NtTrace -a notepad

运行 NtTrace -h 查看完整的选项列表。

Gdi 和 User 调用

默认情况下,NtTrace 针对通过 NtDll.dll 公开的 Windows 原生 API。

还提供了许多支持 Windows 图形界面的入口点的配置文件:

Gdi32Trace.cfg 用于图形设备接口

User32Trace.cfg 用于用户界面

您可以通过使用 -config 命令行参数来选择其中之一,而不是默认的 NtTrace.cfg。

关于 DbgHelp.dll 的说明

Windows 在 system32 目录中附带了 DbgHelp.dll。 然而,Microsoft 有时会在其 SDK 中提供此 DLL 的更新版本。

随操作系统安装的 DLL 版本往往优先于可能下载的新版本。

如果您发现需要比系统目录中安装的版本更新的版本,您只需将较新的 DbgHelp.dll 复制到 NtTrace.exe 所在的同一目录中。 (您还需要复制 SymSrv.dll 和 SrcSrv.dll)

工作原理

技术

NtTrace 通过使用 Windows 调试接口在 NtDll 中围绕进入内核的原生 Windows 调用设置断点来工作。 每次命中断点时,NtTrace 会读取传递给关联调用的参数/返回值。

它在用户级别工作,仅影响特定进程(及其子进程)。不尝试进入内核。 这是一个有意的设计决策,因为这意味着该工具可以在无需管理员权限或安装设备驱动程序许可的情况下使用。 然而,这也意味着该工具不会捕获:

  • 设备驱动程序代表应用程序进行的内核调用
  • 任何直接使用 int 2e、syscall 或 sysenter 机制

NtTrace 默认还会跟踪初始进程的子进程,-pid 选项会向每行输出添加进程 ID,以帮助识别哪个进程进行了哪些调用。-only 选项会抑制对子进程的跟踪。

它还处理多线程应用程序(-tid 选项有助于识别哪个线程在进行每个调用)。 但是请注意,由于 Windows 调试接口是基于事件的,如果多个线程同时进行调用,跟踪将被序列化。

默认情况下,跟踪 NtDll 中的调用;Gdi32 和 User32 的配置文件会选择不同的目标 DLL。 NtTrace 目前不支持同时跟踪不同类型的系统调用。

配置

原生调用的配置保存在 NtTrace.cfg 中,该文件在程序启动时被解析。 请注意,不同版本的 Windows 支持不同的调用集。

部分原生函数由 Microsoft 正式记录,但许多未记录。 (几乎)完整的列表是通过对函数的侦查工作以及从 ReactOS 等网站的组合得出的。

每个函数被分配到一个类别,可以通过函数名(部分匹配)和函数类别进行过滤。

默认情况下,NtTrace 在系统调用返回时进行跟踪,但可以使用 -pre 选项在调用之前也进行跟踪。 例如,当同一个结构体用于请求和响应缓冲区时,这可能会很有用。


下载工具