flowtag 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in flowtag.gemspec
4
+ gemspec
@@ -1,4 +1,6 @@
1
- Copyright (c) 2011 Chris Lee, PhD
1
+ Copyright (c) 2013 chrislee35
2
+
3
+ MIT License
2
4
 
3
5
  Permission is hereby granted, free of charge, to any person obtaining
4
6
  a copy of this software and associated documentation files (the
@@ -1,4 +1,5 @@
1
- = flowtag
1
+ # Flowtag
2
+
2
3
  FlowTag is an interactive network trace viewer. It operates on PCAP files, produces a database of flows, and then visualizes the results. The user can then filter for flows of interest, view the payload, and tag the flow with relevant keywords. The current version is written in Ruby using the Tk interface. The code is released under GPL, except the pcapparser library, which is released under LGPL.
3
4
 
4
5
  <img src='http://chrislee.dhs.org/projects/flowtag/flowtag2.png' />
@@ -14,18 +15,28 @@ The interface is comprised of 6 main elements as follows:
14
15
 
15
16
  The FlowTag package contains 3 command-line tools in addition to the GUI. These tools are provided to telp with simple automation and scripting. pcap2flowdb creates a flow database from a pcap file. The database can then be read by the listflows and printflow tools. The listflows tool lists all the flow tuples contained in the flow database. The printflow tool outputs the payload of a specified flow.
16
17
 
17
- == Contributing to flowtag
18
-
19
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
20
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
21
- * Fork the project
22
- * Start a feature/bugfix branch
23
- * Commit and push until you are happy with your contribution
24
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
25
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
18
+ ## Installation
19
+
20
+ Add this line to your application's Gemfile:
21
+
22
+ gem 'flowtag'
23
+
24
+ And then execute:
25
+
26
+ $ bundle
27
+
28
+ Or install it yourself as:
29
+
30
+ $ gem install flowtag
31
+
32
+ ## Usage
26
33
 
27
- == Copyright
34
+ flowtag test.pcap
28
35
 
29
- Copyright (c) 2011 Chris Lee, PhD. See LICENSE.txt for
30
- further details.
36
+ ## Contributing
31
37
 
38
+ 1. Fork it
39
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
40
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
41
+ 4. Push to the branch (`git push origin my-new-feature`)
42
+ 5. Create new Pull Request
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << 'lib'
8
+ t.test_files = FileList['test/test_*.rb']
9
+ t.verbose = true
10
+ end
11
+
12
+ task :default => :test
@@ -1,4 +1,4 @@
1
- #! /opt/local/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  # DESCRIPTION: presents the user with a GUI interface to visualize and explore flows found from a given pcap file.
3
3
  # FLOWTAG - parses and visualizes pcap data
4
4
  # Copyright (C) 2007 Christopher Lee
@@ -23,10 +23,8 @@ end
23
23
 
24
24
  require 'tk' # this takes a long time to load
25
25
  require 'tk/labelframe'
26
- require 'flowtag/flowdb'
27
- require 'flowtag/flowcanvas'
28
- require 'flowtag/flowtable'
29
- require 'tk-double-slider'
26
+ require 'flowtag'
27
+ require 'tk/doubleslider'
30
28
 
31
29
  def select_cb(flows)
32
30
  $flowtable.clear
@@ -1,4 +1,4 @@
1
- #! /opt/local/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  # DESCRIPTION: is part of the flowtag toolkit and prints the flows from a flowdb
3
3
  # FLOWTAG - parses and visualizes pcap data
4
4
  # Copyright (C) 2007 Christopher Lee
@@ -1,4 +1,4 @@
1
- #! /opt/local/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  # DESCRIPTION: is part of the flowtag toolkit and generates a flow database from a pcap file
3
3
  # Copyright (C) 2007 Christopher Lee
4
4
  #
@@ -1,4 +1,4 @@
1
- #! /opt/local/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  # DESCRIPTION: is part of the flowtag toolkit and prints the contents of an indicated flow
3
3
  # FLOWTAG - parses and visualizes pcap data
4
4
  # Copyright (C) 2007 Christopher Lee
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'flowtag/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "flowtag"
8
+ spec.version = Flowtag::VERSION
9
+ spec.homepage = "https://rubygems.org/gems/flowtag"
10
+ spec.license = "MIT"
11
+ spec.summary = %q{FlowTag visualizes pcap files for forensic analysis}
12
+ spec.description = %q{presents the user with a GUI interface to visualize and explore flows found from a given pcap file}
13
+ spec.email = ["rubygems@chrislee.dhs.org"]
14
+ spec.authors = ["chrislee35"]
15
+ spec.executables = ["flowtag","ftlistflows","ftpcap2flowdb","ftprintflow"]
16
+
17
+ spec.add_runtime_dependency "tk-doubleslider", ">= 0.1.1"
18
+ spec.add_runtime_dependency "tk-parallelcoordinates", ">= 0.1.1"
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "rake"
22
+
23
+ spec.signing_key = "#{File.dirname(__FILE__)}/../gem-private_key.pem"
24
+ spec.cert_chain = ["#{File.dirname(__FILE__)}/../gem-public_cert.pem"]
25
+
26
+ spec.require_paths = ["lib"]
27
+ spec.files = `git ls-files`.split($/)
28
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
29
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
30
+ end
@@ -1,4 +1,13 @@
1
- require 'flowtag/flowcanvas'
2
- require 'flowtag/flowdb'
3
- require 'flowtag/flowtable'
4
- require 'flowtag/pcapparser'
1
+ unless Kernel.respond_to?(:require_relative)
2
+ module Kernel
3
+ def require_relative(path)
4
+ require File.join(File.dirname(caller[0]), path.to_str)
5
+ end
6
+ end
7
+ end
8
+
9
+ require_relative 'flowtag/version'
10
+ require_relative 'flowtag/flowcanvas'
11
+ require_relative 'flowtag/flowdb'
12
+ require_relative 'flowtag/flowtable'
13
+ require_relative 'flowtag/pcapparser'
@@ -16,7 +16,7 @@
16
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
 
18
18
  require 'date'
19
- require 'tk-parallel-coordinates'
19
+ require 'tk/parallelcoordinates'
20
20
 
21
21
  module FlowTag
22
22
  class FlowCanvas
@@ -103,6 +103,7 @@ module FlowTag
103
103
  }
104
104
  ]
105
105
  @pcp = Tk::ParallelCoordinates.new(parent, 500, 360, model)
106
+ @pcp.field_separator = "|"
106
107
  @pcp.set_select_cb( proc { |tuples| cb_select(tuples) } )
107
108
  @flow_keys = {}
108
109
  @pkt_low = @byte_low = @pkt_high = @byte_high = @time_high = 0
@@ -117,7 +118,7 @@ module FlowTag
117
118
  @time_low = fl[FlowDB::ST] if fl[FlowDB::ST] < @time_low
118
119
  @time_high = fl[FlowDB::ST] if fl[FlowDB::ST] > @time_high
119
120
  next if skip
120
- @pcp.addtuple(key,Tk::ParallelCoordinates::STATE_NORMAL,[fl[FlowDB::DP],fl[FlowDB::SIP]])
121
+ @pcp.addtuple([fl[FlowDB::DP],fl[FlowDB::SIP]])
121
122
  end
122
123
  end
123
124
  end
@@ -0,0 +1,3 @@
1
+ module Flowtag
2
+ VERSION = "2.1.3"
3
+ end
@@ -0,0 +1,3 @@
1
+ require 'test/unit'
2
+ require 'tk'
3
+ require File.expand_path('../../lib/flowtag.rb', __FILE__)
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ 192.168.44.100|72.14.207.99|50697|80|
@@ -0,0 +1,81 @@
1
+ unless Kernel.respond_to?(:require_relative)
2
+ module Kernel
3
+ def require_relative(path)
4
+ require File.join(File.dirname(caller[0]), path.to_str)
5
+ end
6
+ end
7
+ end
8
+
9
+ require_relative 'helper'
10
+
11
+ class TestFlowtag < Test::Unit::TestCase
12
+ #should "create a flowdb from the test.pcap and dump the flows" do
13
+ def test_create_flowdb
14
+ File.unlink('test/test.pcap.flows') if File.exists?('test/test.pcap.flows')
15
+ File.unlink('test/test.pcap.pkts') if File.exists?('test/test.pcap.pkts')
16
+ File.unlink('test/test.pcap.tags') if File.exists?('test/test.pcap.tags')
17
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
18
+ assert(File.exists?('test/test.pcap.flows'))
19
+ assert(File.exists?('test/test.pcap.pkts'))
20
+ assert(File.exists?('test/test.pcap.tags'))
21
+ fdb.dumpflows
22
+ end
23
+
24
+ #should "get the first pktid of the test.pcap" do
25
+ def test_get_first_pktid
26
+ flow = ['192.168.44.100', '72.14.207.99', 50697, 80]
27
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
28
+ pid = fdb.getfirstpktid(*flow)
29
+ assert_equal(0,pid)
30
+ end
31
+
32
+ #should "return no tags for the first flow" do
33
+ def test_return_no_tags_for_first_flow
34
+ flow = ['192.168.44.100', '72.14.207.99', 50697, 80]
35
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
36
+ tags = fdb.getflowtags(flow)
37
+ assert_equal(0,tags.length)
38
+ end
39
+
40
+ #should "get all flows tagged with test should be empty" do
41
+ def test_get_all_flows_tagged_with_test_should_be_empty
42
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
43
+ flows = fdb.flows_taggedwith("test")
44
+ assert_equal(0,flows.length)
45
+ end
46
+
47
+ #should "tag the first flow with test and retrieve it" do
48
+ def test_tag_the_first_flow_with_test_and_retrieve_it
49
+ flow = ['192.168.44.100', '72.14.207.99', 50697, 80]
50
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
51
+ fdb.tag_flow(flow,["test"])
52
+ flows = fdb.flows_taggedwith("test")
53
+ assert_equal(1,flows.length)
54
+ end
55
+
56
+ #should "write the tags database and reload" do
57
+ def test_write_tags_database_and_reload
58
+ flow = ['192.168.44.100', '72.14.207.99', 50697, 80]
59
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
60
+ fdb.tag_flow(flow,["test"])
61
+ fdb.writetagdb
62
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
63
+ flows = fdb.flows_taggedwith("test")
64
+ assert_equal(1, flows.length)
65
+ fdb.tag_flow(flow,[])
66
+ fdb.writetagdb
67
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
68
+ flows = fdb.flows_taggedwith("test")
69
+ assert_equal(0, flows.length)
70
+ end
71
+
72
+ #should "list all the tags and receive one, test" do
73
+ def test_list_all_tags_and_receive_test
74
+ flow = ['192.168.44.100', '72.14.207.99', 50697, 80]
75
+ fdb = FlowTag::FlowDB.new('test/test.pcap')
76
+ fdb.tag_flow(flow,["test"])
77
+ tags = fdb.tags
78
+ assert_equal(1, tags.length)
79
+ assert_equal("test", tags[0])
80
+ end
81
+ end
metadata CHANGED
@@ -1,205 +1,172 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: flowtag
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 2
7
- - 1
8
- - 2
9
- version: 2.1.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.3
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
12
- - Chris Lee
7
+ authors:
8
+ - chrislee35
13
9
  autorequire:
14
10
  bindir: bin
15
- cert_chain:
16
- - |
17
- -----BEGIN CERTIFICATE-----
18
- MIIDYjCCAkqgAwIBAgIBADANBgkqhkiG9w0BAQUFADBXMREwDwYDVQQDDAhydWJ5
19
- Z2VtczEYMBYGCgmSJomT8ixkARkWCGNocmlzbGVlMRMwEQYKCZImiZPyLGQBGRYD
20
- ZGhzMRMwEQYKCZImiZPyLGQBGRYDb3JnMB4XDTExMDIyNzE1MzAxOVoXDTEyMDIy
21
- NzE1MzAxOVowVzERMA8GA1UEAwwIcnVieWdlbXMxGDAWBgoJkiaJk/IsZAEZFghj
22
- aHJpc2xlZTETMBEGCgmSJomT8ixkARkWA2RoczETMBEGCgmSJomT8ixkARkWA29y
23
- ZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNM1Hjs6q58sf7Jp64A
24
- vEY2cnRWDdFpD8UWpwaJK5kgSHOVgs+0mtszn+YlYjmx8kpmuYpyU4g9mNMImMQe
25
- ow8pVsL4QBBK/1Ozgdxrsptk3IiTozMYA+g2I/+WvZSEDu9uHkKe8pvMBEMrg7RJ
26
- IN7+jWaPnSzg3DbFwxwOdi+QRw33DjK7oFWcOaaBqWTUpI4epdi/c/FE1I6UWULJ
27
- ZF/Uso0Sc2Pp/YuVhuMHGrUbn7zrWWo76nnK4DTLfXFDbZF5lIXT1w6BtIiN6Ho9
28
- Rdr/W6663hYUo3WMsUSa3I5+PJXEBKmGHIZ2TNFnoFIRHha2fmm1HC9+BTaKwcO9
29
- PLcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQURzsNkZo2rv86Ftc+hVww
30
- RNICMrwwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQBRRw/iNA/PdnvW
31
- OBoNCSr/IiHOGZqMHgPJwyWs68FhThnLc2EyIkuLTQf98ms1/D3p0XX9JsxazvKT
32
- W/in8Mm/R2fkVziSdzqChtw/4Z4bW3c+RF7TgX6SP5cKxNAfKmAPuItcs2Y+7bdS
33
- hr/FktVtT2iAmISRnlEbdaTpfl6N2ZWNT83khV6iOs5xRkX/+0e+GgAv9mE6nqr1
34
- AkuDXMhposxcnFZUrZ3UtMPEe/JnyP7Vv6pvr3qtZm8FidFZU91+rX/fwdyBU8RP
35
- /5l8uLWXXNt1wEbtu4N1I66LwTK2iRrQZE8XtlgZGbxYDFUkiurq3OafF2YwRs6W
36
- 6yhklP75
37
- -----END CERTIFICATE-----
38
-
39
- date: 2012-12-20 00:00:00 -05:00
40
- default_executable:
41
- dependencies:
42
- - !ruby/object:Gem::Dependency
43
- prerelease: false
11
+ cert_chain:
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURZakNDQWtxZ0F3SUJB
14
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJYTVJFd0R3WURWUVFEREFoeWRX
15
+ SjUKWjJWdGN6RVlNQllHQ2dtU0pvbVQ4aXhrQVJrV0NHTm9jbWx6YkdWbE1S
16
+ TXdFUVlLQ1pJbWlaUHlMR1FCR1JZRApaR2h6TVJNd0VRWUtDWkltaVpQeUxH
17
+ UUJHUllEYjNKbk1CNFhEVEV6TURVeU1qRXlOVGswTjFvWERURTBNRFV5Ck1q
18
+ RXlOVGswTjFvd1Z6RVJNQThHQTFVRUF3d0ljblZpZVdkbGJYTXhHREFXQmdv
19
+ SmtpYUprL0lzWkFFWkZnaGoKYUhKcGMyeGxaVEVUTUJFR0NnbVNKb21UOGl4
20
+ a0FSa1dBMlJvY3pFVE1CRUdDZ21TSm9tVDhpeGtBUmtXQTI5eQpaekNDQVNJ
21
+ d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOY1ByeDhC
22
+ WmlXSVI5eFdXRzhJCnRxUjUzOHRTMXQrVUo0RlpGbCsxdnJ0VTlUaXVXWDNW
23
+ ajM3VHdVcGEyZkZremlLMG41S3VwVlRoeUVoY2VtNW0KT0dSanZnclJGYldR
24
+ SlNTc2NJS09wd3FVUkhWS1JwVjlnVnovSG56azhTK3hvdFVSMUJ1bzNVZ3Ir
25
+ STFqSGV3RApDZ3IreSt6Z1pidGp0SHNKdHN1dWprT2NQaEVqalVpbmo2OEw5
26
+ Rno5QmRlSlF0K0lhY2p3QXpVTGl4NmpXQ2h0ClVjK2crMHo4RXNyeWNhMkc2
27
+ STFHc3JnWDZXSHc4ZHlreVFEVDlkQ3RTMmZsQ093U0MxUjBLNVQveEhXNTRm
28
+ KzUKd2N3OG1tNTNLTE5lK3RtZ1ZDNlpIeU1FK3FKc0JuUDZ1eEYwYVRFbkdB
29
+ L2pEQlFEaFFOVEYwWlAvYWJ6eVRzTAp6alVDQXdFQUFhTTVNRGN3Q1FZRFZS
30
+ MFRCQUl3QURBTEJnTlZIUThFQkFNQ0JMQXdIUVlEVlIwT0JCWUVGTzh3Cith
31
+ ZVA3VDZrVkpibENnNmV1c09JSTlEZk1BMEdDU3FHU0liM0RRRUJCUVVBQTRJ
32
+ QkFRQkNReVJKTFhzQm8yRnkKOFc2ZS9XNFJlbVFScmxBdzlESzVPNlU3MUp0
33
+ ZWRWb2Iyb3ErT2Irem1TK1BpZkUyK0wrM1JpSjJINlZUbE96aQp4K0EwNjFN
34
+ VVhoR3JhcVZxNEoyRkM4a3Q0RVF5d0FEMFAwVGE1R1UyNENHU0YwOFkzR2tK
35
+ eTFTYTRYcVRDMllDCm81MXM3SlArdGtDQ3RwVllTZHpKaFRsbGllUkFXQnBH
36
+ VjFkdGFvZVVLRTZ0WVBNQmtvc3hTUmNWR2N6ay9TYzMKN2VRQ3BleFl5OUps
37
+ VUJJOXUzQnFJWTlFK2wrTVNuOGloWFNQbXlLMERncmhhQ3Urdm9hU0ZWT1g2
38
+ WStCNXFibwpqTFhNUXUyWmdJU1l3WE5qTmJHVkhlaHV0ODJVN1U5b2lIb1dj
39
+ ck9HYXphUlVtR085VFhQK2FKTEgwZ3cyZGNLCkFmTWdsWFBpCi0tLS0tRU5E
40
+ IENFUlRJRklDQVRFLS0tLS0K
41
+ date: 2013-06-02 00:00:00.000000000 Z
42
+ dependencies:
43
+ - !ruby/object:Gem::Dependency
44
+ name: tk-doubleslider
45
+ requirement: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: 0.1.1
44
51
  type: :runtime
45
- name: tk-double-slider
46
- version_requirements: &id001 !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- segments:
51
- - 0
52
- - 1
53
- - 0
54
- version: 0.1.0
55
- requirement: *id001
56
- - !ruby/object:Gem::Dependency
57
52
  prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: 0.1.1
59
+ - !ruby/object:Gem::Dependency
60
+ name: tk-parallelcoordinates
61
+ requirement: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: 0.1.1
58
67
  type: :runtime
59
- name: tk-parallel-coordinates
60
- version_requirements: &id002 !ruby/object:Gem::Requirement
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
- - 1
67
- - 0
68
- version: 0.1.0
69
- requirement: *id002
70
- - !ruby/object:Gem::Dependency
71
- prerelease: false
72
- type: :development
73
- name: shoulda
74
- version_requirements: &id003 !ruby/object:Gem::Requirement
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- segments:
79
- - 0
80
- version: "0"
81
- requirement: *id003
82
- - !ruby/object:Gem::Dependency
83
68
  prerelease: false
84
- type: :development
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: 0.1.1
75
+ - !ruby/object:Gem::Dependency
85
76
  name: bundler
86
- version_requirements: &id004 !ruby/object:Gem::Requirement
87
- requirements:
77
+ requirement: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
88
80
  - - ~>
89
- - !ruby/object:Gem::Version
90
- segments:
91
- - 1
92
- - 2
93
- - 3
94
- version: 1.2.3
95
- requirement: *id004
96
- - !ruby/object:Gem::Dependency
97
- prerelease: false
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
98
83
  type: :development
99
- name: jeweler
100
- version_requirements: &id005 !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ~>
103
- - !ruby/object:Gem::Version
104
- segments:
105
- - 1
106
- - 8
107
- - 4
108
- version: 1.8.4
109
- requirement: *id005
110
- - !ruby/object:Gem::Dependency
111
84
  prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: '1.3'
91
+ - !ruby/object:Gem::Dependency
92
+ name: rake
93
+ requirement: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
112
99
  type: :development
113
- name: rcov
114
- version_requirements: &id006 !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- segments:
119
- - 0
120
- version: "0"
121
- requirement: *id006
122
- - !ruby/object:Gem::Dependency
123
- prerelease: false
124
- type: :runtime
125
- name: tk-double-slider
126
- version_requirements: &id007 !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- segments:
131
- - 0
132
- - 1
133
- - 0
134
- version: 0.1.0
135
- requirement: *id007
136
- - !ruby/object:Gem::Dependency
137
100
  prerelease: false
138
- type: :runtime
139
- name: tk-parallel-coordinates
140
- version_requirements: &id008 !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- segments:
145
- - 0
146
- - 1
147
- - 0
148
- version: 0.1.0
149
- requirement: *id008
150
- description: presents the user with a GUI interface to visualize and explore flows found from a given pcap file
151
- email: rubygems@chrislee.dhs.org
152
- executables:
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ description: presents the user with a GUI interface to visualize and explore flows
108
+ found from a given pcap file
109
+ email:
110
+ - rubygems@chrislee.dhs.org
111
+ executables:
153
112
  - flowtag
154
113
  - ftlistflows
155
114
  - ftpcap2flowdb
156
115
  - ftprintflow
157
116
  extensions: []
158
-
159
- extra_rdoc_files:
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - Gemfile
160
121
  - LICENSE.txt
161
- - README.rdoc
162
- files:
122
+ - README.md
123
+ - Rakefile
163
124
  - bin/flowtag
164
125
  - bin/ftlistflows
165
126
  - bin/ftpcap2flowdb
166
127
  - bin/ftprintflow
128
+ - flowtag.gemspec
167
129
  - lib/flowtag.rb
168
130
  - lib/flowtag/flowcanvas.rb
169
131
  - lib/flowtag/flowdb.rb
170
132
  - lib/flowtag/flowtable.rb
171
133
  - lib/flowtag/pcapparser.rb
172
- - LICENSE.txt
173
- - README.rdoc
174
- has_rdoc: true
134
+ - lib/flowtag/version.rb
135
+ - test/helper.rb
136
+ - test/test.pcap
137
+ - test/test.pcap.flows
138
+ - test/test.pcap.pkts
139
+ - test/test.pcap.tags
140
+ - test/test_flowtag.rb
175
141
  homepage: https://rubygems.org/gems/flowtag
176
- licenses:
142
+ licenses:
177
143
  - MIT
178
144
  post_install_message:
179
145
  rdoc_options: []
180
-
181
- require_paths:
146
+ require_paths:
182
147
  - lib
183
- required_ruby_version: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- segments:
188
- - 0
189
- version: "0"
190
- required_rubygems_version: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- segments:
195
- - 0
196
- version: "0"
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
197
160
  requirements: []
198
-
199
161
  rubyforge_project:
200
- rubygems_version: 1.3.6
162
+ rubygems_version: 1.8.25
201
163
  signing_key:
202
164
  specification_version: 3
203
165
  summary: FlowTag visualizes pcap files for forensic analysis
204
- test_files: []
205
-
166
+ test_files:
167
+ - test/helper.rb
168
+ - test/test.pcap
169
+ - test/test.pcap.flows
170
+ - test/test.pcap.pkts
171
+ - test/test.pcap.tags
172
+ - test/test_flowtag.rb
metadata.gz.sig CHANGED
Binary file