packetfu 1.1.9 → 1.1.10

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.
Files changed (77) hide show
  1. data/bench/octets.rb +9 -9
  2. data/examples/100kpackets.rb +12 -12
  3. data/examples/ackscan.rb +16 -16
  4. data/examples/arp.rb +35 -35
  5. data/examples/arphood.rb +36 -36
  6. data/examples/dissect_thinger.rb +6 -6
  7. data/examples/new-simple-stats.rb +23 -23
  8. data/examples/packetfu-shell.rb +25 -25
  9. data/examples/simple-sniffer.rb +9 -9
  10. data/examples/simple-stats.rb +23 -23
  11. data/examples/slammer.rb +3 -3
  12. data/lib/packetfu.rb +127 -127
  13. data/lib/packetfu/capture.rb +169 -169
  14. data/lib/packetfu/config.rb +52 -52
  15. data/lib/packetfu/inject.rb +56 -56
  16. data/lib/packetfu/packet.rb +528 -528
  17. data/lib/packetfu/pcap.rb +579 -579
  18. data/lib/packetfu/protos/arp.rb +90 -90
  19. data/lib/packetfu/protos/arp/header.rb +158 -158
  20. data/lib/packetfu/protos/arp/mixin.rb +36 -36
  21. data/lib/packetfu/protos/eth.rb +44 -44
  22. data/lib/packetfu/protos/eth/header.rb +243 -243
  23. data/lib/packetfu/protos/eth/mixin.rb +3 -3
  24. data/lib/packetfu/protos/hsrp.rb +69 -69
  25. data/lib/packetfu/protos/hsrp/header.rb +107 -107
  26. data/lib/packetfu/protos/hsrp/mixin.rb +29 -29
  27. data/lib/packetfu/protos/icmp.rb +71 -71
  28. data/lib/packetfu/protos/icmp/header.rb +82 -82
  29. data/lib/packetfu/protos/icmp/mixin.rb +14 -14
  30. data/lib/packetfu/protos/invalid.rb +49 -49
  31. data/lib/packetfu/protos/ip.rb +69 -69
  32. data/lib/packetfu/protos/ip/header.rb +291 -291
  33. data/lib/packetfu/protos/ip/mixin.rb +40 -40
  34. data/lib/packetfu/protos/ipv6.rb +50 -50
  35. data/lib/packetfu/protos/ipv6/header.rb +188 -188
  36. data/lib/packetfu/protos/ipv6/mixin.rb +29 -29
  37. data/lib/packetfu/protos/tcp.rb +176 -176
  38. data/lib/packetfu/protos/tcp/ecn.rb +35 -35
  39. data/lib/packetfu/protos/tcp/flags.rb +74 -74
  40. data/lib/packetfu/protos/tcp/header.rb +268 -268
  41. data/lib/packetfu/protos/tcp/hlen.rb +32 -32
  42. data/lib/packetfu/protos/tcp/mixin.rb +46 -46
  43. data/lib/packetfu/protos/tcp/option.rb +321 -321
  44. data/lib/packetfu/protos/tcp/options.rb +95 -95
  45. data/lib/packetfu/protos/tcp/reserved.rb +35 -35
  46. data/lib/packetfu/protos/udp.rb +116 -116
  47. data/lib/packetfu/protos/udp/header.rb +91 -91
  48. data/lib/packetfu/protos/udp/mixin.rb +3 -3
  49. data/lib/packetfu/structfu.rb +280 -280
  50. data/lib/packetfu/utils.rb +226 -217
  51. data/lib/packetfu/version.rb +41 -41
  52. data/packetfu.gemspec +2 -1
  53. data/spec/ethpacket_spec.rb +48 -48
  54. data/spec/packet_spec.rb +57 -57
  55. data/spec/packet_subclasses_spec.rb +8 -8
  56. data/spec/packetfu_spec.rb +59 -59
  57. data/spec/structfu_spec.rb +268 -268
  58. data/spec/tcp_spec.rb +75 -75
  59. data/test/all_tests.rb +13 -13
  60. data/test/func_lldp.rb +3 -3
  61. data/test/ptest.rb +2 -2
  62. data/test/test_arp.rb +116 -116
  63. data/test/test_capture.rb +45 -45
  64. data/test/test_eth.rb +68 -68
  65. data/test/test_hsrp.rb +9 -9
  66. data/test/test_icmp.rb +52 -52
  67. data/test/test_inject.rb +18 -18
  68. data/test/test_invalid.rb +16 -16
  69. data/test/test_ip.rb +36 -36
  70. data/test/test_ip6.rb +48 -48
  71. data/test/test_octets.rb +21 -21
  72. data/test/test_packet.rb +154 -154
  73. data/test/test_pcap.rb +170 -170
  74. data/test/test_structfu.rb +97 -97
  75. data/test/test_tcp.rb +320 -320
  76. data/test/test_udp.rb +76 -76
  77. metadata +4 -3
@@ -4,93 +4,93 @@ $:.unshift File.join(File.expand_path(File.dirname(__FILE__)), "..", "lib")
4
4
  require 'packetfu'
5
5
 
6
6
  class String
7
- def bin
8
- self.scan(/../).map {|x| x.to_i(16).chr}.join
9
- end
7
+ def bin
8
+ self.scan(/../).map {|x| x.to_i(16).chr}.join
9
+ end
10
10
  end
11
11
 
12
12
  class UDPTest < Test::Unit::TestCase
13
- include PacketFu
13
+ include PacketFu
14
14
 
15
- def test_udp_header_new
16
- u = UDPHeader.new
17
- assert_kind_of UDPHeader, u
18
- assert_equal(8, u.to_s.size)
19
- assert_equal("\x00\x00\x00\x00\x00\x08\x00\x00", u.to_s)
20
- end
15
+ def test_udp_header_new
16
+ u = UDPHeader.new
17
+ assert_kind_of UDPHeader, u
18
+ assert_equal(8, u.to_s.size)
19
+ assert_equal("\x00\x00\x00\x00\x00\x08\x00\x00", u.to_s)
20
+ end
21
21
 
22
- def test_udp_peek
23
- u = UDPPacket.new
24
- u.ip_saddr = "10.20.30.40"
25
- u.ip_daddr = "50.60.70.80"
26
- u.udp_src = 53
27
- u.udp_dport = 1305
28
- u.payload = "abcdefghijklmnopqrstuvwxyz"
29
- u.recalc
30
- puts "\n"
31
- puts "UDP Peek format: "
32
- puts u.peek
33
- assert (u.peek.size <= 80)
34
- end
22
+ def test_udp_peek
23
+ u = UDPPacket.new
24
+ u.ip_saddr = "10.20.30.40"
25
+ u.ip_daddr = "50.60.70.80"
26
+ u.udp_src = 53
27
+ u.udp_dport = 1305
28
+ u.payload = "abcdefghijklmnopqrstuvwxyz"
29
+ u.recalc
30
+ puts "\n"
31
+ puts "UDP Peek format: "
32
+ puts u.peek
33
+ assert (u.peek.size <= 80)
34
+ end
35
35
 
36
- def test_udp_pcap
37
- u = UDPPacket.new
38
- assert_kind_of UDPPacket, u
39
- u.recalc
40
- u.to_f('udp_test.pcap','a')
41
- u.ip_saddr = "10.20.30.40"
42
- u.ip_daddr = "50.60.70.80"
43
- u.payload = "+some fakey-fake udp packet"
44
- u.udp_src = 1205
45
- u.udp_dst = 13013
46
- u.recalc
47
- u.to_f('udp_test.pcap','a')
48
- end
36
+ def test_udp_pcap
37
+ u = UDPPacket.new
38
+ assert_kind_of UDPPacket, u
39
+ u.recalc
40
+ u.to_f('udp_test.pcap','a')
41
+ u.ip_saddr = "10.20.30.40"
42
+ u.ip_daddr = "50.60.70.80"
43
+ u.payload = "+some fakey-fake udp packet"
44
+ u.udp_src = 1205
45
+ u.udp_dst = 13013
46
+ u.recalc
47
+ u.to_f('udp_test.pcap','a')
48
+ end
49
49
 
50
- def test_udp_read
51
- sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
52
- pkt = Packet.parse(sample_packet)
53
- assert_kind_of UDPPacket, pkt
54
- assert_equal(0x8bf8, pkt.udp_sum.to_i)
55
- pkt.to_f('udp_test.pcap','a')
56
- end
50
+ def test_udp_read
51
+ sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
52
+ pkt = Packet.parse(sample_packet)
53
+ assert_kind_of UDPPacket, pkt
54
+ assert_equal(0x8bf8, pkt.udp_sum.to_i)
55
+ pkt.to_f('udp_test.pcap','a')
56
+ end
57
57
 
58
- def test_udp_checksum
59
- sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
60
- pkt = Packet.parse(sample_packet)
61
- assert_kind_of UDPPacket, pkt
62
- pkt.recalc
63
- assert_equal(0x8bf8, pkt.udp_sum.to_i)
64
- pkt.to_f('udp_test.pcap','a')
65
- end
58
+ def test_udp_checksum
59
+ sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
60
+ pkt = Packet.parse(sample_packet)
61
+ assert_kind_of UDPPacket, pkt
62
+ pkt.recalc
63
+ assert_equal(0x8bf8, pkt.udp_sum.to_i)
64
+ pkt.to_f('udp_test.pcap','a')
65
+ end
66
66
 
67
- def test_udp_read_strip
68
- str = "01005e7ffffa100ba9eb63400800450000a12d7c0000011159b446a5fb7ceffffffacdf3076c008d516e4d2d534541524348202a20485454502f312e310d0a486f73743a3233392e3235352e3235352e3235303a313930300d0a53543a75726e3a736368656d61732d75706e702d6f72673a6465766963653a496e7465726e6574476174657761794465766963653a310d0a4d616e3a22737364703a646973636f766572220d0a4d583a330d0a0d0a".bin
69
- str << "0102".bin # Tacking on a couple extra bites tht we'll strip off.
70
- not_stripped = UDPPacket.new
71
- not_stripped.read(str)
72
- assert_equal 135, not_stripped.udp_header.body.length
73
- stripped = UDPPacket.new
74
- stripped.read(str, :strip => true)
75
- assert_equal 133, stripped.udp_header.body.length
76
- end
67
+ def test_udp_read_strip
68
+ str = "01005e7ffffa100ba9eb63400800450000a12d7c0000011159b446a5fb7ceffffffacdf3076c008d516e4d2d534541524348202a20485454502f312e310d0a486f73743a3233392e3235352e3235352e3235303a313930300d0a53543a75726e3a736368656d61732d75706e702d6f72673a6465766963653a496e7465726e6574476174657761794465766963653a310d0a4d616e3a22737364703a646973636f766572220d0a4d583a330d0a0d0a".bin
69
+ str << "0102".bin # Tacking on a couple extra bites tht we'll strip off.
70
+ not_stripped = UDPPacket.new
71
+ not_stripped.read(str)
72
+ assert_equal 135, not_stripped.udp_header.body.length
73
+ stripped = UDPPacket.new
74
+ stripped.read(str, :strip => true)
75
+ assert_equal 133, stripped.udp_header.body.length
76
+ end
77
77
 
78
- def test_udp_alter
79
- sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
80
- pkt = Packet.parse(sample_packet)
81
- assert_kind_of UDPPacket, pkt
82
- pkt.payload = pkt.payload.gsub(/metasploit/,"MeatPistol")
83
- pkt.recalc
84
- assert_equal(0x8341, pkt.udp_sum)
85
- pkt.to_f('udp_test.pcap','a')
86
- end
78
+ def test_udp_alter
79
+ sample_packet = PcapFile.new.file_to_array(:f => 'sample.pcap')[0]
80
+ pkt = Packet.parse(sample_packet)
81
+ assert_kind_of UDPPacket, pkt
82
+ pkt.payload = pkt.payload.gsub(/metasploit/,"MeatPistol")
83
+ pkt.recalc
84
+ assert_equal(0x8341, pkt.udp_sum)
85
+ pkt.to_f('udp_test.pcap','a')
86
+ end
87
87
 
88
- def test_udp_reread
89
- sample_packet = PacketFu::UDPPacket.new
90
- pkt = Packet.parse(sample_packet.to_s)
91
- assert sample_packet.is_udp?
92
- assert pkt.is_udp?
93
- end
88
+ def test_udp_reread
89
+ sample_packet = PacketFu::UDPPacket.new
90
+ pkt = Packet.parse(sample_packet.to_s)
91
+ assert sample_packet.is_udp?
92
+ assert pkt.is_udp?
93
+ end
94
94
 
95
95
 
96
96
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packetfu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: !binary |-
5
+ MS4xLjEw
5
6
  prerelease:
6
7
  platform: ruby
7
8
  authors:
@@ -9,7 +10,7 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-09-12 00:00:00.000000000 Z
13
+ date: 2014-01-12 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: pcaprub
@@ -201,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
202
  version: '0'
202
203
  requirements: []
203
204
  rubyforge_project: packetfu
204
- rubygems_version: 1.8.25
205
+ rubygems_version: 1.8.24
205
206
  signing_key:
206
207
  specification_version: 3
207
208
  summary: PacketFu is a mid-level packet manipulation library.