亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smb_andx_decode.c

?? 著名的入侵檢測系統(tǒng)snort的最新版本的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
        return ProcessNextSMBCommand(readX->andXCommand, smbHdr, next_command,                                     data_left_len, total_size);            }    return 0;}#ifdef UNUSED_SMB_COMMANDint ProcessSMBSetupXReq(SMB_HDR *smbHdr, u_int8_t *data, u_int16_t size, u_int16_t total_size){    int extraIndex = 0;    SMB_SESS_SETUPX_REQ_HDR *sess_setupx_req_hdr;    /* Ptr to first null terminated data element */    unsigned char wordCount;    /* Skip the common header portion, wordCount byte + parameter bytes * 2 */    unsigned char *smb_data;    short byteCount = 0, extraBytes = 0;    int skipBytes = 1;    int passwdLen = 0;    char unicodePasswd = 0;    if ( size <= sizeof(SMB_SESS_SETUPX_REQ_HDR) )    {        return 0;    }    sess_setupx_req_hdr = (SMB_SESS_SETUPX_REQ_HDR *)data;    wordCount = sess_setupx_req_hdr->wordCount;    switch (wordCount)    {    case 10:        {            /* Old session setup andx */            SMB_SESS_SETUPX_REQ_AUTH_OLD *sess_setupx_auth =                 (SMB_SESS_SETUPX_REQ_AUTH_OLD *)                (data + sizeof(SMB_SESS_SETUPX_REQ_HDR));            passwdLen = smb_ntohs(sess_setupx_auth->passwdLen);            byteCount = extraBytes = smb_ntohs(sess_setupx_auth->byteCount);            smb_data = data + sizeof(SMB_SESS_SETUPX_REQ_HDR) +                sizeof(SMB_SESS_SETUPX_REQ_AUTH_OLD);        }        break;    case 12:        {            /* Extended Security session setup andx */            SMB_SESS_SETUPX_REQ_AUTH_NTLM12 *sess_setupx_auth =                (SMB_SESS_SETUPX_REQ_AUTH_NTLM12 *)                (data + sizeof(SMB_SESS_SETUPX_REQ_HDR));            passwdLen = 0; /* Its a blob */            byteCount = extraBytes = smb_ntohs(sess_setupx_auth->byteCount);            skipBytes = smb_ntohs(sess_setupx_auth->secBlobLength);            smb_data = data + sizeof(SMB_SESS_SETUPX_REQ_HDR) +                sizeof(SMB_SESS_SETUPX_REQ_AUTH_NTLM12);        }        break;    case 13:        {            /* Non-Extended Security session setup andx */            SMB_SESS_SETUPX_REQ_AUTH_NTLM12_NOEXT *sess_setupx_auth =                (SMB_SESS_SETUPX_REQ_AUTH_NTLM12_NOEXT *)                (data + sizeof(SMB_SESS_SETUPX_REQ_HDR));            if (sess_setupx_auth->passwdLen)            {                passwdLen = smb_ntohs(sess_setupx_auth->passwdLen);                unicodePasswd = 1;            }            else if (sess_setupx_auth->iPasswdLen)            {                passwdLen = smb_ntohs(sess_setupx_auth->iPasswdLen);            }            byteCount = extraBytes = smb_ntohs(sess_setupx_auth->byteCount);            smb_data = data + sizeof(SMB_SESS_SETUPX_REQ_HDR) +                sizeof(SMB_SESS_SETUPX_REQ_AUTH_NTLM12_NOEXT);        }        break;    default:        return -1;        break;    }    size -= sizeof(SMB_SESS_SETUPX_REQ_HDR);    /* Password data */    if (passwdLen)    {        int i=0;        if ( unicodePasswd )        {#ifdef DEBUG_DCERPC_PRINT            /* UNICODE Password */            wprintf(L"Case Sensitive Password: %.*s\n", passwdLen, smb_data);#endif            /* Skip past the password -- no terminating NULL */            smb_data += passwdLen;            extraBytes -= passwdLen;            /* Jump past the pad that re-aligns the next fields */            if (HAS_UNICODE_STRINGS(smbHdr))            {                smb_data += 1;                extraBytes -= 1;            }        }        else        {#ifdef DEBUG_DCERPC_PRINT                       /* ASCII Password */            printf("Case Insensitive Password: %.*s\n", passwdLen, smb_data);#endif            /* Skip past the password -- no terminating NULL */            smb_data += passwdLen;            extraBytes -= passwdLen;            /* Jump past the pad that re-aligns the next fields -- pad             * is present when ascii password is an even # of bytes. */            if (HAS_UNICODE_STRINGS(smbHdr) &&                (passwdLen %2 == 0))            {                smb_data += 1;                extraBytes -= 1;            }               }        for (i=0;i<2;i++)        {            skipBytes = 1;            if (HAS_UNICODE_STRINGS(smbHdr))            {                if (*smb_data != '\0')                {#ifdef DEBUG_DCERPC_PRINT                    printf("%s: ", SESS_AUTH_FIELD(extraIndex));                    wprintf(L"%s\n", smb_data);#endif                    skipBytes = SkipBytesWide(smb_data, size) + 2;                }            }            else            {                if (*smb_data != '\0')                {#ifdef DEBUG_DCERPC_PRINT                    printf("%s: %s\n", SESS_AUTH_FIELD(extraIndex), smb_data);#endif                    skipBytes = SkipBytes(smb_data, size) + 1;                }            }            extraIndex++;            smb_data += skipBytes;            extraBytes -= skipBytes;        }    }    else    {#ifdef DEBUG_DCERPC_PRINT        /* The security blob... */        int i;        printf("Security blob... ");        for (i=0;i<skipBytes;i++)        {            if ( isprint(smb_data[i]) )                printf("%c ", smb_data[i]);            else                printf("%.2x ", smb_data[i]);        }        printf("\n");#endif        smb_data += skipBytes;        extraBytes -= skipBytes;        /* Jump past the NULL Pad (ie fields following are word aligned) */        if (skipBytes%2 == 0)        {            smb_data += 1;            extraBytes -= 1;        }    }    extraIndex = 0;    /* Some extra data */    while (extraBytes > 0)    {        skipBytes = 1;        if (HAS_UNICODE_STRINGS(smbHdr))        {            if (*smb_data != '\0')            {#ifdef DEBUG_DCERPC_PRINT                                printf("%s: ", SESS_NATIVE_FIELD(extraIndex));                wprintf(L"%s\n", smb_data);#endif                skipBytes = wcslen(smb_data) + 1;            }            skipBytes *= 2;        }        else        {            if (*smb_data != '\0')            {#ifdef DEBUG_DCERPC_PRINT                printf("%s: %s\n", SESS_NATIVE_FIELD(extraIndex), smb_data);#endif                skipBytes = strlen(smb_data) + 1;            }        }        extraIndex++;        smb_data += skipBytes;        extraBytes -= skipBytes;    }    /* Handle next andX command in this packet */    if (sess_setupx_req_hdr->andXCommand != SMB_NONE)    {        u_int16_t data_size;        u_int16_t andXOffset = smb_ntohs(sess_setupx_req_hdr->andXOffset);        if ( andXOffset >= total_size )            return 0;               /* Make sure we don't backtrack or look at the same data again */        if ( andXOffset <= (data - (u_int8_t *)smbHdr) )            return 0;        /* Skip header, get size of remaining data */        data_size = total_size - andXOffset;        /* Next block is at smbHdr + smb_ntohs(sess_setupx_req->andXOffset) */        return ProcessNextSMBCommand(sess_setupx_req_hdr->andXCommand, smbHdr,            (u_int8_t *)smbHdr + smb_ntohs(sess_setupx_req_hdr->andXOffset), data_size, total_size);            }    return 0;}int ProcessSMBLogoffXReq(SMB_HDR *smbHdr, u_int8_t *data, u_int16_t size, u_int16_t total_size){    SMB_LOGOFFX_REQ *logoffX;    int              byteCount;    if (byteCount > 0)    {        return -1;    }    if ( size < sizeof(SMB_LOGOFFX_REQ) )    {        return 0;    }    logoffX = (SMB_LOGOFFX_REQ *)data;    byteCount = smb_ntohs(logoffX->byteCount);    /* Handle next andX command in this packet */    if (logoffX->andXCommand != SMB_NONE)    {        u_int16_t data_size;        u_int16_t andXOffset = smb_ntohs(logoffX->andXOffset);        if ( andXOffset >= total_size )            return 0;               /* Make sure we don't backtrack or look at the same data again */        if ( andXOffset <= (data - (u_int8_t *)smbHdr) )            return 0;        /* Skip header, get size of remaining data */        data_size = total_size - andXOffset;        /* Next block is at smbHdr + smb_ntohs(sess_setupx_req->andXOffset) */        return ProcessNextSMBCommand(logoffX->andXCommand, smbHdr,            (u_int8_t *)smbHdr + smb_ntohs(logoffX->andXOffset), data_size, total_size);            }    return 0;}int ProcessSMBLockingX(SMB_HDR *smbHdr, u_int8_t *data, u_int16_t size, u_int16_t total_size){    SMB_LOCKINGX_REQ *lockingX;    unsigned char *smb_data;    u_int16_t numUnlocks;    u_int16_t numLocks;    int lockRangeSize;    if ( size < sizeof(SMB_LOCKINGX_REQ) )    {        return 0;    }    lockingX = (SMB_LOCKINGX_REQ *)data;    smb_data = data + sizeof(SMB_LOCKINGX_REQ);    numUnlocks = smb_ntohs(lockingX->numUnlocks);    numLocks = smb_ntohs(lockingX->numLocks);    if (lockingX->lockType & LOCKINGX_LARGE_FILES)    {        lockRangeSize = sizeof(SMB_LARGEFILE_LOCKINGX_RANGE);#ifdef DEBUG_DCERPC_PRINT        if (numUnlocks > 0)        {            int i;            printf("Unlocking PIDs: ");            for (i=0;i<numUnlocks;i++)            {                SMB_LARGEFILE_LOCKINGX_RANGE *lock =                    (SMB_LARGEFILE_LOCKINGX_RANGE *)(smb_data +                     lockRangeSize * i);                printf("%d ", lock->pid);            }            printf("\n");        }        if (numLocks > 0)        {            int i;            printf("Locking PIDs: ");            for (i=0;i<numLocks;i++)            {                SMB_LARGEFILE_LOCKINGX_RANGE *lock =                    (SMB_LARGEFILE_LOCKINGX_RANGE *)(smb_data +                     lockRangeSize * numUnlocks+                     lockRangeSize * i);                printf("%d ", lock->pid);            }            printf("\n");        }#endif    }    else    {        lockRangeSize = sizeof(SMB_LOCKINGX_RANGE);#ifdef DEBUG_DCERPC_PRINT        if (numUnlocks > 0)        {            printf("Unlocking PIDs: ");            for (i=0;i<numUnlocks;i++)            {                SMB_LOCKINGX_RANGE *lock =                    (SMB_LOCKINGX_RANGE *)(smb_data +                     lockRangeSize * i);                printf("%d ", lock->pid);            }            printf("\n");        }        if (numLocks > 0)        {            printf("Locking PIDs: ");            for (i=0;i<numLocks;i++)            {                SMB_LOCKINGX_RANGE *lock =                    (SMB_LOCKINGX_RANGE *)(smb_data +                     lockRangeSize * numUnlocks+                     lockRangeSize * i);                printf("%d ", lock->pid);            }            printf("\n");        }#endif    }        /* Handle next andX command in this packet */    if (lockingX->andXCommand != SMB_NONE)    {        u_int16_t data_size;        u_int16_t andXOffset = smb_ntohs(lockingX->andXOffset);        if ( andXOffset >= total_size )            return 0;               /* Make sure we don't backtrack or look at the same data again */        if ( andXOffset <= (data - (u_int8_t *)smbHdr) )            return 0;        /* Skip header, get size of remaining data */        data_size = total_size - andXOffset;        /* Next block is at smbHdr + smb_ntohs(sess_setupx_req->andXOffset) */        return ProcessNextSMBCommand(lockingX->andXCommand, smbHdr,            (u_int8_t *)smbHdr + smb_ntohs(lockingX->andXOffset), data_size, total_size);            }    return 0;}#endif /*  UNUSED_SMB_COMMAND */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区三区中文字幕| 成人丝袜18视频在线观看| 一区二区三区四区中文字幕| 国产精品欧美极品| 欧美国产精品久久| 国产精品美女久久久久久久| 国产精品午夜久久| 最新欧美精品一区二区三区| 中文字幕一区av| 亚洲视频在线观看一区| 一区二区在线观看免费| 亚洲裸体xxx| 亚洲亚洲精品在线观看| 视频一区在线播放| 美日韩一区二区三区| 极品美女销魂一区二区三区| 黑人巨大精品欧美一区| 豆国产96在线|亚洲| caoporm超碰国产精品| 日本久久电影网| 欧美少妇xxx| 制服丝袜激情欧洲亚洲| 欧美成人欧美edvon| 国产婷婷色一区二区三区四区| 国产喷白浆一区二区三区| 国产精品欧美久久久久一区二区| 成人欧美一区二区三区| 一区二区三区免费观看| 日韩综合一区二区| 激情综合一区二区三区| 国产91色综合久久免费分享| 91在线观看下载| 精品视频在线免费| 精品久久久久久久久久久久久久久 | 91最新地址在线播放| 欧美私模裸体表演在线观看| 日韩精品中文字幕一区二区三区| 久久久久99精品国产片| 有坂深雪av一区二区精品| 日韩电影一区二区三区| 高清久久久久久| 欧美羞羞免费网站| 2021久久国产精品不只是精品| 国产精品久久久久久妇女6080| 一区二区免费看| 另类小说一区二区三区| 91色婷婷久久久久合中文| 欧美精品1区2区| 中文字幕久久午夜不卡| 午夜电影久久久| 国产电影精品久久禁18| 日本精品一级二级| 欧美精品一区二区三区在线 | 中文字幕中文乱码欧美一区二区| 亚洲最新视频在线观看| 国内不卡的二区三区中文字幕| 色综合久久99| 国产亚洲自拍一区| 亚洲大型综合色站| 成人丝袜高跟foot| 精品免费99久久| 亚洲国产wwwccc36天堂| 国产成人av福利| 欧美精品黑人性xxxx| 国产精品传媒入口麻豆| 国产在线视频精品一区| 欧美性猛交xxxx黑人交| 国产欧美精品区一区二区三区 | 在线亚洲精品福利网址导航| 久久久五月婷婷| 日韩二区在线观看| 色吊一区二区三区| 国产精品美女久久久久aⅴ| 久久精品国产免费看久久精品| 日本丰满少妇一区二区三区| 国产区在线观看成人精品| 久久精品二区亚洲w码| 欧美视频中文一区二区三区在线观看| 国产日产欧产精品推荐色| 免费欧美日韩国产三级电影| 欧美在线观看一区二区| 亚洲欧美在线aaa| 国产精品小仙女| 精品99一区二区| 日本欧洲一区二区| 欧美视频一区二区三区在线观看| 成人欧美一区二区三区小说 | 成人一区在线观看| 精品国产青草久久久久福利| 爽爽淫人综合网网站| 欧美人动与zoxxxx乱| 一区二区三区在线不卡| 97久久精品人人澡人人爽| 国产精品不卡一区二区三区| 成人丝袜高跟foot| 国产精品视频一区二区三区不卡| 国产精品自拍三区| 久久亚洲影视婷婷| 国产九色精品成人porny| 精品久久久久久久久久久久包黑料 | 欧美手机在线视频| 亚洲二区在线观看| 欧美日韩精品一区二区三区蜜桃 | 亚洲视频免费观看| 波多野结衣在线aⅴ中文字幕不卡| 国产日韩欧美不卡在线| 成人高清视频在线观看| 亚洲欧洲精品天堂一级| 色吊一区二区三区| 午夜视频久久久久久| 欧美酷刑日本凌虐凌虐| 男男成人高潮片免费网站| 欧美tickle裸体挠脚心vk| 国产麻豆一精品一av一免费| 久久久久国产精品麻豆| 成人av一区二区三区| 亚洲日本va在线观看| 欧美综合在线视频| 日本成人在线网站| 久久一区二区三区国产精品| 成人99免费视频| 亚洲制服丝袜一区| 欧美一区二区黄| 国内精品视频一区二区三区八戒| 久久久精品人体av艺术| 99久久精品一区二区| 亚洲电影一级片| 久久综合色鬼综合色| www.亚洲在线| 亚洲国产精品麻豆| 精品三级在线看| zzijzzij亚洲日本少妇熟睡| 一区二区三区四区不卡视频 | 亚洲在线观看免费| 日韩一区二区三区高清免费看看| 国内精品国产成人| 综合久久一区二区三区| 欧美日韩精品专区| 国产成人亚洲综合色影视| 亚洲精品中文字幕乱码三区| 欧美日韩的一区二区| 国产在线精品一区在线观看麻豆| 中文成人av在线| 欧美丰满一区二区免费视频| 韩国精品久久久| 夜夜嗨av一区二区三区中文字幕| 91精品国产乱| caoporn国产精品| 日本午夜一本久久久综合| 国产精品网站一区| 欧美电影一区二区| 成人午夜av影视| 免费日韩伦理电影| 亚洲欧美日本韩国| 欧美v国产在线一区二区三区| 9人人澡人人爽人人精品| 日本aⅴ免费视频一区二区三区| 国产精品色一区二区三区| 欧美精品777| 色老汉av一区二区三区| 狠狠色2019综合网| 亚洲成人免费观看| 日韩美女视频一区二区 | 久久亚洲综合色一区二区三区| 91精品1区2区| 国产福利91精品| 日韩成人免费看| 亚洲男人的天堂一区二区| 精品成人在线观看| 欧美视频在线一区二区三区| 成人免费高清在线| 激情综合色播激情啊| 亚洲第一电影网| 一区二区三区中文在线| 国产欧美1区2区3区| 日韩欧美国产系列| 欧美日韩和欧美的一区二区| 国产91色综合久久免费分享| 久久国产福利国产秒拍| 亚洲一级电影视频| 亚洲黄色av一区| 国产精品嫩草影院com| 久久―日本道色综合久久| 欧美一区二区三区啪啪| 精品1区2区3区| 91九色02白丝porn| 91美女在线视频| 成人午夜免费av| 粉嫩aⅴ一区二区三区四区| 国模冰冰炮一区二区| 久久超碰97中文字幕| 午夜亚洲福利老司机| 亚洲一区二区三区爽爽爽爽爽| 亚洲日本成人在线观看| **性色生活片久久毛片| 中文字幕在线观看不卡| ●精品国产综合乱码久久久久| 欧美国产精品专区| 久久精品人人做人人综合| 久久在线观看免费|