Annotation of embedaddon/hping2/docs/APD.txt, revision 1.1.1.1

1.1       misho       1: ARS Packet Description system
                      2: 
                      3:   This document describes the APD format. APD is a way to describe TCP/IP
                      4:   packets, and it is used in high level functions of the ARS library.
                      5:   The general format is the following:
                      6: 
                      7:        layer_type{field_1=value_1,field_2=value_2,...,field_n=value_n}
                      8: 
                      9:   more layers can be combined using the "+" simbol. Example:
                     10: 
                     11:        ip{dst=192.168.1.2}+udp{sport=53,dport=53}+data{file=./dns.packet}
                     12: 
                     13:   You don't need to specify fields that ARS can guess. For example
                     14:   if you don't specify checksums they will be correctly generated
                     15:   in the process of packet compilation.
                     16: 
                     17:   AVAILABLE LAYERS
                     18:   ~~~~~~~~~~~~~~~~
                     19: 
                     20:   A layer type is one of the following:
                     21: 
                     22:        ip                      IP header
                     23:        ipopt.eol               IP option EOL
                     24:        ipopt.nop               IP option NOP
                     25:        ipopt.sec               IP option Security
                     26:        ipopt.sid               IP option Stream ID
                     27:        ipopt.lsrr              IP option Loose Source Routing
                     28:        ipopt.ssrr              IP option Strict Source Routing
                     29:        ipopt.rr                IP option Record Route
                     30:        ipopt.ts                IP option Timestamp
                     31:        udp                     UDP header
                     32:        tcp                     TCP header
                     33:        tcpopt.end              TCP option END
                     34:        tcpopt.nop              TCP option NOP
                     35:        tcpopt.mss              TCP option Max Segment Size
                     36:        tcpopt.wscale           TCP option Window Scale
                     37:        tcpopt.sackperm         TCP option Selective ACK permitted
                     38:        tcpopt.sack             TCP option Selevtive ACK
                     39:        tcpopt.echo             TCP option Echo Request
                     40:        tcpopt.echoreply        TCP option Echo Reply
                     41:        tcpopt.ts               TCP option Timestamp
                     42:        icmp                    ICMP header
                     43:        data                    Generic Data
                     44: 
                     45:   Different fields are defined for different layer types:
                     46: 
                     47:   IP FIELDS:   DESCRIPTION:            POSSIBLE VALUE:
                     48:   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     49:   saddr                Source address          192.168.1.2, or www.yahoo.com
                     50:   daddr                Destination address     192.168.1.2, or www.yahoo.com
                     51:   ihl          IP header len           numerical value
                     52:   ver          IP version              numerical value
                     53:   tos          Type of Service         numerical value
                     54:   totlen       IP tot len              numerical value
                     55:   id           IP packet ID            numerical value
                     56:   fragoff      IP fragment offset      numerical vaule
                     57:   mf           More Fragment           0 or 1
                     58:   df           Dont Fragment           0 or 1
                     59:   rf           Reserved Frag. bit      0 or 1
                     60:   ttl          Time to Live            numerical value
                     61:   proto                ip protocol field       numerical value
                     62:   cksum                ip checksum             numerical value
                     63: 
                     64:   UDP FIELDS:  DESCRIPTION:            POSSIBLE VALUE:
                     65:   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     66:   sport                Source port             numerical value
                     67:   dport                Destination port        numerical value
                     68:   len          UDP len field           numerical value
                     69:   cksum                UDP checksum            numerical value
                     70: 
                     71:   TCP FIELDS:  DESCRIPTION:            POSSIBLE VALUE:
                     72:   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     73:   sport                Source port             numerical value
                     74:   dport                Destination port        numerical value
                     75:   seq          TCP sequence number     numerical value
                     76:   ack          TCP acknowledge number  numerical value
                     77:   x2           TCP reserved bits       numerical value
                     78:   off          TCP header size         numerical value
                     79:   flags                TCP flags               FSRPAUXY (see the example)
                     80:   win          TCP window              numerical value
                     81:   cksum                TCP checksum            numerical value
                     82:   urp          TCP urgent pointer      numerical value
                     83: 
                     84:   ICMP FIELDS: DESCRIPTION:            POSSIBLE VALUE:
                     85:   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     86:   type         ICMP type               numerical value
                     87:   code         ICMP code               numerical value
                     88:   cksum                ICMP cksum              numerical value
                     89:   id           ICMP echo ID            numerical value
                     90:   seq          ICMP echo sequence nr   numerical value
                     91:   gw           ICMP gateway            192.168.1.2 or www.yahoo.com
                     92: 
                     93:   DATA FIELDS: DESCRIPTION:            POSSIBLE VALUE:
                     94:   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     95:   file         Data file               /etc/passwd
                     96:   str          A string                hello world! (no escaping available)
                     97: 
                     98: 
                     99:   Other layer types fields aren't still implemented, anyway
                    100:   most of this contains sane defaults, (like IP record route option
                    101:   and so on).
                    102: 
                    103:   You can specify numerical values as hex, octal and decimal numbers.
                    104: 
                    105:   Decimail:    10
                    106:   Hex:         0xA
                    107:   Octal:       012
                    108: 
                    109:   Examples
                    110:   ~~~~~~~~
                    111: 
                    112:   /* Just an ICMP echo request */
                    113:   ip{saddr=1.2.3.4,daddr=www.yahoo.com}+icmp{type=8,code=0}\
                    114:   +data{str=hello world}
                    115: 
                    116:   /* An ICMP destination unreachable with the quoted UDP packet */
                    117:   ip{saddr=1.2.3.4,daddr=5.6.7.8}+icmp{type=3,code=3}\
                    118:   +ip{saddr=www.yahoo.com,daddr=1.2.3.4}+udp{sport=53,dport=53}\
                    119: 
                    120:   /* A TCP packet with the SYN flag set */
                    121:   ip{saddr=1.2.3.4,daddr=5.6.7.8}+tcp{flags=S,dport=80,sport=10}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>