packetfu 1.1.8 → 1.1.9

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 (84) hide show
  1. data/README.rdoc +11 -12
  2. data/bench/octets.rb +9 -9
  3. data/examples/100kpackets.rb +13 -12
  4. data/examples/ackscan.rb +17 -16
  5. data/examples/arp.rb +36 -35
  6. data/examples/arphood.rb +37 -36
  7. data/examples/dissect_thinger.rb +7 -6
  8. data/examples/ethernet.rb +1 -0
  9. data/examples/examples.rb +1 -0
  10. data/examples/ifconfig.rb +1 -0
  11. data/examples/new-simple-stats.rb +24 -23
  12. data/examples/packetfu-shell.rb +26 -25
  13. data/examples/simple-sniffer.rb +10 -9
  14. data/examples/simple-stats.rb +24 -23
  15. data/examples/slammer.rb +4 -3
  16. data/lib/packetfu.rb +128 -127
  17. data/lib/packetfu/capture.rb +170 -169
  18. data/lib/packetfu/config.rb +53 -52
  19. data/lib/packetfu/inject.rb +57 -56
  20. data/lib/packetfu/packet.rb +529 -528
  21. data/lib/packetfu/pcap.rb +580 -579
  22. data/lib/packetfu/protos/arp.rb +91 -90
  23. data/lib/packetfu/protos/arp/header.rb +159 -158
  24. data/lib/packetfu/protos/arp/mixin.rb +37 -36
  25. data/lib/packetfu/protos/eth.rb +45 -44
  26. data/lib/packetfu/protos/eth/header.rb +244 -243
  27. data/lib/packetfu/protos/eth/mixin.rb +4 -3
  28. data/lib/packetfu/protos/hsrp.rb +70 -69
  29. data/lib/packetfu/protos/hsrp/header.rb +108 -107
  30. data/lib/packetfu/protos/hsrp/mixin.rb +30 -29
  31. data/lib/packetfu/protos/icmp.rb +72 -71
  32. data/lib/packetfu/protos/icmp/header.rb +83 -82
  33. data/lib/packetfu/protos/icmp/mixin.rb +15 -14
  34. data/lib/packetfu/protos/invalid.rb +50 -49
  35. data/lib/packetfu/protos/ip.rb +70 -69
  36. data/lib/packetfu/protos/ip/header.rb +292 -291
  37. data/lib/packetfu/protos/ip/mixin.rb +41 -40
  38. data/lib/packetfu/protos/ipv6.rb +51 -50
  39. data/lib/packetfu/protos/ipv6/header.rb +189 -188
  40. data/lib/packetfu/protos/ipv6/mixin.rb +30 -29
  41. data/lib/packetfu/protos/lldp.rb +3 -1
  42. data/lib/packetfu/protos/lldp/header.rb +1 -0
  43. data/lib/packetfu/protos/lldp/mixin.rb +1 -0
  44. data/lib/packetfu/protos/tcp.rb +177 -176
  45. data/lib/packetfu/protos/tcp/ecn.rb +36 -35
  46. data/lib/packetfu/protos/tcp/flags.rb +75 -74
  47. data/lib/packetfu/protos/tcp/header.rb +269 -268
  48. data/lib/packetfu/protos/tcp/hlen.rb +33 -32
  49. data/lib/packetfu/protos/tcp/mixin.rb +47 -46
  50. data/lib/packetfu/protos/tcp/option.rb +322 -321
  51. data/lib/packetfu/protos/tcp/options.rb +96 -95
  52. data/lib/packetfu/protos/tcp/reserved.rb +36 -35
  53. data/lib/packetfu/protos/udp.rb +117 -116
  54. data/lib/packetfu/protos/udp/header.rb +92 -91
  55. data/lib/packetfu/protos/udp/mixin.rb +4 -3
  56. data/lib/packetfu/structfu.rb +281 -280
  57. data/lib/packetfu/utils.rb +211 -208
  58. data/lib/packetfu/version.rb +42 -41
  59. data/packetfu.gemspec +1 -1
  60. data/spec/ethpacket_spec.rb +48 -48
  61. data/spec/packet_spec.rb +57 -57
  62. data/spec/packet_subclasses_spec.rb +8 -8
  63. data/spec/packetfu_spec.rb +59 -59
  64. data/spec/structfu_spec.rb +268 -268
  65. data/spec/tcp_spec.rb +75 -75
  66. data/test/all_tests.rb +13 -13
  67. data/test/func_lldp.rb +3 -3
  68. data/test/ptest.rb +2 -2
  69. data/test/test_arp.rb +116 -116
  70. data/test/test_capture.rb +45 -45
  71. data/test/test_eth.rb +68 -68
  72. data/test/test_hsrp.rb +9 -9
  73. data/test/test_icmp.rb +52 -52
  74. data/test/test_inject.rb +18 -18
  75. data/test/test_invalid.rb +16 -16
  76. data/test/test_ip.rb +36 -36
  77. data/test/test_ip6.rb +48 -48
  78. data/test/test_octets.rb +21 -21
  79. data/test/test_packet.rb +154 -154
  80. data/test/test_pcap.rb +170 -170
  81. data/test/test_structfu.rb +97 -97
  82. data/test/test_tcp.rb +320 -320
  83. data/test/test_udp.rb +76 -76
  84. metadata +2 -2
data/test/test_udp.rb CHANGED
@@ -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,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packetfu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-06 00:00:00.000000000 Z
12
+ date: 2013-09-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pcaprub