Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
NtTrace — Windows 'native' API를 위한 strace와 유사한 프로그램 | Kitploit
도구/GitHubGitHub/rogerorr/nttrace
Dynamic Code Analysis (DAST)Reverse EngineeringAPI Security TestingDebuggersMalware Analysis
GitHubrogerorr/nttrace

NtTrace

Windows 'native' API를 위한 strace와 유사한 프로그램

저장소 보기
388491개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

NtTrace readme 파일

참고: http://rogerorr.github.io/NtTrace/

목차

  • Readme.md - 이 파일
  • NtTrace.cfg - NtTrace의 기본 구성 파일
  • NtTrace.ico - 아이콘 파일
  • NtTrace.mak - Microsoft Visual Studio 명령 프롬프트용 make 파일
  • NtTrace.rc - 리소스 파일
  • src - 소스 파일
  • include - include 파일
  • version.rc - 버전 리소스
  • Gdi32Trace.cfg - GDI 네이티브 호출을 위한 구성 파일
  • User32Trace.cfg - USER32 네이티브 호출을 위한 구성 파일

빌드 지침

대상 애플리케이션에 맞는 64비트 또는 32비트 버전의 NtTrace 중 하나 혹은 둘 다 필요합니다.

  • 이 최상위 디렉토리로 이동
  • 각각 64비트 또는 32비트 버전을 빌드하려면 scripts\build-vs-x64.bat 또는 scripts\build-vs-x86.bat를 실행하세요.

또는

  • "x64 Native Tools Command Prompt for VS2022"(64비트) 또는 "Developer Command Prompt for VS2022"(32비트)를 시작합니다.
  • 이 최상위 디렉토리로 이동
  • nmake /f NtTrace.mak 실행

또는

  • 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는 NtDll.dll을 통해 노출되는 Windows 네이티브 API를 대상으로 합니다.

또한 Windows 그래픽 인터페이스를 지원하는 많은 진입점에 대한 구성 파일이 제공됩니다:

Gdi32Trace.cfg - 그래픽 장치 인터페이스(GDI)용

User32Trace.cfg - 사용자 인터페이스용

-config 명령줄 인수를 사용하여 기본 NtTrace.cfg 대신 이 중 하나를 선택할 수 있습니다.

DbgHelp.dll 참고

Windows는 system32 디렉토리에 DbgHelp.dll을 포함하여 제공합니다. 하지만 이 DLL의 최신 버전은 Microsoft SDK에서 제공되기도 합니다.

OS와 함께 설치된 DLL 버전은 다운로드 가능한 최신 버전보다 우선 적용되는 경향이 있습니다.

시스템 디렉토리에 설치된 버전보다 최신 버전이 필요한 경우, 최신 DbgHelp.dll을 NtTrace.exe가 있는 동일한 디렉토리에 복사하기만 하면 됩니다. (SymSrv.dll 및 SrcSrv.dll도 복사해야 합니다.)

작동 방식

기술

NtTrace는 Windows 디버그 인터페이스를 사용하여 커널로의 네이티브 Windows 호출 주변의 NtDll에 중단점을 설정하는 방식으로 작동합니다.

중단점이 적중될 때마다 NtTrace는 관련 호출에 전달된 인수/반환된 값을 읽습니다.

사용자 수준에서 작동하며 특정 프로세스(및 그 자식)에만 영향을 미칩니다. 커널로 진입하려는 시도는 없습니다. 이는 의도적인 설계 결정으로, 관리자 권한이나 장치 드라이버 설치 권한 없이도 도구를 사용할 수 있음을 의미합니다. 하지만 이는 또한 도구가 다음을 포착하지 못함을 의미합니다:

  • 애플리케이션을 대신하여 장치 드라이버가 수행하는 커널 호출
  • int 2e, syscall 또는 sysenter 메커니즘의 직접 사용

또한 NtTrace는 기본적으로 시작된 초기 프로세스의 자식 프로세스까지 추적하며, -pid 옵션은 각 출력 줄에 프로세스 ID를 추가하여 어떤 프로세스가 어떤 호출을 했는지 식별하는 데 도움을 줍니다. -only 옵션은 자식 프로세스 추적을 억제합니다.

또한 멀티스레드 애플리케이션을 처리합니다( -tid 옵션은 각 호출을 수행하는 스레드를 식별하는 데 도움을 줍니다). 그러나 Windows 디버그 인터페이스는 이벤트 기반이므로 여러 스레드가 동시에 호출을 수행하면 추적이 직렬화된다는 점에 유의하세요.

기본적으로 NtDll의 호출이 추적됩니다. Gdi32 및 User32용 구성 파일은 다른 대상 DLL을 선택합니다. NtTrace는 현재 여러 유형의 시스템 호출을 동시에 추적하는 것을 지원하지 않습니다.

구성

네이티브 호출에 대한 구성은 NtTrace.cfg에 저장되며 프로그램 시작 시 이 파일이 구문 분석됩니다. Windows 버전에 따라 지원되는 호출 세트가 다릅니다.

일부 네이티브 함수는 Microsoft에 의해 공식적으로 문서화되었지만 많은 함수는 문서화되지 않았습니다. (거의) 완전한 목록은 함수에 대한 탐정 작업과 ReactOS와 같은 웹 사이트의 조합을 통해 도출되었습니다.

각 함수는 카테고리에 할당되며, 함수 이름(부분 일치) 및 함수 카테고리로 필터링할 수 있습니다.

기본적으로 NtTrace는 시스템 호출 반환 시 추적하지만, -pre 옵션을 사용하면 호출 전에도 추적할 수 있습니다. 이는 예를 들어 요청 및 응답 버퍼에 동일한 구조가 사용되는 경우 유용할 수 있습니다.


$Id: Readme.md 2542 2025-01-21 23:15:34Z roger $
도구 다운로드