Annotation of embedaddon/hping2/docs/APD.txt, revision 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>