Notatki o wydaniu v1.2.0.0 (2026-01-25)

Dodano

  • NOWOŚĆ: Obsługa wieloliniowych rekordów dla bloków szczegółów DNS PACKET
    • Wpisy w kontekście PACKET mogą teraz zawierać szczegółowe informacje o połączeniu TCP/UDP oraz strukturze komunikatu DNS
    • Bloki szczegółów są analizowane do ustrukturyzowanego formatu JSON w nowej kolumnie Details
    • Zawiera: informacje o gnieździe, adres/port zdalny, dane czasowe, strukturę komunikatu (XID, Flags, QCOUNT itd.)
    • Sekcje DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) są przechwytywane z pełnymi szczegółami rekordów
    • Zakodowane nazwy domen w blokach szczegółów są automatycznie konwertowane do formatu FQDN
  • NOWOŚĆ: Kolumna Details w wyjściu CSV
    • Zawiera ustrukturyzowane dane JSON dla wpisów PACKET z blokami szczegółów
    • Pusta dla wpisów PACKET bez szczegółów oraz dla wszystkich kontekstów innych niż PACKET
    • Umożliwia głęboką analizę pakietów i dochodzenia kryminalistyczne zapytań/odpowiedzi DNS
  • NOWOŚĆ: Przełącznik NoDetailsParsing dla optymalizacji wydajności
    • Pomija kosztowne parsowanie JSON bloków szczegółów PACKET
    • Może poprawić szybkość przetwarzania o 30-50% dla logów z wieloma blokami szczegółów
    • Używaj przy przetwarzaniu bardzo dużych plików (100MB+) gdy szczegółowa struktura pakietów nie jest potrzebna
    • Bloki szczegółów nadal są zbierane w kolumnie Information, ale kolumna Details pozostaje pusta
  • NOWOŚĆ: Obsługa wieloliniowego kontynuowania dla kontekstów innych niż PACKET
    • Konteksty EVENT, Note, DSPoll i inne mogą teraz rozciągać się na wiele linii
    • Wcięte linie kontynuacji są automatycznie łączone z polem Information głównego rekordu
    • Zachowuje kompletne komunikaty o błędach, aktualizacje stref i dane diagnostyczne
  • NOWOŚĆ: ContextFilter rozpoznaje dodatkowe typy kontekstów: DSPoll, Init, Lookup, Recurse, Remote, Tombstone
    • Efekt: Convert-DNSDebugLogFile może teraz uwzględniać/wykluczać te wpisy diagnostyczne i cyklu życia za pomocą -ContextFilter
  • NOWOŚĆ: Wyjście statystyk zawiera teraz dwa dedykowane pliki
    • _Statistic.csv: Dzienne liczniki rekordów według typu kontekstu (Date, Context, Count, ComputerName)
    • _PacketStatistic.csv: Dzienne liczniki PACKET według klienta/protokołu/kierunku/typu (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
    • Korzyść: Bardziej ukierunkowane raportowanie (wolumen kontekstów operacyjnych vs. rozkład ruchu DNS)
  • Generowanie JSON dla bloków szczegółów PACKET jest zoptymalizowane pod kątem wydajności (ręczne parsowanie zamiast regex)

Zmiany

  • PRZEŁOMOWA: Wyjście CSV zawiera teraz 18 kolumn (dodano kolumnę Details przed ComputerName)
    • Nowy porządek kolumn: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, Details, ComputerName
    • Wpływ: Skrypty opierające się na pozycjach kolumn muszą zostać zaktualizowane
    • Korzyść: Zaawansowane możliwości analizy pakietów bez zmiany dotychczasowego zachowania kolumny Information
  • Przetwarzanie linii danych zostało zrefaktoryzowane do wczytywania wszystkich linii do pamięci dla efektywnego wykrywania wieloliniowych rekordów
    • Wydajność: Minimalny wpływ dzięki zoptymalizowanemu użyciu List
    • Korzyść: Umożliwia dokładne przewidywanie bloków szczegółów i linii kontynuacji
  • Nazwy zapytań, które są brakujące lub zakodowane jako puste, są teraz obsługiwane łagodnie (bez błędów parsowania); wyjście CSV będzie zawierać pustą wartość QuestionName, gdy brak

Ulepszenia

  • Parsowanie Convert-DNSDebugLogFile jest bardziej odporne: surowsza walidacja linii i lepsze wyodrębnianie zmniejszają fałszywe/nieprawidłowe wiersze z uszkodzonych logów, zachowując format wyjścia CSV/statystyk
  • Wykrywanie kontekstu PACKET rozróżnia proste zapytania i zapytania z blokami szczegółów
  • Puste linie po wpisach PACKET bez szczegółów są prawidłowo pomijane
  • Dekodowanie nazw domen w blokach szczegółów korzysta z istniejącej funkcji ConvertTo-Fqdn dla spójności

Wydajność

  • Utrzymano szybkość przetwarzania dla logów bez bloków szczegółów
  • Przełącznik NoDetailsParsing zapewnia 30-50% poprawę szybkości, gdy parsowanie JSON nie jest potrzebne
  • Efektywne zarządzanie stanem podczas przetwarzania wieloliniowych rekordów
  • Zoptymalizowane operacje na łańcuchach (TrimStart, Join) zamiast regex do obsługi linii kontynuacji

Uwagi

  • Te zmiany są zaprojektowane tak, aby były kompatybilne wstecz dla normalnego użytkowania. Jeśli polegasz na dokładnym zestawie nazw kontekstów lub wcześniej ścisłym parsowaniu, prosimy o weryfikację skryptów downstream
  • Nowa kolumna Details jest zawsze obecna w wyjściu CSV; użyj NoDetailsParsing, aby pozostawić ją pustą dla wydajności
  • Istniejące skrypty parsujące CSV według pozycji kolumn muszą uwzględnić nową kolumnę Details (pozycja 17, przed ComputerName)