Network packet 데이터를 분석할 때, SQL Server port 가 1433 포트가 아닌 경우 NETMON의 TDS parser가 이를 올바르게 변환하지 못하므로 아래와 같은 방법을 이용할 수 있습니다.
NETMON 3.4 parser는 아래 폴더에 스크립트로 작성되어 있습니다.
C:\programdata\microsoft\Network Monitor 3\NPL\NetworkMonitor Parsers\Base
TDS 는 TCP의 서브 프로토콜이므로 tcp.npl 파일을 에디터로 편집합니다.
//# (c) 2009 CodePlex Foundation
//#
//# Title: Transmission Control Protocol
//#
//# Details:
//#
//# Public References: RFC 793, 1644, 2385, 3168, 3540
//#
//# Comments:
//#
//# Revision Class and Date:Minor, 4/28/2010
//#
//####
1433 포트를 검색한 뒤, 수집된 패킷 로그에서 사용된 SQL 포트를 CASE 구문에 추가합니다. 예를 들어 SQL Server 포트가 14333 이라면 아래와 같이.
... (중략)
case 1433:
case 14333: // 임시로 추가합니다.
while [FrameOffset + 8 <= FrameLength]
{
switch
{
case UINT8( Framedata, Offset ) == 0x53:
SMP Smp;
default:
TDS Tds;
}
}
... (중략)
파일 저장 후 netmon 을 관리자 권한으로 수행하면 Parser 파일들이 리빌드 됩니다. 이후 수집된 netmon 패킷 파일을 다시 불러 오시면 TDS 패킷이 성공적으로 파싱된 결과를 볼 수 있습니다.
작성자: Lai Go / 작성일자: 2018.07.11