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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dcerpc.c

?? 著名的入侵檢測系統(tǒng)snort的最新版本的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * dcerpc.c * * Copyright (C) 2006 Sourcefire,Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License Version 2 as * published by the Free Software Foundation.  You may not use, modify or * distribute this program under any other version of the GNU General * Public License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <stdlib.h>#ifdef HAVE_WCHAR_H#include <wchar.h>#endif#include "debug.h"#include "sf_snort_packet.h"#include "bounds.h"#include "smb_structs.h"#include "snort_dcerpc.h"#include "dcerpc_util.h"#include "dcerpc.h"extern u_int16_t _max_frag_size;extern DCERPC         *_dcerpc;extern SFSnortPacket  *_dcerpc_pkt;extern u_int8_t        _disable_dcerpc_fragmentation;extern u_int8_t        _debug_print;/* Check to see if we have a full DCE/RPC fragment * Guarantees: *  There is enough data to slap header on and grab fields from *  Is most likely a DCE/RPC packet *  DCE/RPC fragment length is greater than the size of request header *  DCE/RPC fragment length is less than or equal to size of data remaining */int IsCompleteDCERPCMessage(const u_int8_t *data, u_int16_t size){    const DCERPC_HDR *dcerpc;    u_int16_t       frag_length;    if ( size <= sizeof(DCERPC_REQ) )    {        DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "Error: Not enough data for DCERPC structure.\n"););        return 0;    }    /* Check to see if this is a valid DCE/RPC packet */    dcerpc = (const DCERPC_HDR *) data;    /*  Check for version and packet type - mark as DCERPC session */    if ( dcerpc->version != 5 ||         (dcerpc->packet_type != DCERPC_REQUEST && dcerpc->packet_type != DCERPC_BIND) )    {        DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "Error: Not a DCERPC bind or request.\n"););        return 0;    }    frag_length = dcerpc_ntohs(dcerpc->byte_order, dcerpc->frag_length);    if (frag_length <= sizeof(DCERPC_REQ))    {        DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "Error: DCERPC frag length <= size of request header.\n"););        return 0;    }    /* Wait until we have the whole DCE/RPC message */    if ( frag_length > size )        return 0;        return 1;}/* Return 1 if successfully parsed at least one message *//* TODO After collecting full DCE/RPC fragments, there might be part of a * fragment left - need to tell caller that there is some data left and  * where it is, i.e. return a pointer to it and the size left. */int ProcessDCERPCMessage(const u_int8_t *smb_hdr, u_int16_t smb_hdr_len, const u_int8_t *data, u_int16_t size){    const DCERPC_HDR *dcerpc;    u_int16_t       current_size = size;    const u_int8_t  *current_data = data;    u_int16_t       frag_length;    if ( !IsCompleteDCERPCMessage(data, size) )        return 0;    _dcerpc->state = STATE_IS_DCERPC;       /* Check fragmentation - got at least one full fragment */    while (current_size > 0 )    {        dcerpc = (DCERPC_HDR *) current_data;        frag_length = dcerpc_ntohs(dcerpc->byte_order, dcerpc->frag_length);        if ( DCERPC_Fragmentation(current_data, current_size, frag_length) == 1 )        {            ReassembleDCERPCRequest(smb_hdr, smb_hdr_len, current_data);        }        current_size -= frag_length;        current_data += frag_length;        /* see if we have another full fragment in this packet */        if ( !IsCompleteDCERPCMessage(current_data, current_size) )            break;    }    return 1;}/*    Return  0 if not fragmented OR if fragmented and not last fragment    Return  1 if fragmented and last fragment */int DCERPC_Fragmentation(const u_int8_t *data, u_int16_t data_size, u_int16_t frag_length){    DCERPC_HDR     *dcerpc_hdr;    int ret = 0;    if ( _dcerpc->state == STATE_IS_DCERPC )    {        if ( data_size <= sizeof(DCERPC_REQ) )        {            DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "Error: Not a DCERPC request.\n"););            return -1;        }        dcerpc_hdr = (DCERPC_HDR *) data;        if ( _disable_dcerpc_fragmentation )        {            return 0;        }        if ( frag_length <= sizeof(DCERPC_REQ) )        {            DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "Invalid frag length in DCERPC request.\n"););            return -1;        }        if ( frag_length > _max_frag_size )        {            frag_length = _max_frag_size;        }                if ( !(_dcerpc->fragmentation & SUSPEND_FRAGMENTATION) )        {            if ( _dcerpc->fragmentation & RPC_FRAGMENTATION )            {                /* Already fragmented, get more buffer space if needed */                if ( dcerpc_hdr->packet_type == DCERPC_REQUEST )                {                    u_int16_t    dcerpc_len;                    u_int16_t    old_buf_size = _dcerpc->dcerpc_req_buf_size;                    dcerpc_len = frag_length - sizeof(DCERPC_REQ);                    if ( _dcerpc->dcerpc_req_buf_size >= (0xFFFF - dcerpc_len) )                    {                        DEBUG_WRAP(DebugMessage(DEBUG_DCERPC, "DCE/RPC fragmentation overflow.\n"););                        DCERPC_FragFree(_dcerpc->dcerpc_req_buf, 0);                        _dcerpc->dcerpc_req_buf_len = 0;                        _dcerpc->dcerpc_req_buf_size = 0;                        _dcerpc->dcerpc_req_buf = NULL;                        _dcerpc->fragmentation |= SUSPEND_FRAGMENTATION;                        return 0;                    }                    if ( dcerpc_len > (data_size - sizeof(DCERPC_REQ)) )                    {                        dcerpc_len = data_size - sizeof(DCERPC_REQ);                    }                    if ( _dcerpc->dcerpc_req_buf_size < (_dcerpc->dcerpc_req_buf_len + dcerpc_len) )                    {                        while ( _dcerpc->dcerpc_req_buf_size < (_dcerpc->dcerpc_req_buf_len + dcerpc_len) )                        {                            if ( _dcerpc->dcerpc_req_buf_size > 0x7FFF )                            {                                _dcerpc->dcerpc_req_buf_size = 0xFFFF;                                break;                            }                            else                            {                                _dcerpc->dcerpc_req_buf_size *= 2;                            }                        }                        if ( _dcerpc->dcerpc_req_buf_size > _dpd.altBufferLen )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区电影| 亚洲va国产天堂va久久en| 亚洲成a天堂v人片| 国产乱一区二区| 91麻豆精品久久久久蜜臀| 国产欧美一区二区在线观看| 亚洲欧美激情插| 成人av在线电影| 精品国产伦一区二区三区观看体验 | 久久精品国产77777蜜臀| 色综合天天综合网天天狠天天 | 国产乱码精品一区二区三区五月婷| 在线免费亚洲电影| 中文字幕一区二区三区视频| 国产麻豆精品95视频| 日韩精品专区在线| 日韩和欧美的一区| 欧美日韩欧美一区二区| 亚洲日本va在线观看| 9色porny自拍视频一区二区| 久久婷婷国产综合精品青草 | 亚洲一区二区偷拍精品| 99精品桃花视频在线观看| 国产三级精品视频| 国产成人精品免费一区二区| 久久人人超碰精品| 国产麻豆精品95视频| 久久久久久久久97黄色工厂| 国产麻豆成人精品| 久久久久久99精品| 国产精品123区| 国产三级久久久| 波多野结衣欧美| 亚洲天堂福利av| 色成人在线视频| 一区二区三区av电影| 日本丶国产丶欧美色综合| 亚洲精品国产高清久久伦理二区| 色播五月激情综合网| 亚洲一区二区三区美女| 91精品在线观看入口| 精品影院一区二区久久久| 2021中文字幕一区亚洲| 国产成人精品免费视频网站| |精品福利一区二区三区| 色成年激情久久综合| 性做久久久久久免费观看欧美| 制服丝袜亚洲精品中文字幕| 免费黄网站欧美| 国产日韩欧美精品在线| 91捆绑美女网站| 亚洲成人自拍一区| 精品奇米国产一区二区三区| 国产精品一区二区不卡| 亚洲三级电影全部在线观看高清| 91电影在线观看| 久久成人麻豆午夜电影| 中文字幕精品一区二区精品绿巨人 | 欧美日韩亚洲另类| 久久不见久久见免费视频7| 国产日韩欧美综合一区| 91极品美女在线| 美女网站一区二区| 中文字幕巨乱亚洲| 欧美疯狂做受xxxx富婆| 国产东北露脸精品视频| 一区二区三区中文字幕精品精品 | 蜜臀av性久久久久av蜜臀妖精| 久久色在线视频| 欧美在线观看视频在线| 精品一区二区在线免费观看| 亚洲日本在线天堂| 精品精品欲导航| 色婷婷综合中文久久一本| 久久99久久99小草精品免视看| 亚洲少妇30p| 久久嫩草精品久久久精品| 日本道免费精品一区二区三区| 精品一区二区在线视频| 亚洲妇熟xx妇色黄| 国产精品激情偷乱一区二区∴| 7777精品伊人久久久大香线蕉的| 国产91清纯白嫩初高中在线观看| 日韩成人一区二区三区在线观看| 欧美高清在线视频| 精品国产a毛片| 欧美精品乱人伦久久久久久| 99精品欧美一区| 国产精品自拍在线| 老司机精品视频导航| 亚洲一二三区在线观看| 国产精品久久久久四虎| 欧美精品一区二区三区蜜臀| 欧美日韩中文字幕一区| 色综合久久久久久久久久久| 国产丶欧美丶日本不卡视频| 蜜臀av性久久久久蜜臀av麻豆| 亚洲成av人片在www色猫咪| 综合激情成人伊人| 国产精品视频一二| 国产校园另类小说区| 欧美xxxxxxxx| 精品国产乱码久久久久久浪潮| 欧美一区日本一区韩国一区| 欧美性高清videossexo| 91女厕偷拍女厕偷拍高清| 粉嫩一区二区三区性色av| 国产精品自拍在线| 经典三级视频一区| 国产一区不卡在线| 激情都市一区二区| 激情深爱一区二区| 国产一区激情在线| 国内成+人亚洲+欧美+综合在线| 日本不卡一区二区| 久久精品噜噜噜成人88aⅴ| 奇米影视一区二区三区| 免费一级片91| 狠狠色狠狠色综合| 国产福利一区二区三区视频| 成人高清在线视频| av高清不卡在线| av电影天堂一区二区在线观看| 成人国产在线观看| 91麻豆蜜桃一区二区三区| 91免费视频观看| 在线观看一区二区视频| 91精品国产综合久久久久| 日韩丝袜情趣美女图片| 久久精品欧美一区二区三区不卡 | 欧美电视剧免费全集观看| 精品蜜桃在线看| 国产精品三级电影| 亚洲国产精品人人做人人爽| 蜜臀久久99精品久久久画质超高清| 国产麻豆9l精品三级站| av一二三不卡影片| 91精品国产手机| 国产日韩欧美a| 亚洲综合一区二区三区| 麻豆91在线看| 91首页免费视频| 91麻豆精品国产自产在线观看一区 | 国产一区二区福利| 一本大道av伊人久久综合| 欧美精品久久99久久在免费线| 欧美成人性战久久| 国产精品电影一区二区| 午夜伦欧美伦电影理论片| 国产精品一区二区免费不卡 | 91在线观看地址| 正在播放亚洲一区| 欧美国产日韩a欧美在线观看| 夜夜操天天操亚洲| 国产成人综合网| 欧美日本精品一区二区三区| 中文av一区二区| 免费观看在线综合| 91久久奴性调教| 久久久综合视频| 日韩经典中文字幕一区| 99精品久久久久久| www亚洲一区| 天天av天天翘天天综合网色鬼国产| 国产成人综合在线播放| 这里是久久伊人| 亚洲黄色小视频| 丰满少妇在线播放bd日韩电影| 欧美精品久久久久久久多人混战| 综合久久给合久久狠狠狠97色| 久久狠狠亚洲综合| 91 com成人网| 一区二区三区四区激情| 岛国av在线一区| 精品免费国产二区三区| 免费在线观看日韩欧美| 精品视频全国免费看| 亚洲视频在线一区| 成人高清视频免费观看| 国产拍欧美日韩视频二区| 久久国产婷婷国产香蕉| 7777女厕盗摄久久久| 悠悠色在线精品| jlzzjlzz国产精品久久| 日本一区二区三区视频视频| 麻豆91精品视频| 欧美大片在线观看| 麻豆精品视频在线| 日韩精品一区二区在线观看| 日韩黄色一级片| 91麻豆精品国产综合久久久久久| 亚洲综合偷拍欧美一区色| 91美女蜜桃在线| 一区二区三区中文字幕电影| 一本一道综合狠狠老| 亚洲婷婷在线视频| 一本大道av伊人久久综合| 一区二区三区欧美亚洲| 在线国产亚洲欧美| 天天综合色天天|