[완료]libpcap 프로그래밍 공부중인데요.

wsong의 이미지

보통 룰을 지정할 때 아래와 같은 코드를 작성하는데요.
이렇게 했을 때 룰 하나만 감시하게 되는데요.

...
 /* Compiles the filter expression into a BPF filter program */
 if ( pcap_compile(descr, &filter, "(tcp[13] == 0x10) or (tcp[13] == 0x18)", 1, mask) == -1){
    fprintf(stderr, "Error in pcap_compile(): %s\n", pcap_geterr(descr) );
    exit(1);
 }
 
 /* Load the filter program into the packet capture device. */
 if( pcap_setfilter(descr,&filter) == -1 ){
    fprintf(stderr, "Error in pcap_setfilter(): %s\n", pcap_geterr(descr));
    exit(1);
 }

복수개의 룰을 감시하려고 할 때는 어떻게 해야 하는지 모르겠습니다.
snort소스를 봐봤는데 dap 라이브러리 쪽으로 가면서 해석이 어렵네요..

조언이나
혹시 참조할 만한 소스가 있으시면 링크라도 부탁드립니다.

wsong의 이미지

예를 들어서 다음과 같이 조건이 여러개 있을 때는 어떻게 하나 싶었는데요.
조건1 port 80
조건2 port 21

위의 두개의 조건을 다 찾을려고 하면 단신후 두 조건 사이에 or을 붙이면 되네요.

snort같이 설정파일에 룰을 설정해서 읽어들이는 프로그램 같은 경우는 어떻게 조건 문자열을 만드느냐가 꽤 중요한 거 같습니다.