Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Monitor sieci wywołuje funkcję AttachProperties, aby zamapować właściwości, które istnieją w kawałku rozpoznanych danych. Funkcja AttachProperties przypisuje właściwości do określonej lokalizacji.
Usługa Network Monitor używa następującego procesu do analizowania danych w ramce.
- Najpierw monitor sieci wywołuje RecognizeFrame w celu rozpoznania wszystkich protokołów, które są obecne w ramce.
- Następnie monitor sieci wywołuje AttachProperties dla każdego analizatora, który rozpoznaje fragment danych.
Gdy monitor sieci wywołuje funkcję AttachProperties dla rozpoznanych danych, analizator, który jest wywoływany, musi analizować dane, a następnie mapować każdą istniejącą właściwość na lokalizację w rozpoznanych danych. Analizator określa, które właściwości istnieją i gdzie każda właściwość znajduje się w danych. Na poniższej ilustracji przedstawiono dane rozpoznane przez analizator.
Podczas implementacji AttachPropertiesnależy wywołać jedną z następujących funkcji dla każdej właściwości, która istnieje w ramce danych.
- Wywołaj funkcję AttachPropertyInstanceEx, gdy chcesz zmodyfikować dane właściwości w ramce.
- Wywołaj funkcję AttachPropertyInstance, gdy nie chcesz modyfikować danych właściwości w ramce.
Notatka
Zaleca się użycie danych, które istnieją w przechwyconym materiale.
Poniższa procedura identyfikuje kroki niezbędne do zaimplementowania AttachProperties.
aby zaimplementować funkcję AttachProperties
- Określ, które właściwości istnieją, oraz lokalizację właściwości w danych.
- Wywołaj AttachPropertyInstanceEx dla każdej właściwości z wartością, którą chcesz zmodyfikować.
- Wywołaj AttachPropertyInstance dla każdej właściwości z wartością, której nie chcesz modyfikować. Zazwyczaj jest to jedyna funkcja, którą należy wywołać.
Poniżej przedstawiono podstawową implementację AttachProperties. Należy pamiętać, że w przykładzie nie ma ani kodu, aby określić, które właściwości istnieją, albo kod do zlokalizowania właściwości.
#include <windows.h>
LPBYTE BHAPI MyProtocolAttachProperties( HFRAME hFrame,
LPBYTE pMacFrame,
LPBYTE pBLRPLATEFrame,
DWORD MacType,
DWORD BytesLeft,
HPROTOCOL hPreviousProtocol,
DWORD nPrevProtocolOffset,
DWORD InstData)
{
PBLRPLATEHDR pBLRPLATEHdr = (PBLRPLATEHDR)pBLRPLATEFrame;
// Attach summary property.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_SUMMARY].hProperty,
(WORD)BytesLeft,
(LPBYTE)pBLRPLATEFrame,
0, // No Help file.
0, // Indent level.
0); // Data flag.
// Attach signature property.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_SIGNATURE].hProperty,
sizeof(DWORD),
&(pBLRPLATEHdr->Signature),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach opcode.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_OPCODE].hProperty,
sizeof(WORD),
&(pBLRPLATEHdr->Opcode),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach flags summary.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_FLAGS_SUMMARY].hProperty,
sizeof(BYTE),
&(pBLRPLATEHdr->Flags),
0, // No Help file.
1, // Indent level.
0); // Data flag.
// Attach flags decode.
AttachPropertyInstance( hFrame,
BLRPLATEPropertyTable[BLRPLATE_FLAGS_FLAGS].hProperty,
sizeof(BYTE),
&(pBLRPLATEHdr->Flags),
0, // No Help file.
2, // Indent level.
0); // Data flag.
RETURN null;
}