smb: detect protocol in both directions

pull/2501/head
Victor Julien 10 years ago
parent e9fccfa67c
commit fa8cbd8741

@ -1500,18 +1500,17 @@ static uint16_t SMBProbingParser(uint8_t *input, uint32_t ilen, uint32_t *offset
static int SMBRegisterPatternsForProtocolDetection(void) static int SMBRegisterPatternsForProtocolDetection(void)
{ {
if (AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB, int r = 0;
"|ff|SMB", 8, 4, STREAM_TOSERVER) < 0) r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB,
{ "|ff|SMB", 8, 4, STREAM_TOSERVER);
return -1; r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB,
} "|ff|SMB", 8, 4, STREAM_TOCLIENT);
if (AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
"|fe|SMB", 8, 4, STREAM_TOSERVER) < 0) r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
{ "|fe|SMB", 8, 4, STREAM_TOSERVER);
return -1; r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
} "|fe|SMB", 8, 4, STREAM_TOCLIENT);
return r == 0 ? 0 : -1;
return 0;
} }
void RegisterSMBParsers(void) void RegisterSMBParsers(void)
@ -1529,12 +1528,12 @@ void RegisterSMBParsers(void)
ALPROTO_SMB, ALPROTO_SMB,
SMB_PROBING_PARSER_MIN_DEPTH, 0, SMB_PROBING_PARSER_MIN_DEPTH, 0,
STREAM_TOSERVER, STREAM_TOSERVER,
SMBProbingParser, NULL); SMBProbingParser, SMBProbingParser);
} else { } else {
AppLayerProtoDetectPPParseConfPorts("tcp", IPPROTO_TCP, AppLayerProtoDetectPPParseConfPorts("tcp", IPPROTO_TCP,
proto_name, ALPROTO_SMB, proto_name, ALPROTO_SMB,
SMB_PROBING_PARSER_MIN_DEPTH, 0, SMB_PROBING_PARSER_MIN_DEPTH, 0,
SMBProbingParser, NULL); SMBProbingParser, SMBProbingParser);
} }
AppLayerParserRegisterParserAcceptableDataDirection(IPPROTO_TCP, ALPROTO_SMB, STREAM_TOSERVER); AppLayerParserRegisterParserAcceptableDataDirection(IPPROTO_TCP, ALPROTO_SMB, STREAM_TOSERVER);

Loading…
Cancel
Save