我正在测试与 BRO 的字符串比较,并遇到了一些运行时错误。希望大家可以看看,给我一些提示。例如,我有两个字符串,假设 str_A 和 str_B,str_A 是一种模式,例如:str_A = "\x13\x02\xf0\x80";
str_B 是函数中的有效负载(内容)字符串:
event tcp_packet(c: connection, is_orig: bool, flags: string, seq: count, ack: count, len: count, contents: string)
我将这两个字符串与: 进行了比较if(str_A in str_B)
,这减少了运行时错误,例如:
1467860547.182543 error: string with embedded NUL: "\x13\x00\xf0\x13"
1467860547.182543 error: string without NUL terminator: "\x13\x00\xf0\x13\x02\xf0\x80\x02\x00\x00\xc0\x01\x00\x00\x00\x00\x87\x02"
看起来模式字符串中间的“x00”被认为是终止符,而对于后者,str_B 的末尾没有 NUL。
所以(愚蠢的)问题是我如何在 BRO 中的 str_B 末尾附加一个 NUL?以及如何让 BRO 在比较时忽略字符串中间嵌入的 NUL?非常感谢。