fuzzer 0.3.0 → 0.4.0
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 +15 -0
- data/bin/fuzzer +5 -1
- data/lib/fuzzer/cli.rb +12 -8
- data/lib/fuzzer/gzip.rb +20 -0
- data/lib/fuzzer/version.rb +1 -1
- data/lib/fuzzer.rb +1 -5
- metadata +7 -30
- data/test/test_fuzzer.rb +0 -9
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NGQzMDJhMzE2ZjYzODhhYmIxNDA3N2EwNDE0Zjg5ZjIxYWYzYWJmZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZWZkN2I0ODYyY2Y5YjJlNTJlNWI2NGE2NDkyMGJmYmY4Yjg5ZjBkNQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZTE4MGQ4NTY5YzQxNjZhYjA4MGNlYTlhMTJiNmI0ZTAyY2Q1OWM4MzlhMzI0
|
10
|
+
ZWU3OWJhZTEyNDM0ZTg2ODUzZDJjZGJiYzEzNzllYjhjZjA2ZTdkYWE4OGM3
|
11
|
+
MDRjOWE2YjExMjVjZjFlYzNhM2VlNWEwNDAwYzI1MzlmMWNjN2E=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzY0OWFkYzQ3MmExYmU3ZjczMDc4MzQ0ZWU0NzkzMjUyOTRlN2QxMjdlMDVi
|
14
|
+
NDRmOGJmMDBjMTgzMGM0YjhlMDEyZjIyMjVhMGRjODU5MGMwNTVmNDdhZDA2
|
15
|
+
MjRjNjE2MWM4MDcxMmZhM2FhZWE0NmY0MWNkMDEzOWY4ODAzMGM=
|
data/bin/fuzzer
CHANGED
data/lib/fuzzer/cli.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'yaml'
|
3
|
+
|
1
4
|
module Fuzzer
|
2
5
|
|
3
6
|
class CLI
|
4
7
|
def self.start(argv)
|
5
8
|
url = argv.shift
|
6
9
|
|
7
|
-
data = YAML::
|
10
|
+
data = YAML::load_file("config.yml");
|
8
11
|
if data['secret_access_key'].nil? || data['access_key_id'].nil?
|
9
12
|
puts "In this directory, create a config.yml file with the Amazon secret_access_key: <value> and access_key_id: <value>"
|
10
13
|
exit(1)
|
@@ -19,8 +22,8 @@ class CLI
|
|
19
22
|
end
|
20
23
|
|
21
24
|
begin
|
22
|
-
file_name =
|
23
|
-
short_name =
|
25
|
+
file_name = download(url)
|
26
|
+
short_name = gunzip(file_name)
|
24
27
|
|
25
28
|
# manipulate it
|
26
29
|
puts "We can corrupt this database two ways:"
|
@@ -32,12 +35,13 @@ class CLI
|
|
32
35
|
input = gets.chomp
|
33
36
|
end while (input != "e" && input != "s")
|
34
37
|
|
38
|
+
puts "Working on it..."
|
35
39
|
db = SQLite3::Database.new(short_name)
|
36
|
-
|
37
|
-
|
40
|
+
fuzz_content(db)
|
41
|
+
fuzz_integrity(db) if input == "s"
|
38
42
|
|
39
43
|
# Query as to what should be broken?
|
40
|
-
final_name =
|
44
|
+
final_name = gzip(short_name)
|
41
45
|
upload(data, final_name)
|
42
46
|
rescue Exception => e
|
43
47
|
puts "Well, that didn't end well: #{e.message}"
|
@@ -87,7 +91,7 @@ class CLI
|
|
87
91
|
short_name = file_name.gsub('.gz','')
|
88
92
|
File.open(short_name, "w+") do |file|
|
89
93
|
gunk = File.open(file_name, "rb")
|
90
|
-
file.write(
|
94
|
+
file.write( Fuzzer::Gzip.ungzip(gunk.read))
|
91
95
|
end
|
92
96
|
FileUtils.rm(file_name)
|
93
97
|
puts "Gunzipped the db: #{file_name}"
|
@@ -98,7 +102,7 @@ class CLI
|
|
98
102
|
new_name = file_name.gsub(".db", ".#{Time.now.to_i.to_s}.db.gz")
|
99
103
|
File.open(new_name, "w+") do |file|
|
100
104
|
gunk = File.open(file_name, "rb")
|
101
|
-
file.write(
|
105
|
+
file.write( Fuzzer::Gzip.gzip(gunk.read))
|
102
106
|
end
|
103
107
|
FileUtils.rm(file_name)
|
104
108
|
puts "Gzipped the db: #{new_name}"
|
data/lib/fuzzer/gzip.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Fuzzer
|
2
|
+
class Gzip
|
3
|
+
def self.ungzip(string)
|
4
|
+
strio = StringIO.open(string, 'r')
|
5
|
+
gz = Zlib::GzipReader.new(strio)
|
6
|
+
unzipped = gz.read
|
7
|
+
gz.close
|
8
|
+
unzipped
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.gzip(string)
|
12
|
+
#http://devblog.famundo.com/articles/2007/03/02/serving-compressed-content-from-amazons-s3
|
13
|
+
strio = StringIO.open('', 'w')
|
14
|
+
gz = Zlib::GzipWriter.new(strio)
|
15
|
+
gz.write(string)
|
16
|
+
gz.close
|
17
|
+
strio.string
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/fuzzer/version.rb
CHANGED
data/lib/fuzzer.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fuzzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Alx Dark
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: right_aws
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,23 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: zumobi
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
23
|
requirements:
|
43
24
|
- - ! '>='
|
44
25
|
- !ruby/object:Gem::Version
|
@@ -46,7 +27,6 @@ dependencies:
|
|
46
27
|
- !ruby/object:Gem::Dependency
|
47
28
|
name: sqlite3
|
48
29
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
30
|
requirements:
|
51
31
|
- - ! '>='
|
52
32
|
- !ruby/object:Gem::Version
|
@@ -54,7 +34,6 @@ dependencies:
|
|
54
34
|
type: :runtime
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
38
|
- - ! '>='
|
60
39
|
- !ruby/object:Gem::Version
|
@@ -67,33 +46,31 @@ extensions: []
|
|
67
46
|
extra_rdoc_files: []
|
68
47
|
files:
|
69
48
|
- lib/fuzzer/cli.rb
|
49
|
+
- lib/fuzzer/gzip.rb
|
70
50
|
- lib/fuzzer/version.rb
|
71
51
|
- lib/fuzzer.rb
|
72
|
-
- test/test_fuzzer.rb
|
73
52
|
- bin/fuzzer
|
74
53
|
homepage: ''
|
75
54
|
licenses: []
|
55
|
+
metadata: {}
|
76
56
|
post_install_message:
|
77
57
|
rdoc_options: []
|
78
58
|
require_paths:
|
79
59
|
- lib
|
80
60
|
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
61
|
requirements:
|
83
62
|
- - ! '>='
|
84
63
|
- !ruby/object:Gem::Version
|
85
64
|
version: '0'
|
86
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
66
|
requirements:
|
89
67
|
- - ! '>='
|
90
68
|
- !ruby/object:Gem::Version
|
91
69
|
version: '0'
|
92
70
|
requirements: []
|
93
71
|
rubyforge_project:
|
94
|
-
rubygems_version:
|
72
|
+
rubygems_version: 2.0.6
|
95
73
|
signing_key:
|
96
|
-
specification_version:
|
74
|
+
specification_version: 4
|
97
75
|
summary: Fuzzes client sqlite dbs.
|
98
|
-
test_files:
|
99
|
-
- test/test_fuzzer.rb
|
76
|
+
test_files: []
|
data/test/test_fuzzer.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'rubygems' # Tests don't run without this, in 1.8.7 at least.
|
3
|
-
require 'fuzzer'
|
4
|
-
|
5
|
-
class FuzzerTest < Test::Unit::TestCase
|
6
|
-
def test_output
|
7
|
-
# assert_equal "This is my task".colorize(:color => :green), Fuzzer.new.generate()
|
8
|
-
end
|
9
|
-
end
|