packetgen 3.1.3 → 3.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -1
- data/bin/pgconsole +1 -0
- data/lib/packetgen.rb +33 -4
- data/lib/packetgen/capture.rb +51 -28
- data/lib/packetgen/config.rb +17 -11
- data/lib/packetgen/deprecation.rb +33 -7
- data/lib/packetgen/header.rb +2 -9
- data/lib/packetgen/header/arp.rb +2 -2
- data/lib/packetgen/header/asn1_base.rb +2 -2
- data/lib/packetgen/header/base.rb +70 -74
- data/lib/packetgen/header/bootp.rb +3 -3
- data/lib/packetgen/header/dhcp.rb +2 -2
- data/lib/packetgen/header/dhcp/option.rb +2 -2
- data/lib/packetgen/header/dhcp/options.rb +2 -2
- data/lib/packetgen/header/dhcpv6.rb +12 -12
- data/lib/packetgen/header/dhcpv6/duid.rb +11 -5
- data/lib/packetgen/header/dhcpv6/option.rb +8 -16
- data/lib/packetgen/header/dhcpv6/options.rb +2 -2
- data/lib/packetgen/header/dhcpv6/relay.rb +2 -2
- data/lib/packetgen/header/dns.rb +9 -9
- data/lib/packetgen/header/dns/name.rb +20 -9
- data/lib/packetgen/header/dns/opt.rb +2 -2
- data/lib/packetgen/header/dns/option.rb +2 -2
- data/lib/packetgen/header/dns/qdsection.rb +3 -3
- data/lib/packetgen/header/dns/question.rb +37 -35
- data/lib/packetgen/header/dns/rr.rb +3 -3
- data/lib/packetgen/header/dns/rrsection.rb +2 -2
- data/lib/packetgen/header/dot11.rb +30 -51
- data/lib/packetgen/header/dot11/control.rb +5 -5
- data/lib/packetgen/header/dot11/data.rb +11 -7
- data/lib/packetgen/header/dot11/element.rb +16 -16
- data/lib/packetgen/header/dot11/management.rb +2 -2
- data/lib/packetgen/header/dot11/sub_mngt.rb +2 -12
- data/lib/packetgen/header/dot1q.rb +2 -2
- data/lib/packetgen/header/dot1x.rb +7 -20
- data/lib/packetgen/header/eap.rb +30 -33
- data/lib/packetgen/header/eap/fast.rb +2 -2
- data/lib/packetgen/header/eap/md5.rb +2 -2
- data/lib/packetgen/header/eap/tls.rb +2 -2
- data/lib/packetgen/header/eap/ttls.rb +2 -2
- data/lib/packetgen/header/eth.rb +13 -11
- data/lib/packetgen/header/gre.rb +2 -2
- data/lib/packetgen/header/http.rb +2 -0
- data/lib/packetgen/header/http/headers.rb +6 -4
- data/lib/packetgen/header/http/request.rb +36 -21
- data/lib/packetgen/header/http/response.rb +7 -7
- data/lib/packetgen/header/http/verbs.rb +3 -3
- data/lib/packetgen/header/icmp.rb +2 -2
- data/lib/packetgen/header/icmpv6.rb +2 -2
- data/lib/packetgen/header/igmp.rb +4 -4
- data/lib/packetgen/header/igmpv3.rb +3 -3
- data/lib/packetgen/header/igmpv3/group_record.rb +8 -6
- data/lib/packetgen/header/igmpv3/mq.rb +2 -2
- data/lib/packetgen/header/igmpv3/mr.rb +2 -2
- data/lib/packetgen/header/ip.rb +30 -31
- data/lib/packetgen/header/ip/addr.rb +10 -3
- data/lib/packetgen/header/ip/option.rb +8 -10
- data/lib/packetgen/header/ip/options.rb +3 -5
- data/lib/packetgen/header/ipv6.rb +2 -2
- data/lib/packetgen/header/ipv6/addr.rb +9 -2
- data/lib/packetgen/header/ipv6/extension.rb +2 -2
- data/lib/packetgen/header/ipv6/hop_by_hop.rb +3 -3
- data/lib/packetgen/header/llc.rb +2 -2
- data/lib/packetgen/header/mdns.rb +2 -2
- data/lib/packetgen/header/mld.rb +2 -2
- data/lib/packetgen/header/mldv2.rb +2 -2
- data/lib/packetgen/header/mldv2/mcast_address_record.rb +4 -2
- data/lib/packetgen/header/mldv2/mlq.rb +2 -2
- data/lib/packetgen/header/mldv2/mlr.rb +2 -2
- data/lib/packetgen/header/ospfv2.rb +9 -9
- data/lib/packetgen/header/ospfv2/db_description.rb +2 -2
- data/lib/packetgen/header/ospfv2/hello.rb +2 -2
- data/lib/packetgen/header/ospfv2/ls_ack.rb +2 -2
- data/lib/packetgen/header/ospfv2/ls_request.rb +4 -2
- data/lib/packetgen/header/ospfv2/ls_update.rb +2 -2
- data/lib/packetgen/header/ospfv2/lsa.rb +9 -5
- data/lib/packetgen/header/ospfv2/lsa_header.rb +8 -7
- data/lib/packetgen/header/ospfv3.rb +2 -2
- data/lib/packetgen/header/ospfv3/db_description.rb +2 -2
- data/lib/packetgen/header/ospfv3/hello.rb +2 -2
- data/lib/packetgen/header/ospfv3/ipv6_prefix.rb +4 -2
- data/lib/packetgen/header/ospfv3/ls_ack.rb +2 -2
- data/lib/packetgen/header/ospfv3/ls_request.rb +4 -2
- data/lib/packetgen/header/ospfv3/ls_update.rb +2 -2
- data/lib/packetgen/header/ospfv3/lsa.rb +5 -5
- data/lib/packetgen/header/ospfv3/lsa_header.rb +9 -8
- data/lib/packetgen/header/snmp.rb +33 -29
- data/lib/packetgen/header/tcp.rb +4 -23
- data/lib/packetgen/header/tcp/option.rb +11 -11
- data/lib/packetgen/header/tcp/options.rb +2 -2
- data/lib/packetgen/header/tftp.rb +6 -6
- data/lib/packetgen/header/udp.rb +3 -3
- data/lib/packetgen/headerable.rb +5 -4
- data/lib/packetgen/inject.rb +23 -0
- data/lib/packetgen/inspect.rb +23 -20
- data/lib/packetgen/packet.rb +82 -53
- data/lib/packetgen/pcap.rb +29 -0
- data/lib/packetgen/pcapng.rb +13 -13
- data/lib/packetgen/pcapng/block.rb +26 -13
- data/lib/packetgen/pcapng/epb.rb +25 -22
- data/lib/packetgen/pcapng/file.rb +260 -138
- data/lib/packetgen/pcapng/idb.rb +36 -38
- data/lib/packetgen/pcapng/shb.rb +51 -53
- data/lib/packetgen/pcapng/spb.rb +19 -19
- data/lib/packetgen/pcapng/unknown_block.rb +5 -13
- data/lib/packetgen/pcaprub_wrapper.rb +81 -0
- data/lib/packetgen/proto.rb +2 -2
- data/lib/packetgen/types.rb +3 -0
- data/lib/packetgen/types/abstract_tlv.rb +27 -7
- data/lib/packetgen/types/array.rb +22 -15
- data/lib/packetgen/types/cstring.rb +57 -20
- data/lib/packetgen/types/enum.rb +7 -2
- data/lib/packetgen/types/fieldable.rb +65 -0
- data/lib/packetgen/types/fields.rb +182 -117
- data/lib/packetgen/types/int.rb +18 -6
- data/lib/packetgen/types/int_string.rb +10 -2
- data/lib/packetgen/types/length_from.rb +20 -12
- data/lib/packetgen/types/oui.rb +4 -2
- data/lib/packetgen/types/string.rb +59 -8
- data/lib/packetgen/types/tlv.rb +4 -2
- data/lib/packetgen/utils.rb +4 -4
- data/lib/packetgen/utils/arp_spoofer.rb +2 -2
- data/lib/packetgen/version.rb +3 -3
- metadata +39 -61
- data/.gitignore +0 -13
- data/.rubocop.yml +0 -30
- data/.travis.yml +0 -19
- data/Gemfile +0 -4
- data/Rakefile +0 -21
- data/packetgen.gemspec +0 -36
@@ -1,17 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
# This file is part of PacketGen
|
3
5
|
# See https://github.com/sdaubert/packetgen for more informations
|
4
6
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
5
7
|
# This program is published under MIT license.
|
6
8
|
|
7
|
-
# frozen_string_literal: true
|
8
|
-
|
9
9
|
module PacketGen
|
10
10
|
module Types
|
11
11
|
# Provides a class for creating strings preceeded by their length as a {Int}.
|
12
12
|
# By default, a null string will have one byte length (length byte set to 0).
|
13
13
|
# @author Sylvain Daubert
|
14
14
|
class IntString
|
15
|
+
include Fieldable
|
16
|
+
|
15
17
|
# internal string
|
16
18
|
# @return [String]
|
17
19
|
attr_reader :string
|
@@ -88,6 +90,12 @@ module PacketGen
|
|
88
90
|
def sz
|
89
91
|
to_s.size
|
90
92
|
end
|
93
|
+
|
94
|
+
# Say if IntString is empty
|
95
|
+
# @return [Boolean]
|
96
|
+
def empty?
|
97
|
+
length.zero?
|
98
|
+
end
|
91
99
|
end
|
92
100
|
end
|
93
101
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
# This file is part of PacketGen
|
3
5
|
# See https://github.com/sdaubert/packetgen for more informations
|
4
6
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
5
7
|
# This program is published under MIT license.
|
6
8
|
|
7
|
-
# frozen_string_literal: true
|
8
|
-
|
9
9
|
module PacketGen
|
10
10
|
module Types
|
11
11
|
# This module is a mixin adding +length_from+ capacity to a type.
|
@@ -14,6 +14,9 @@ module PacketGen
|
|
14
14
|
# @author Sylvain Daubert
|
15
15
|
# @since 3.0.0
|
16
16
|
module LengthFrom
|
17
|
+
# Max value returned by {#sz_to_read}.
|
18
|
+
MAX_SZ_TO_READ = 65_535
|
19
|
+
|
17
20
|
# Initialize +length from+ capacity.
|
18
21
|
# Should be call by extensed object's initialize.
|
19
22
|
# @param [Hash] options
|
@@ -29,16 +32,21 @@ module PacketGen
|
|
29
32
|
# @return [String]
|
30
33
|
def read_with_length_from(str)
|
31
34
|
s = PacketGen.force_binary(str.to_s)
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
35
|
+
s[0, sz_to_read]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Size to read, from length_from
|
39
|
+
# @return [Integer]
|
40
|
+
def sz_to_read
|
41
|
+
len = case @length_from
|
42
|
+
when Types::Int
|
43
|
+
@length_from.to_i
|
44
|
+
when Proc
|
45
|
+
@length_from.call
|
46
|
+
else
|
47
|
+
MAX_SZ_TO_READ
|
48
|
+
end
|
49
|
+
[0, len].max
|
42
50
|
end
|
43
51
|
end
|
44
52
|
end
|
data/lib/packetgen/types/oui.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
# This file is part of PacketGen
|
3
5
|
# See https://github.com/sdaubert/packetgen for more informations
|
4
6
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
5
7
|
# This program is published under MIT license.
|
6
8
|
|
7
|
-
# frozen_string_literal: true
|
8
|
-
|
9
9
|
module PacketGen
|
10
10
|
module Types
|
11
11
|
# OUI type, defined as a set of 3 bytes
|
@@ -14,6 +14,8 @@ module PacketGen
|
|
14
14
|
# oui.to_human # => "00:01:02"
|
15
15
|
# @author Sylvain Daubert
|
16
16
|
class OUI < Types::Fields
|
17
|
+
include Fieldable
|
18
|
+
|
17
19
|
# @attribute b2
|
18
20
|
# @return [Integer] left-most byte
|
19
21
|
define_field :b2, Types::Int8
|
@@ -1,20 +1,29 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
# This file is part of PacketGen
|
3
5
|
# See https://github.com/sdaubert/packetgen for more informations
|
4
6
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
5
7
|
# This program is published under MIT license.
|
6
8
|
|
7
|
-
|
9
|
+
require 'forwardable'
|
8
10
|
|
9
11
|
module PacketGen
|
10
12
|
module Types
|
11
|
-
# This class
|
12
|
-
# #{to_human} and {#from_human} methods
|
13
|
-
# to be compatible with others {Types}.
|
13
|
+
# This class mimics regular String, but it is {Fieldable}.
|
14
14
|
# @author Sylvain Daubert
|
15
|
-
|
15
|
+
# @since 3.1.6 no more a subclass or regular String
|
16
|
+
class String
|
17
|
+
extend Forwardable
|
18
|
+
include Fieldable
|
16
19
|
include LengthFrom
|
17
20
|
|
21
|
+
def_delegators :@string, :[], :to_s, :length, :size, :inspect, :==,
|
22
|
+
:unpack, :force_encoding, :encoding, :index, :empty?,
|
23
|
+
:encode, :slice, :slice!, :[]=
|
24
|
+
|
25
|
+
# @return [::String]
|
26
|
+
attr_reader :string
|
18
27
|
# @return [Integer]
|
19
28
|
attr_reader :static_length
|
20
29
|
|
@@ -23,23 +32,65 @@ module PacketGen
|
|
23
32
|
# takes length when reading
|
24
33
|
# @option options [Integer] :static_length set a static length for this string
|
25
34
|
def initialize(options={})
|
26
|
-
|
35
|
+
register_internal_string(+'')
|
27
36
|
initialize_length_from(options)
|
28
37
|
@static_length = options[:static_length]
|
29
38
|
end
|
30
39
|
|
40
|
+
def initialize_copy(_orig)
|
41
|
+
@string = @string.dup
|
42
|
+
end
|
43
|
+
|
31
44
|
# @param [::String] str
|
32
45
|
# @return [String] self
|
33
46
|
def read(str)
|
34
47
|
s = read_with_length_from(str)
|
35
|
-
|
36
|
-
self
|
48
|
+
register_internal_string s
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
alias old_sz_to_read sz_to_read
|
53
|
+
private :old_sz_to_read
|
54
|
+
|
55
|
+
# Size to read.
|
56
|
+
# Computed from static_length or length_from, if defined.
|
57
|
+
# @return [Integer]
|
58
|
+
# @since 3.1.6
|
59
|
+
def sz_to_read
|
60
|
+
return static_length if static_length?
|
61
|
+
|
62
|
+
old_sz_to_read
|
63
|
+
end
|
64
|
+
|
65
|
+
# Say if a static length is defined
|
66
|
+
# @return [Boolean]
|
67
|
+
# @since 3.1.6
|
68
|
+
def static_length?
|
69
|
+
!static_length.nil?
|
70
|
+
end
|
71
|
+
|
72
|
+
def format_inspect
|
73
|
+
inspect
|
74
|
+
end
|
75
|
+
|
76
|
+
# Append the given string to String
|
77
|
+
# @param [#to_s] str
|
78
|
+
# @return [self]
|
79
|
+
def <<(str)
|
80
|
+
@string << str.to_s
|
37
81
|
self
|
38
82
|
end
|
39
83
|
|
40
84
|
alias sz length
|
41
85
|
alias to_human to_s
|
42
86
|
alias from_human read
|
87
|
+
|
88
|
+
private
|
89
|
+
|
90
|
+
def register_internal_string(str)
|
91
|
+
@string = str
|
92
|
+
PacketGen.force_binary(@string)
|
93
|
+
end
|
43
94
|
end
|
44
95
|
end
|
45
96
|
end
|
data/lib/packetgen/types/tlv.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
# This file is part of PacketGen
|
3
5
|
# See https://github.com/sdaubert/packetgen for more informations
|
4
6
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
5
7
|
# This program is published under MIT license.
|
6
8
|
|
7
|
-
# frozen_string_literal: true
|
8
|
-
|
9
9
|
module PacketGen
|
10
10
|
module Types
|
11
11
|
# Class to handle Type-Length-Value attributes
|
@@ -31,6 +31,8 @@ module PacketGen
|
|
31
31
|
# @deprecated Use {AbstractTLV} instead.
|
32
32
|
# @since 3.1.0 deprecated
|
33
33
|
class TLV < Fields
|
34
|
+
include Fieldable
|
35
|
+
|
34
36
|
# @!attribute type
|
35
37
|
# @return [Integer]
|
36
38
|
define_field :type, Int8
|
data/lib/packetgen/utils.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of PacketGen
|
2
4
|
# See https://github.com/sdaubert/packetgen for more informations
|
3
5
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
require_relative 'config'
|
9
9
|
require_relative 'utils/arp_spoofer'
|
10
10
|
|
@@ -53,8 +53,8 @@ module PacketGen
|
|
53
53
|
timeout = options[:timeout] || 1
|
54
54
|
my_hwaddr = Config.instance.hwaddr(iface)
|
55
55
|
arp_pkt = Packet.gen('Eth', dst: 'ff:ff:ff:ff:ff:ff', src: my_hwaddr)
|
56
|
-
|
57
|
-
|
56
|
+
.add('ARP', sha: Config.instance.hwaddr(iface),
|
57
|
+
spa: Config.instance.ipaddr(iface), tpa: ipaddr)
|
58
58
|
|
59
59
|
capture = Capture.new(iface: iface, timeout: timeout, max: 1,
|
60
60
|
filter: "arp src #{ipaddr} and ether dst #{my_hwaddr}")
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of PacketGen
|
2
4
|
# See https://github.com/sdaubert/packetgen for more informations
|
3
5
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen
|
9
9
|
module Utils
|
10
10
|
# @note This class is provided for test purpose.
|
data/lib/packetgen/version.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of PacketGen
|
2
4
|
# See https://github.com/sdaubert/packetgen for more informations
|
3
5
|
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
# PacketGen is a network packet generator and analyzor.
|
9
9
|
#
|
10
10
|
# @author Sylvain Daubert
|
11
11
|
module PacketGen
|
12
12
|
# PacketGen version
|
13
|
-
VERSION = '3.1.
|
13
|
+
VERSION = '3.1.8'
|
14
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packetgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Daubert
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: interfacez
|
@@ -30,68 +30,48 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.12.
|
33
|
+
version: 0.12.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.12.
|
40
|
+
version: 0.12.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rasn1
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.8'
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
50
|
+
version: 0.8.0
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '0.
|
57
|
+
version: '0.8'
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: bundler
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '1.7'
|
68
|
-
- - "<"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '3'
|
71
|
-
type: :development
|
72
|
-
prerelease: false
|
73
|
-
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - ">="
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '1.7'
|
78
|
-
- - "<"
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '3'
|
60
|
+
version: 0.8.0
|
81
61
|
- !ruby/object:Gem::Dependency
|
82
62
|
name: rake
|
83
63
|
requirement: !ruby/object:Gem::Requirement
|
84
64
|
requirements:
|
85
65
|
- - "~>"
|
86
66
|
- !ruby/object:Gem::Version
|
87
|
-
version: '
|
67
|
+
version: '13.0'
|
88
68
|
type: :development
|
89
69
|
prerelease: false
|
90
70
|
version_requirements: !ruby/object:Gem::Requirement
|
91
71
|
requirements:
|
92
72
|
- - "~>"
|
93
73
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
74
|
+
version: '13.0'
|
95
75
|
- !ruby/object:Gem::Dependency
|
96
76
|
name: rspec
|
97
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,20 +86,6 @@ dependencies:
|
|
106
86
|
- - "~>"
|
107
87
|
- !ruby/object:Gem::Version
|
108
88
|
version: '3.7'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: simplecov
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '0.16'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '0.16'
|
123
89
|
- !ruby/object:Gem::Dependency
|
124
90
|
name: yard
|
125
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,21 +100,20 @@ dependencies:
|
|
134
100
|
- - "~>"
|
135
101
|
- !ruby/object:Gem::Version
|
136
102
|
version: '0.9'
|
137
|
-
description:
|
103
|
+
description: |
|
104
|
+
PacketGen is a network packet manipulation library. It allows reading, parsing
|
105
|
+
and sending network packets with fun.
|
138
106
|
email:
|
139
107
|
- sylvain.daubert@laposte.net
|
140
108
|
executables:
|
141
109
|
- pgconsole
|
142
110
|
extensions: []
|
143
|
-
extra_rdoc_files:
|
111
|
+
extra_rdoc_files:
|
112
|
+
- README.md
|
113
|
+
- LICENSE
|
144
114
|
files:
|
145
|
-
- ".gitignore"
|
146
|
-
- ".rubocop.yml"
|
147
|
-
- ".travis.yml"
|
148
|
-
- Gemfile
|
149
115
|
- LICENSE
|
150
116
|
- README.md
|
151
|
-
- Rakefile
|
152
117
|
- bin/pgconsole
|
153
118
|
- lib/packetgen.rb
|
154
119
|
- lib/packetgen/capture.rb
|
@@ -241,8 +206,10 @@ files:
|
|
241
206
|
- lib/packetgen/header/tftp.rb
|
242
207
|
- lib/packetgen/header/udp.rb
|
243
208
|
- lib/packetgen/headerable.rb
|
209
|
+
- lib/packetgen/inject.rb
|
244
210
|
- lib/packetgen/inspect.rb
|
245
211
|
- lib/packetgen/packet.rb
|
212
|
+
- lib/packetgen/pcap.rb
|
246
213
|
- lib/packetgen/pcapng.rb
|
247
214
|
- lib/packetgen/pcapng/block.rb
|
248
215
|
- lib/packetgen/pcapng/epb.rb
|
@@ -251,12 +218,14 @@ files:
|
|
251
218
|
- lib/packetgen/pcapng/shb.rb
|
252
219
|
- lib/packetgen/pcapng/spb.rb
|
253
220
|
- lib/packetgen/pcapng/unknown_block.rb
|
221
|
+
- lib/packetgen/pcaprub_wrapper.rb
|
254
222
|
- lib/packetgen/proto.rb
|
255
223
|
- lib/packetgen/types.rb
|
256
224
|
- lib/packetgen/types/abstract_tlv.rb
|
257
225
|
- lib/packetgen/types/array.rb
|
258
226
|
- lib/packetgen/types/cstring.rb
|
259
227
|
- lib/packetgen/types/enum.rb
|
228
|
+
- lib/packetgen/types/fieldable.rb
|
260
229
|
- lib/packetgen/types/fields.rb
|
261
230
|
- lib/packetgen/types/int.rb
|
262
231
|
- lib/packetgen/types/int_string.rb
|
@@ -267,29 +236,38 @@ files:
|
|
267
236
|
- lib/packetgen/utils.rb
|
268
237
|
- lib/packetgen/utils/arp_spoofer.rb
|
269
238
|
- lib/packetgen/version.rb
|
270
|
-
|
271
|
-
homepage: https://github.com/sdaubert/packetgen
|
239
|
+
homepage:
|
272
240
|
licenses:
|
273
241
|
- MIT
|
274
|
-
metadata:
|
275
|
-
|
276
|
-
|
242
|
+
metadata:
|
243
|
+
homepage_uri: https://github.com/sdaubert/packetgen
|
244
|
+
source_code_uri: https://github.com/sdaubert/packetgen
|
245
|
+
bug_tracker_uri: https://github.com/sdaubert/packetgen/issues
|
246
|
+
documentation_uri: https://www.rubydoc.info/gems/packetgen
|
247
|
+
wiki_uri: https://github.com/sdaubert/packetgen/wiki
|
248
|
+
post_install_message:
|
249
|
+
rdoc_options:
|
250
|
+
- "--title"
|
251
|
+
- PacketGen - network packet dissector
|
252
|
+
- "--main"
|
253
|
+
- README.md
|
254
|
+
- "--inline-source"
|
255
|
+
- "--quiet"
|
277
256
|
require_paths:
|
278
257
|
- lib
|
279
258
|
required_ruby_version: !ruby/object:Gem::Requirement
|
280
259
|
requirements:
|
281
260
|
- - ">="
|
282
261
|
- !ruby/object:Gem::Version
|
283
|
-
version: 2.
|
262
|
+
version: 2.4.0
|
284
263
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
285
264
|
requirements:
|
286
265
|
- - ">="
|
287
266
|
- !ruby/object:Gem::Version
|
288
267
|
version: '0'
|
289
268
|
requirements: []
|
290
|
-
|
291
|
-
|
292
|
-
signing_key:
|
269
|
+
rubygems_version: 3.2.3
|
270
|
+
signing_key:
|
293
271
|
specification_version: 4
|
294
272
|
summary: Network packet generator and dissector
|
295
273
|
test_files: []
|