packetgen 3.1.3 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|