~ubuntu-branches/ubuntu/karmic/xprobe/karmic

« back to all changes in this revision

Viewing changes to src/xprobe_module_param.h

  • Committer: Bazaar Package Importer
  • Author(s): Richard Atterer
  • Date: 2005-02-22 22:54:24 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050222225424-6cqy8rr45pkna819
Tags: 0.2.2-1
New upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: xprobe_module_param.h,v 1.10 2005/02/08 20:00:36 mederchik Exp $ */
 
2
/*
 
3
** Copyright (C) 2001 Fyodor Yarochkin <fygrave@tigerteam.net>,
 
4
**                    Ofir Arkin       <ofir@sys-security.com>
 
5
**
 
6
** This program is free software; you can redistribute it and/or modify
 
7
** it under the terms of the GNU General Public License as published by
 
8
** the Free Software Foundation; either version 2 of the License, or
 
9
** (at your option) any later version.
 
10
**
 
11
**
 
12
** This program is distributed in the hope that it will be useful,
 
13
** but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
** GNU General Public License for more details.
 
16
**
 
17
** You should have received a copy of the GNU General Public License
 
18
** along with this program; if not, write to the Free Software
 
19
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
20
*/
 
21
 
 
22
/*
 
23
 * Changes:
 
24
 *                              -       Feb 12 14:34:04 2003 meder - added type XPROBE_MODULE_PARAM_ZNZORIG,
 
25
 *                                      that required addition of an extra argument to the add_param() and 
 
26
 *                                      check_param() methods;
 
27
 */
 
28
#ifndef XPROBE_MODULE_PARAM_H
 
29
#define XPROBE_MODULE_PARAM_H
 
30
 
 
31
#include "xprobe.h"
 
32
#include "usi++/usi++.h"
 
33
#include "target.h"
 
34
#include "os_matrix.h"
 
35
#include <string>
 
36
 
 
37
using namespace std;
 
38
 
 
39
#define XPROBE_MODULE_PARAM_BOOL                1      /* y/n */
 
40
#define XPROBE_MODULE_PARAM_ZNZ                 2      /* zero, not zero -- !0, 0 */
 
41
#define XPROBE_MODULE_PARAM_INT                 3      /* int - 1234 */
 
42
#define XPROBE_MODULE_PARAM_RANGE               4      /* range - <1, >2, 20-40 */
 
43
#define XPROBE_MODULE_PARAM_ZNZORIG             5               /* zero, not zero, original value(SENT) */
 
44
#define XPROBE_MODULE_PARAM_ZNZVAL              6               /* zero, value, not zero */
 
45
#define XPROBE_MODULE_PARAM_INTLIST             7               /* list of integers (1,2,3,4,...) */
 
46
#define XPROBE_MODULE_PARAM_STRATEGY    8               /* (R)andom, (I)ncremental, 0 */
 
47
 
 
48
#define XPROBE_MODULE_PARAM_FUZZY_DELTA     31
 
49
 
 
50
 
 
51
#define XMP_STRATEGY_RANDOM                             2
 
52
#define XMP_STRATEGY_INCREMENTAL                1
 
53
#define XMP_STRATEGY_ZERO                               0
 
54
#define XMP_STRATEGY_THRESHOLD                  256     
 
55
 
 
56
typedef struct xprobe_module_param_val {
 
57
    int high;
 
58
    int low;
 
59
        vector <int> val_list;
 
60
} xprobe_module_param_t;
 
61
 
 
62
 
 
63
 
 
64
class Xprobe_Module_Param {
 
65
    private:
 
66
        int id;
 
67
        int type;
 
68
        map <int, xprobe_module_param_t> osid_sig;
 
69
        int sig_insert(int os_id, xprobe_module_param_t p);
 
70
    public:
 
71
        Xprobe_Module_Param(int t) { type = t; }
 
72
        virtual ~Xprobe_Module_Param(void) { return; }
 
73
//        virtual int check_param(ICMP *ip_pkt, ICMP *orig_pkt, OS_Matrix *os) =0;    
 
74
        int parse_param(int os_id, const char *param);
 
75
        int add_param(int param, int orig, OS_Matrix *os);
 
76
        void set_id(int i) { id = i; }
 
77
        int get_id(void) { return id; }
 
78
                int gen_match(int cnt, OS_Matrix *os);
 
79
};
 
80
 
 
81
class Xprobe_Module_Param_TCP: public Xprobe_Module_Param {
 
82
        public:
 
83
                Xprobe_Module_Param_TCP(int t): Xprobe_Module_Param(t) { return; }
 
84
                virtual ~Xprobe_Module_Param_TCP(void) { return; }
 
85
                virtual int check_param(TCP *ip_pkt, TCP *orig_pkt, OS_Matrix *os) =0;
 
86
};
 
87
class Xprobe_Module_Param_ICMP: public Xprobe_Module_Param {
 
88
        public:
 
89
                Xprobe_Module_Param_ICMP(int t): Xprobe_Module_Param(t) {return; }
 
90
                virtual ~Xprobe_Module_Param_ICMP(void) { return; }
 
91
                virtual int check_param(ICMP *ip_pkt, ICMP *orig_pkt, OS_Matrix *os) =0;
 
92
};
 
93
 
 
94
 
 
95
#endif /* XPROBE_MODULE_PARAM */