您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AppLayerParse函数代码示例

51自学网 2021-06-01 19:47:10
  C++
这篇教程C++ AppLayerParse函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AppLayerParse函数的典型用法代码示例。如果您正苦于以下问题:C++ AppLayerParse函数的具体用法?C++ AppLayerParse怎么用?C++ AppLayerParse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AppLayerParse函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: TLSParserTest02

/** /test Send a get request in two chunks. */static int TLSParserTest02(void) {    int result = 1;    Flow f;    uint8_t tlsbuf1[] = { 0x16 };    uint32_t tlslen1 = sizeof(tlsbuf1);    uint8_t tlsbuf2[] = { 0x03, 0x01 };    uint32_t tlslen2 = sizeof(tlsbuf2);    TcpSession ssn;    memset(&f, 0, sizeof(f));    memset(&ssn, 0, sizeof(ssn));    f.protoctx = (void *)&ssn;    StreamTcpInitConfig(TRUE);    FlowL7DataPtrInit(&f);    int r = AppLayerParse(&f, ALPROTO_TLS, STREAM_TOSERVER, tlsbuf1, tlslen1);    if (r != 0) {        printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    r = AppLayerParse(&f, ALPROTO_TLS, STREAM_TOSERVER, tlsbuf2, tlslen2);    if (r != 0) {        printf("toserver chunk 2 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    TlsState *tls_state = f.aldata[AlpGetStateIdx(ALPROTO_TLS)];    if (tls_state == NULL) {        printf("no tls state: ");        result = 0;        goto end;    }    if (tls_state->client_content_type != 0x16) {        printf("expected content_type %" PRIu8 ", got %" PRIu8 ": ", 0x16,               tls_state->client_content_type);        result = 0;        goto end;    }    if (tls_state->client_version != TLS_VERSION_10) {        printf("expected version %04" PRIu16 ", got %04" PRIu16 ": ",               TLS_VERSION_10, tls_state->client_version);        result = 0;        goto end;    }end:    FlowL7DataPtrFree(&f);    StreamTcpFreeConfig(TRUE);    return result;}
开发者ID:pilcrow,项目名称:suricata,代码行数:56,


示例2: FTPParserTest03

/** /test Send a splitted get request. */int FTPParserTest03(void) {    int result = 1;    Flow f;    uint8_t ftpbuf1[] = "POR";    uint32_t ftplen1 = sizeof(ftpbuf1) - 1; /* minus the /0 */    uint8_t ftpbuf2[] = "T 192,168,1";    uint32_t ftplen2 = sizeof(ftpbuf2) - 1; /* minus the /0 */    uint8_t ftpbuf3[] = "1,1,10,20/r/n";    uint32_t ftplen3 = sizeof(ftpbuf3) - 1; /* minus the /0 */    TcpSession ssn;    memset(&f, 0, sizeof(f));    memset(&ssn, 0, sizeof(ssn));    f.protoctx = (void *)&ssn;    StreamTcpInitConfig(TRUE);    int r = AppLayerParse(NULL, &f, ALPROTO_FTP, STREAM_TOSERVER|STREAM_START, ftpbuf1, ftplen1);    if (r != 0) {        SCLogDebug("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    r = AppLayerParse(NULL, &f, ALPROTO_FTP, STREAM_TOSERVER, ftpbuf2, ftplen2);    if (r != 0) {        SCLogDebug("toserver chunk 2 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    r = AppLayerParse(NULL, &f, ALPROTO_FTP, STREAM_TOSERVER|STREAM_EOF, ftpbuf3, ftplen3);    if (r != 0) {        SCLogDebug("toserver chunk 3 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    FtpState *ftp_state = f.alstate;    if (ftp_state == NULL) {        SCLogDebug("no ftp state: ");        result = 0;        goto end;    }    if (ftp_state->command != FTP_COMMAND_PORT) {        SCLogDebug("expected command %" PRIu32 ", got %" PRIu32 ": ", FTP_COMMAND_PORT, ftp_state->command);        result = 0;        goto end;    }end:    StreamTcpFreeConfig(TRUE);    return result;}
开发者ID:prabhakaran1989,项目名称:suricata,代码行数:56,


示例3: FTPParserTest10

/** /test Test case where chunks are smaller than the delim length and the  *       last chunk is supposed to match the delim. */int FTPParserTest10(void) {    int result = 1;    Flow f;    uint8_t ftpbuf1[] = "PORT 1,2,3,4,5,6/r/n";    uint32_t ftplen1 = sizeof(ftpbuf1) - 1; /* minus the /0 */    TcpSession ssn;    int r = 0;    memset(&f, 0, sizeof(f));    memset(&ssn, 0, sizeof(ssn));    FLOW_INITIALIZE(&f);    f.protoctx = (void *)&ssn;    StreamTcpInitConfig(TRUE);    uint32_t u;    for (u = 0; u < ftplen1; u++) {        uint8_t flags = 0;        if (u == 0) flags = STREAM_TOSERVER|STREAM_START;        else if (u == (ftplen1 - 1)) flags = STREAM_TOSERVER|STREAM_EOF;        else flags = STREAM_TOSERVER;        r = AppLayerParse(NULL, &f, ALPROTO_FTP, flags, &ftpbuf1[u], 1);        if (r != 0) {            SCLogDebug("toserver chunk %" PRIu32 " returned %" PRId32 ", expected 0: ", u, r);            result = 0;            goto end;        }    }    FtpState *ftp_state = f.alstate;    if (ftp_state == NULL) {        SCLogDebug("no ftp state: ");        result = 0;        goto end;    }    if (ftp_state->command != FTP_COMMAND_PORT) {        SCLogDebug("expected command %" PRIu32 ", got %" PRIu32 ": ", FTP_COMMAND_PORT, ftp_state->command);        result = 0;        goto end;    }end:    StreamTcpFreeConfig(TRUE);    FLOW_DESTROY(&f);    return result;}
开发者ID:prabhakaran1989,项目名称:suricata,代码行数:51,


示例4: FTPParserTest06

/** /test See how it deals with an incomplete request. */int FTPParserTest06(void) {    int result = 1;    Flow f;    uint8_t ftpbuf1[] = "PORT";    uint32_t ftplen1 = sizeof(ftpbuf1) - 1; /* minus the /0 */    TcpSession ssn;    memset(&f, 0, sizeof(f));    memset(&ssn, 0, sizeof(ssn));    FLOW_INITIALIZE(&f);    f.protoctx = (void *)&ssn;    StreamTcpInitConfig(TRUE);    int r = AppLayerParse(NULL, &f, ALPROTO_FTP, STREAM_TOSERVER|STREAM_START|STREAM_EOF, ftpbuf1, ftplen1);    if (r != 0) {        SCLogDebug("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);        result = 0;        goto end;    }    FtpState *ftp_state = f.alstate;    if (ftp_state == NULL) {        SCLogDebug("no ftp state: ");        result = 0;        goto end;    }    if (ftp_state->command != FTP_COMMAND_UNKNOWN) {        SCLogDebug("expected command %" PRIu32 ", got %" PRIu32 ": ", FTP_COMMAND_UNKNOWN, ftp_state->command);        result = 0;        goto end;    }end:    StreamTcpFreeConfig(TRUE);    FLOW_DESTROY(&f);    return result;}
开发者ID:prabhakaran1989,项目名称:suricata,代码行数:41,


示例5: HTPFileParserTest04

static int HTPFileParserTest04(void) {    int result = 0;    Flow *f = NULL;    uint8_t httpbuf1[] = "POST /upload.cgi HTTP/1.1/r/n"                         "Host: www.server.lan/r/n"                         "Content-Type: multipart/form-data; boundary=---------------------------277531038314945/r/n"                         "Content-Length: 373/r/n"                         "/r/n";    uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the /0 */    uint8_t httpbuf2[] = "-----------------------------277531038314945/r/n"                         "Content-Disposition: form-data; name=/"email/"/r/n"                         "/r/n"                         "[email
C++ AppLayerParserParse函数代码示例
C++ AppInit2函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。