cobreak 0.0.6 → 1.0.2

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.
@@ -1,5 +1,7 @@
1
1
  #!/bin/env ruby
2
+ require 'ruby_figlet'
2
3
  require 'cobreak/version'
4
+ using RubyFiglet
3
5
  module CoBreak
4
6
  class BruteForze
5
7
  def initialize(options)
@@ -13,21 +15,24 @@ module CoBreak
13
15
  abort "reinstall gem new"
14
16
  end
15
17
  def banner_wordlist()
16
- puts "\e[32m╭─[\e[0m CoBreak: #{CoBreak.version}"
18
+ puts "\e[0;31m"
19
+ puts "cobreak".art("Bloody")
20
+ puts "\e[0m"
21
+ puts "\e[1;32m╭─[\e[37m CoBreak: #{CoBreak.version}"
17
22
  if (File.exists?(@options.wordlist.to_s))
18
- puts "\e[32m├─[\e[0m Wordlist: #{File.expand_path(@options.wordlist)}"
23
+ puts "\e[1;32m├─[\e[37m Wordlist: #{File.expand_path(@options.wordlist)}"
19
24
  else
20
- puts "\e[31m├─[\e[0m WordList Not Found"
25
+ puts "\e[1;31m├─[\e[37m WordList Not Found"
21
26
  end
22
27
  if (@hash.include?(@options.bruteforce.to_s.upcase))
23
- puts "\e[32m├─[\e[0m Type Hash: #{@options.bruteforce.upcase}"
28
+ puts "\e[1;32m├─[\e[37m Type Hash: #{@options.bruteforce.upcase}"
24
29
  else
25
- puts "\e[31m├─[\e[0m Type Hash Not Found"
30
+ puts "\e[1;31m├─[\e[37m Type Hash Not Found"
26
31
  end
27
32
  unless (@options.algo.nil?) or (@options.algo.empty?)
28
- puts "\e[32m╰─[\e[0m Hash: #{@options.algo}\n\n"
33
+ puts "\e[1;32m╰─[\e[37m Hash: #{@options.algo}\n\n"
29
34
  else
30
- puts "\e[31m╰─[\e[0m Hash Not Found"
35
+ puts "\e[1;31m╰─[\e[37m Hash Not Found"
31
36
  end
32
37
  end
33
38
  def wordlist()
@@ -38,41 +43,13 @@ module CoBreak
38
43
  if (File.exists?(@options.algo.to_s))
39
44
  IO.foreach(@options.algo.to_s){|line|
40
45
  line.chomp!
41
- if (@options.bruteforce.to_s.downcase.eql?('md4'))
42
- ForzeBrute::md4(line, @options.wordlist)
43
- elsif (@options.bruteforce.to_s.downcase.eql?('md5'))
44
- ForzeBrute::md5(line, @options.wordlist)
45
- elsif (@options.bruteforce.to_s.downcase.eql?('sha1'))
46
- ForzeBrute::sha1(line, @options.wordlist)
47
- elsif (@options.bruteforce.to_s.downcase.eql?('sha224'))
48
- ForzeBrute::sha224(line, @options.wordlist)
49
- elsif (@options.bruteforce.to_s.downcase.eql?('sha256'))
50
- ForzeBrute::sha256(line, @options.wordlist)
51
- elsif (@options.bruteforce.to_s.downcase.eql?('sha384'))
52
- ForzeBrute::sha384(line, @options.wordlist)
53
- elsif (@options.bruteforce.to_s.downcase.eql?('sha512'))
54
- ForzeBrute::sha512(line, @options.wordlist)
55
- elsif (@options.bruteforce.to_s.downcase.eql?('ripemd160'))
56
- ForzeBrute::ripemd160(line, @options.wordlist)
46
+ if (@hash.include?(@options.bruteforce.to_s.upcase))
47
+ ForzeBrute::word(line, @options.wordlist, @options.bruteforce.to_s)
57
48
  end
58
49
  }
59
50
  else
60
- if (@options.bruteforce.to_s.downcase.eql?('md4'))
61
- ForzeBrute::md4(@options.algo.to_s, @options.wordlist)
62
- elsif (@options.bruteforce.to_s.downcase.eql?('md5'))
63
- ForzeBrute::md5(@options.algo.to_s, @options.wordlist)
64
- elsif (@options.bruteforce.to_s.downcase.eql?('sha1'))
65
- ForzeBrute::sha1(@options.algo.to_s, @options.wordlist)
66
- elsif (@options.bruteforce.to_s.downcase.eql?('sha224'))
67
- ForzeBrute::sha224(@options.algo.to_s, @options.wordlist)
68
- elsif (@options.bruteforce.to_s.downcase.eql?('sha256'))
69
- ForzeBrute::sha256(@options.algo.to_s, @options.wordlist)
70
- elsif (@options.bruteforce.to_s.downcase.eql?('sha384'))
71
- ForzeBrute::sha384(@options.algo.to_s, @options.wordlist)
72
- elsif (@options.bruteforce.to_s.downcase.eql?('sha512'))
73
- ForzeBrute::sha512(@options.algo.to_s, @options.wordlist)
74
- elsif (@options.bruteforce.to_s.downcase.eql?('ripemd160'))
75
- ForzeBrute::ripemd160(@options.algo.to_s, @options.wordlist)
51
+ if (@hash.include?(@options.bruteforce.upcase.to_s))
52
+ ForzeBrute::word(@options.algo.to_s, @options.wordlist, @options.bruteforce.to_s, @options.out, @options.verbose)
76
53
  end
77
54
  end
78
55
  end
@@ -0,0 +1,54 @@
1
+ require 'ostruct'
2
+ require 'ruby_figlet'
3
+ using RubyFiglet
4
+ module CoBreak
5
+ class BruteChars
6
+ def initialize(options)
7
+ @options = options
8
+ @hash = %w[MD4 MD5 SHA1 SHA224 SHA256 SHA384 SHA512 RIPEMD160]
9
+ end
10
+ def banner_chars()
11
+ puts "\e[0;31m"
12
+ puts "cobreak".art("Bloody")
13
+ puts "\e[0m"
14
+ puts "\e[1;32m╭─[\e[1;37m CoBreak: #{CoBreak.version}"
15
+ unless (@options.range.nil?)
16
+ puts "\e[32m├─[\e[1;37m Range: #{@options.range[0]} #{@options.range[1]}"
17
+ else
18
+ puts "\e[31m├─[\e[1;37m Range Not Found"
19
+ end
20
+ unless (@options.chars.nil?) or (@options.chars.empty?)
21
+ puts "\e[32m├─[\e[1;37m Characters: #{@options.chars}"
22
+ else
23
+ puts "\e[31m├─[\e[1;37m Characters Not Found"
24
+ end
25
+ if (@hash.include?(@options.bruteforce.to_s.upcase))
26
+ puts "\e[32m├─[\e[1;37m Type Hash: #{@options.bruteforce.upcase}"
27
+ else
28
+ puts "\e[31m├─[\e[1;37m Type Hash Not Found"
29
+ end
30
+ unless (@options.algo.nil?) or (@options.algo.empty?)
31
+ puts "\e[32m╰─[\e[1;37m Hash: #{@options.algo}\n\n"
32
+ else
33
+ puts "\e[31m╰─[\e[1;37m Hash Not Found"
34
+ end
35
+ end
36
+ def chars()
37
+ # if (@options.range.empty?) or (@options.chars.nil?) or (@param.algo.nil?)
38
+ # abort "\n"
39
+ # end
40
+ if (@hash.include?(@options.bruteforce.upcase))
41
+ if (File.exists?(@options.algo.to_s))
42
+ IO.foreach(@options.algo){|line|
43
+ line.chomp!
44
+ ForzeBrute::chars(line, @options.range, @options.chars, @options.bruteforce, @options.out, @options.verbose)
45
+ }
46
+ else
47
+ if (@hash.include?(@options.bruteforce.upcase))
48
+ ForzeBrute::chars(@options.algo, @options.range, @options.chars, @options.bruteforce, @options.out, @options.verbose)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,4 +1,3 @@
1
- require 'fileutils'
2
1
  require 'sequel'
3
2
  class DataBase
4
3
  $db = Sequel.sqlite
@@ -1,5 +1,3 @@
1
- require 'fileutils'
2
- require 'sequel'
3
1
  require 'cobreak/version'
4
2
  class BaseDato
5
3
  $db = Sequel.sqlite
@@ -0,0 +1 @@
1
+
File without changes
@@ -2,17 +2,17 @@ module CoBreak
2
2
  class List
3
3
  #all list formats and types
4
4
  def initialize(options)
5
- type = Array.new
6
- type << "Base64" << "Base32" << "Base16" << "Ascii85" << "Binary" << "Cesar"
5
+ all = Array.new
6
+ all << "Base64" << "Base32" << "Base16" << "Ascii85" << "Binary" << "Cesar"
7
7
  if (options.list.eql?("type"))
8
8
  puts "\nMode Cipher:"
9
- puts type
9
+ puts all
10
10
  end
11
- format = Array.new
12
- format << "MD4" << "MD5" << "SHA1" << "SHA224" << "SHA256" << "SHA384" << "SHA512" << "RIPEMD160"
11
+ all.clear
12
+ all << "MD4" << "MD5" << "SHA1" << "SHA224" << "SHA256" << "SHA384" << "SHA512" << "RIPEMD160"
13
13
  if (options.list.eql?("format"))
14
14
  puts "\nMode Cryptography:"
15
- puts format
15
+ puts all
16
16
  end
17
17
  end
18
18
  end
@@ -1,31 +1,52 @@
1
- require 'optparse'
2
1
  require 'cobreak/cobreak'
3
2
  require 'cobreak/force_brute'
3
+ require 'cobreak/force_chars'
4
4
  require 'cobreak/version'
5
5
  require 'cobreak/list_all'
6
+ require 'sequel'
7
+ require 'openssl'
6
8
  module CoBreak
7
9
  class ParseOPT
8
10
  def self.optparse(options)
9
11
  begin
10
12
  OptionParser.new do|param|
11
- param.banner = "Usage: CoBreak.rb [--options] [text or file]"
13
+ param.banner = "Usage: cobreak [--mode] [--options] [--input text or file]"
12
14
  param.separator ''
13
15
  param.separator "Mode Cipher:"
14
- param.on('--encoding=[TYPE]', String, 'encoding parameter'){|en_co| options.enc = en_co}
15
- param.on('--decoding=[TYPE]', String, 'decoding parameter'){|de_co| options.dec = de_co}
16
+ param.on('--encoding=[TYPE]', String, 'encoding input text or file'){|en_co| options.enc = en_co}
17
+ param.on('--decoding=[TYPE]', String, 'decoding input text or file'){|de_co| options.dec = de_co}
16
18
  param.separator "Mode Cryptography"
17
19
  param.on('--encrypt=[FORMAT]', String, 'encrypt parameter'){|en_en| options.encrypt = en_en}
18
- param.on('--decrypt=[FORMAT]', String, 'decrypt parameter'){|de_en| options.decrypt = de_en}
19
20
  param.separator "Mode BruteForce"
20
- param.on('--bruteforce=[FORMAT]', String, 'brute force mode to crack a hash'){|modeforce| options.bruteforce = modeforce}
21
+ param.on('--bruteforce=[FORMAT]', String, 'brute force mode to crack a hash'){|modeforce|options.bruteforce = modeforce}
21
22
  param.separator ""
22
23
  param.separator "Options:"
23
24
  param.on('-l', '--list=TYPE or FORMAT', String, 'list cipher types of hash formats'){|lin| options.list = lin}
24
- param.on('-r', '--range MIN MAX', Integer, "word chars length"){|min| options.min = min}
25
- param.on('-c', '--chars CHARACTERS', 'character input to generate word lists'){|chars| options.chars = chars}
25
+ param.on('-r', '--range MIN MAX', Array, "word chars length"){|rang| options.range = rang}
26
+ param.on('-c', '--chars CHARACTERS', String, 'character input to generate word lists'){|chars| options.chars = chars}
26
27
  param.on('-w', '--wordlist=WORDLIST', 'Wordlist mode, read words from FILE or stadin (default: diccionario.txt)'){|wordlist| options.wordlist = wordlist}
28
+ param.on('--show=[FORMAT]', String, 'show decrypted specific hash'){|de_en| options.decrypt = de_en}
27
29
  param.on('-i', '--input FILE or TEXT', String, 'take file or text to carry out the process'){|alg| options.algo = alg}
28
- param.on_tail('-v', '--version', 'show version'){puts "CoBreak version #{CoBreak.version}"; exit}
30
+ param.on('-o', '--output FILe', String, 'output the software'){|out| options.out = out}
31
+ param.on('-v', '--verbose', 'verbose mode'){options.verbose = true}
32
+ param.on('--usage', 'show examples of use of this tool')do
33
+ puts "usage: cobreak [--mode] [--options] [--input] text or file"
34
+ puts ""
35
+ puts "cipher:"
36
+ puts ""
37
+ puts "cobreak --encoding=[TYPE] --input text or file"
38
+ puts "cobreak --decoding=[TYPE] --input text or file"
39
+ puts ""
40
+ puts "note that the cesar cipher mode has to have a number in front to know the rotations"
41
+ puts "examples: --encoding=cesar 5 --input hola"
42
+ puts ""
43
+ puts "bruteforce:"
44
+ puts ""
45
+ puts "cobreak --bruteforce=[FORMAT] --wordlist=[WORDLIST] --input text or file"
46
+ puts "cobreak --bruteforce=[FORMAT] --chars [CHARACTERS] --range MIN MAX --input text or file"
47
+ puts ""
48
+ end
49
+ param.on_tail('-V', '--version', 'show version'){puts "CoBreak version #{CoBreak.version}"; exit}
29
50
  param.on_tail('-h', '--help', 'command to view help parameters'){puts param; exit}
30
51
  param.separator ''
31
52
  end.parse!
@@ -45,15 +66,24 @@ module CoBreak
45
66
  end
46
67
  end
47
68
  CoBreak::Box.var(options)
48
- CoBreak::Box::Cipher.coding()
49
- CoBreak::Box::Cryptgraphy.crypt()
69
+ if !(options.enc.nil?) or !(options.dec.nil?)
70
+ CoBreak::Box::Cipher.coding()
71
+ end
72
+ if !(options.encrypt.nil?) or !(options.decrypt.nil?)
73
+ CoBreak::Box::Cryptgraphy.crypt()
74
+ end
50
75
  CoBreak::List.new(options)
51
76
  unless (options.wordlist.nil?) or (options.wordlist.empty?)
52
77
  bruteforce = CoBreak::BruteForze.new(options)
53
78
  bruteforce.banner_wordlist()
54
79
  bruteforce.wordlist
55
80
  end
81
+ unless (options.chars.nil?) or (options.chars.empty?)
82
+ options.range << ARGV[0].to_i
83
+ brutechars = CoBreak::BruteChars.new(options)
84
+ brutechars.banner_chars()
85
+ brutechars.chars()
86
+ end
56
87
  end
57
88
  end
58
89
  end
59
-
data/lib/cobreak/run.rb CHANGED
File without changes
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -1,5 +1,5 @@
1
1
  module CoBreak
2
2
  def self.version()
3
- return '0.0.6'
3
+ return '1.0.2'
4
4
  end
5
5
  end
data/outputs.txt ADDED
@@ -0,0 +1,17 @@
1
+ ==================================================
2
+ software: CoBreak 1.0.2
3
+ Type Hash: md5
4
+ aaaaaaaaaa
5
+ :a73c45107081c08dd4560206b8ef8205
6
+ ==================================================
7
+ ==================================================
8
+ software: CoBreak 1.0.2
9
+ Type Hash: md5
10
+ aaaaaaaaaa
11
+ :e09c80c42fda55f9d992e59ca6b3307d
12
+ ==================================================
13
+ ==================================================
14
+ software: CoBreak 1.0.2
15
+ Type Hash: md5
16
+ aaaaaaaaaa:a73c45107081c08dd4560206b8ef8205
17
+ ==================================================
data/prueba.txt ADDED
@@ -0,0 +1,4 @@
1
+ ==================================================
2
+ software: CoBreak 1.0.2
3
+ Type Hash: md5
4
+ ==================================================
metadata CHANGED
@@ -1,51 +1,199 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cobreak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - BreakerBox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-30 00:00:00.000000000 Z
11
+ date: 2021-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: Digest
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: openssl
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.2.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.2.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: sequel
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ">="
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0'
47
+ version: 5.44.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.44.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.2
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.4.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: sequel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.45.0
38
76
  - - ">="
39
77
  - !ruby/object:Gem::Version
40
- version: '0'
78
+ version: 2.0.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: 5.45.0
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 2.0.0
41
89
  - !ruby/object:Gem::Dependency
42
90
  name: sqlite3
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 1.4.2
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 1.4.0
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 1.4.2
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 1.4.0
109
+ - !ruby/object:Gem::Dependency
110
+ name: base16
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.0.2
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.0.1
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.0.2
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 0.0.1
129
+ - !ruby/object:Gem::Dependency
130
+ name: base32
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: 0.3.4
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 0.3.0
139
+ type: :runtime
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.3.4
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 0.3.0
149
+ - !ruby/object:Gem::Dependency
150
+ name: base64
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 0.1.0
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 0.0.1
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.1.0
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 0.0.1
169
+ - !ruby/object:Gem::Dependency
170
+ name: Ascii85
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: 1.1.0
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: 1.0.0
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 1.1.0
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 1.0.0
189
+ - !ruby/object:Gem::Dependency
190
+ name: ruby_figlet
43
191
  requirement: !ruby/object:Gem::Requirement
44
192
  requirements:
45
193
  - - ">="
46
194
  - !ruby/object:Gem::Version
47
195
  version: '0'
48
- type: :development
196
+ type: :runtime
49
197
  prerelease: false
50
198
  version_requirements: !ruby/object:Gem::Requirement
51
199
  requirements:
@@ -56,25 +204,31 @@ description: The CoBreak script is an cipher and cryptography tool
56
204
  email: breakerhtb@gmail.com
57
205
  executables:
58
206
  - cobreak
207
+ - cbrdb
59
208
  extensions: []
60
209
  extra_rdoc_files: []
61
210
  files:
62
211
  - Gemfile
63
- - LICENSE
64
212
  - README.md
213
+ - bin/cbrdb
65
214
  - bin/cobreak
66
215
  - cobreak.gemspec
67
216
  - diccionario.txt
217
+ - hash.txt
218
+ - hola.txt
68
219
  - lib/cobreak.rb
69
- - lib/cobreak/Cesar.rb
220
+ - lib/cobreak/binary.rb
221
+ - lib/cobreak/cesar.rb
70
222
  - lib/cobreak/cifrado.rb
71
223
  - lib/cobreak/cobreak.rb
224
+ - lib/cobreak/config/database.db
72
225
  - lib/cobreak/decifrado.rb
73
226
  - lib/cobreak/decrypt.rb
74
227
  - lib/cobreak/details.rb
75
228
  - lib/cobreak/encrypt.rb
76
229
  - lib/cobreak/force.rb
77
230
  - lib/cobreak/force_brute.rb
231
+ - lib/cobreak/force_chars.rb
78
232
  - lib/cobreak/function_db.rb
79
233
  - lib/cobreak/function_hash.rb
80
234
  - lib/cobreak/hash/hash.db
@@ -91,11 +245,12 @@ files:
91
245
  - lib/cobreak/show/sha384.db
92
246
  - lib/cobreak/show/sha512.db
93
247
  - lib/cobreak/version.rb
94
- homepage: https://rubygeminfo.org/breakerbox/cobreak
248
+ - outputs.txt
249
+ - prueba.txt
250
+ homepage: https://github.com/BreakerBox/CoBreak
95
251
  licenses:
96
252
  - MIT
97
- metadata:
98
- source_code_uri: https://github.com/BreakerBox/CoBreak
253
+ metadata: {}
99
254
  post_install_message: thanks for installing my gem
100
255
  rdoc_options: []
101
256
  require_paths:
@@ -111,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
266
  - !ruby/object:Gem::Version
112
267
  version: '0'
113
268
  requirements: []
114
- rubygems_version: 3.2.15
269
+ rubygems_version: 3.2.5
115
270
  signing_key:
116
271
  specification_version: 4
117
272
  summary: Force Brute, Cipher, Cryptography