cobreak 0.0.3 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a5001f7a0dd1c7fcf88d797680c7ed5b0171850ab975292b3d37b3004d775e5
4
- data.tar.gz: 719ef47f110dc0f72b6d1feb30e8a4aff4ef1f0c51aab766d909881ac5590909
3
+ metadata.gz: 2ba7b5f95bbe02154240d40486b32a78907bf9ceac8f34b0e2a553210c5dd553
4
+ data.tar.gz: d3ac3aec002c8ab20acef7a2d1bae39ec2343cc60eff7fc620e504071143c248
5
5
  SHA512:
6
- metadata.gz: 400ffdecc20b1abdaa6aed69338df523ba7695460fd95cd242c02d79052d02c85fbc6f0cda523c0d14a663132f49c95eddc0bed06e8421b3f74f7036c2b82328
7
- data.tar.gz: a5e9262ba3566ed6b580830e40039d353c081b4c715ef676d3fd94179a0aaa0859175c911bfe7835420400f33c16fa6b11487e79283fa7cacd88c9b396bd5c6c
6
+ metadata.gz: 6af73bb62f17ebc2611c2fdec3b3df6e71b7c4c17496a2057ff52b9e60ccd89e30c965ca82ac1d78d2004159eade0eb67d7068eaf77f8780908b05e50a95303e
7
+ data.tar.gz: 1e3d4e82fbcd1cb43f2b0b23305dd90b9453ce12fd88de8d4eaf40a9af58e46514f3a8324dab7cd63848d570637c727a832ab6b05175cb53d5f5df6258348db3
data/README.md CHANGED
@@ -31,33 +31,20 @@ The CoBreak script is an cipher and cryptography tool made with the purpose of f
31
31
  - SHA-384
32
32
  - SHA-512
33
33
  - RIPEMD-160
34
- ### Installation in termux
35
-
36
- > $ **apt update**
37
-
38
- > $ **apt upgrade**
39
-
40
- > $ **apt install git**
41
-
42
- > $ **apt install ruby**
43
-
44
- > $ **git clone https://github.com/BreakerBox/CoBreak.git/**
45
-
46
- > $ **cd CoBreak**
47
-
48
- > $ **bundle install**
34
+ # Setup
35
+ ---
36
+ ###add to Gemfile:
49
37
 
50
- > $ **ruby CoBreak.rb --help**
38
+ > $ **gem 'cobreak'**
51
39
 
52
- ### Installation in others
40
+ ###and then execute:
53
41
 
54
- > $ **git clone https://github.com/BreakerBox/CoBreak.git/**
42
+ > $ **bundle**
55
43
 
56
- > $ **cd CoBreak**
44
+ ###Or install it yourself as:
57
45
 
58
46
  > $ **bundle install**
59
47
 
60
- > $ **ruby CoBreak --help**
61
48
 
62
49
  ---
63
50
  # Version
data/cobreak.gemspec CHANGED
@@ -1,12 +1,17 @@
1
- Gem::Specification.new do |s|
2
- s.name = 'cobreak'
3
- s.version = '0.0.3'
4
- s.executables << "cobreak"
5
- s.description = "The CoBreak script is an cipher and cryptography tool"
6
- s.authors = ["BreakerBox"]
7
- s.email = 'breakerhtb@gmail.com'
8
- s.summary = "My very first"
9
- s.files = Dir["{lib}/**/*", "bin/*", "*.gemspec", "*.txt", "Gemfile", "LICENSE", "*.md"]
10
- s.homepage = 'https://github.com/BreakerBox/CoBreak.git'
11
- s.license = 'MIT'
1
+ Gem::Specification.new do |info|
2
+ info.name = 'cobreak'
3
+ info.version = '0.0.9'
4
+ info.executables << "cobreak"
5
+ info.description = "The CoBreak script is an cipher and cryptography tool"
6
+ info.add_development_dependency "bundler", "~> 1.5"
7
+ info.add_development_dependency "Digest", "~> 3.0.0"
8
+ info.add_development_dependency "sequel", "~> 5.44.0"
9
+ info.add_development_dependency "sqlite3", "~> 1.4.2"
10
+ info.authors = ["BreakerBox"]
11
+ info.email = 'breakerhtb@gmail.com'
12
+ info.summary = "Force Brute, Cipher, Cryptography"
13
+ info.files = Dir["{lib}/**/*.rb"] + Dir["{lib}/**/show/*.db", "{lib}/**/hash/hash.db", "bin/*.rb", "*.gemspec", "diccionario.txt", "Gemfile", "LICENSE", "*.md"]
14
+ info.homepage = 'https://github.com/BreakerBox/CoBreak'
15
+ info.license = 'MIT'
16
+ info.post_install_message = "thanks for installing my gem"
12
17
  end
@@ -0,0 +1,10 @@
1
+ module CoBreak
2
+ class Binary
3
+ def self.binary(dato)
4
+ return dato.unpack("B*").join('')
5
+ end
6
+ def self.hexbinary(dato)
7
+ return [dato].pack("B*")
8
+ end
9
+ end
10
+ end
@@ -1,16 +1,13 @@
1
1
  class CesarCifrado
2
- attr_accessor :dato
3
- def initialize(dato = nil)
4
- @dato = dato
5
- end
6
2
  def cesar(dato, rotasiones, orientacion = 1)
3
+ cesar = OpenStruct.new
4
+ cesar.cad_rot = []
7
5
  alfa_mayus = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
8
6
  alfa_minus = "abcdefghijklmnopqrstuvwxyz"
9
7
  alf = 26
10
8
  lit_mayus = 65
11
9
  lit_minus = 97
12
10
  cad_rot = ""
13
- print "\e[1;32m[\e[0m+\e[1;32m]\e[0m CipherText: "
14
11
  for letra in dato.chars
15
12
  if !letra.match(/^[[:alpha:]]$/)
16
13
  cad_rot += letra
@@ -25,11 +22,9 @@ class CesarCifrado
25
22
  var_ascii = letra.ord
26
23
  rot_ver = rotasiones * orientacion
27
24
  new_pos = (var_ascii - limit + rot_ver) % alf
28
- cad_rot = alfabeto[new_pos]
29
- print cad_rot
25
+ cesar.cad_rot << alfabeto[new_pos]
30
26
  end
31
- puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Rotations Number: #{rotasiones}"
27
+ return cesar.cad_rot.join('')
32
28
  end
33
29
  end
34
- CifraCesar = CesarCifrado.new
35
- DecifraCesar = CesarCifrado.new
30
+ Cesar = CesarCifrado.new
@@ -2,31 +2,33 @@ require 'base64'
2
2
  require 'base32'
3
3
  require 'base16'
4
4
  require 'ascii85'
5
-
6
- class Cifrado
7
- attr_accessor :data
8
- def initialize(data = nil)
9
- @data = data
10
- end
11
- def base16(dato)
12
- bas16 = Base16.encode16(dato)
13
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas16}\e[0m"
14
- end
15
- def base32(dato)
16
- bas32 = Base32.encode(dato)
17
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas32}\e[0m"
18
- end
19
- def base64(dato)
20
- bas64 = Base64.encode64(dato)
21
- print "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas64}"
22
- end
23
- def binary(dato)
24
- result = dato.unpack("B*").join('')
25
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{result}"
26
- end
27
- def ascii85(dato)
28
- asci85 = Ascii85.encode(dato)
29
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{asci85}"
5
+ require 'cobreak/cesar'
6
+ require 'cobreak/binary'
7
+ module CoBreak
8
+ class Cifrado
9
+ def self.cipher(mode, dato)
10
+ cipher = OpenStruct.new
11
+ cipher.mode = mode
12
+ cipher.dato = dato
13
+ if (cipher.mode.eql?('base16'))
14
+ cipher.result = Base16.encode16(dato)
15
+ elsif (cipher.mode.eql?('base32'))
16
+ cipher.result = Base32.encode(dato)
17
+ elsif (cipher.mode.eql?('base64'))
18
+ cipher.result = Base64.encode64(dato)
19
+ elsif (cipher.mode.eql?('ascii85'))
20
+ cipher.result = Ascii85.encode(dato)
21
+ elsif (cipher.mode.eql?('cesar'))
22
+ cipher.result = Cesar.cesar(dato, ARGV[0].to_i)
23
+ elsif (cipher.mode.eql?('binary'))
24
+ cipher.result = CoBreak::Binary.binary(dato)
25
+ end
26
+ unless (cipher.result.nil?) or (cipher.result.eql?(cipher.dato))
27
+ puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{cipher.result}"
28
+ puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Number Rotations: #{ARGV[0]}" if (cipher.mode.eql?('cesar'))
29
+ else
30
+ puts "\e[1;31m[\e[0m+\e[1;31m]\e[0m Not Cipher Text..."
31
+ end
32
+ end
30
33
  end
31
34
  end
32
- Cifra = Cifrado.new
@@ -8,7 +8,6 @@ module CoBreak
8
8
  begin
9
9
  require 'cobreak/cifrado'
10
10
  require 'cobreak/decifrado'
11
- require 'cobreak/Cesar'
12
11
  require 'cobreak/encrypt'
13
12
  require 'cobreak/decrypt'
14
13
  rescue LoadError => e
@@ -23,72 +22,25 @@ module CoBreak
23
22
  @options = $options
24
23
  @options.enc = "" if @options.enc.nil? == true
25
24
  @options.dec = "" if @options.dec.nil? == true
26
- if (@options.enc.casecmp?('base16')) or (@options.dec.casecmp?('base16'));
25
+ @options.cipher = %w[Base16 Base32 Base64 Ascii85 Binary Cesar]
26
+ if (@options.cipher.include?(@options.enc.capitalize)) or (@options.cipher.include?(@options.dec.capitalize));
27
27
  if (File.exists?(@options.algo));
28
28
  IO.foreach(@options.algo){|line|
29
- line.chomp!
30
- Cifra::base16(line.to_s) if (@options.enc.casecmp?('base16'))
31
- Decifra::base16(line.to_s) if (@options.dec.casecmp?('base16'))
29
+ line.chomp!
30
+ if (@options.cipher?(@options.enc.capitalize))
31
+ CoBreak::Cifrado.cipher(line.to_s)
32
+ end
33
+ if (@options.cipher.include?(@options.dec.capitalize))
34
+ CoBreak::Decifrado.cipher(line.to_s)
35
+ end
32
36
  }
33
- else;
34
- Cifra::base16(@options.algo.to_s) if (@options.enc.casecmp?('base16'))
35
- Decifra::base16(@options.algo.to_s) if (@options.dec.casecmp?('base16'))
36
- end
37
- elsif (@options.enc.casecmp?('base32')) or (@options.dec.casecmp?('base32'));
38
- if (File.exists?(@options.algo));
39
- IO.foreach(@options.algo){|line|
40
- line.chomp!
41
- Cifra::base32(line.to_s) if (@options.enc.casecmp?('base32'))
42
- Decifra::base32(line.to_s) if (@options.dec.casecmp('base32'))
43
- }
44
- else;
45
- Cifra::base32(@options.algo.to_s) if (@options.enc.casecmp?('base32'))
46
- Decifra::base32(@options.algo.to_s) if (@options.dec.casecmp?('base32'))
47
- end
48
- elsif (@options.enc.casecmp?('base64')) or (@options.dec.casecmp?('base64'));
49
- if (File.exists?(@options.algo));
50
- IO.foreach(@options.algo){|line|
51
- line.chomp!
52
- Cifra::base64(line.to_s) if (@options.enc.casecmp?('base64'))
53
- Decifra::base64(line.to_s) if (@options.dec.casecmp?('base64'))
54
- }
55
- else;
56
- Cifra::base64(@options.algo.to_s) if (@options.enc.casecmp?('base64'))
57
- Decifra::base64(@options.algo.to_s) if (@options.dec.casecmp?('base64'))
58
- end
59
- elsif (@options.enc.casecmp?('ascii85')) or (@options.dec.casecmp?('ascii85'));
60
- if (File.exists?(@options.algo));
61
- IO.foreach(@options.algo){|line|
62
- line.chomp!
63
- Cifra::ascii85(line.to_s) if (@options.enc.casecmp?('ascii85'))
64
- Decifra::ascii85(line.to_s) if (@options.dec.casecmp?('ascii85'))
65
- }
66
- else;
67
- Cifra::ascii85(@options.algo.to_s) if (@options.enc.casecmp?('ascii85'))
68
- Decifra::ascii85(@options.algo.to_s) if (@options.dec.casecmp?('ascii85'))
69
- end
70
- elsif (@options.enc.casecmp?('binary')) or (@options.dec.casecmp?('binary'));
71
- if (File.exists?(@options.algo));
72
- IO.foreach(@options.algo){|line|
73
- line.chomp!
74
- Cifra::binary(line.to_s) if (@options.enc.casecmp?('binary'))
75
- Decifra::binary(line.to_s) if (@options.dec.casecmp?('binary'))
76
- }
77
- else;
78
- Cifra::binary(@options.algo.to_s) if (@options.enc.casecmp?('binary'))
79
- Decifra::binary(@options.algo.to_s) if (@options.dec.casecmp?('binary'))
80
- end
81
- elsif (@options.enc.casecmp?('cesar')) or (@options.dec.casecmp?('cesar'));
82
- dat = ARGV[0]
83
- if (File.exists?(@options.algo));
84
- IO.foreach(@options.algo){|line|
85
- line.chomp!
86
- CifraCesar::cesar(line.to_s, dat.to_i) if (@options.enc.casecmp?('cesar'))
87
- DecifraCesar::cesar(line.to_s, dat.to_i, -1) if (@options.dec.casecmp?('cesar'))
88
- }
89
- else;
90
- CifraCesar::cesar(@options.algo.to_s, dat.to_i) if (@options.enc.casecmp?('cesar'))
91
- DecifraCesar::cesar(@options.algo.to_s, dat.to_i, -1) if (@options.dec.casecmp?('cesar'))
37
+ else
38
+ if (@options.cipher.include?(@options.enc.capitalize))
39
+ CoBreak::Cifrado::cipher(@options.enc, @options.algo.to_s)
40
+ end
41
+ if (@options.cipher.include?(@options.dec.capitalize))
42
+ CoBreak::Decifrado::cipher(@options.dec,@options.algo.to_s)
43
+ end
92
44
  end
93
45
  end
94
46
  end
@@ -98,94 +50,25 @@ module CoBreak
98
50
  @options = $options
99
51
  @options.encrypt = "" if @options.encrypt.nil? == true
100
52
  @options.decrypt = "" if @options.decrypt.nil? == true
101
- if (@options.encrypt.casecmp?("md4")) or (@options.decrypt.casecmp?("md4"));
102
- if (File.exists?(@options.algo));
103
- IO.foreach(@options.algo){|line|
104
- line.chomp!
105
- EnCrypt::md4(line) if (@options.encrypt.casecmp?("md4"))
106
- DeCrypt::md4(line) if (@options.decrypt.casecmp?("md4"))
107
- }
108
- else
109
- EnCrypt::md4(@options.algo) if (@options.encrypt.casecmp?("md4"))
110
- DeCrypt::md4(@options.algo) if (@options.decrypt.casecmp?("md4"))
111
- end
112
- elsif (@options.encrypt.casecmp?("md5")) or (@options.decrypt.casecmp?("md5"));
113
- if (File.exists?(@options.algo));
114
- IO.foreach(@options.algo){|line|
115
- line.chomp!
116
- EnCrypt::md5(line) if (@options.encrypt.casecmp?("md5"))
117
- DeCrypt::md5(line) if (@options.decrypt.casecmp?("md5"))
118
- }
119
- else
120
- EnCrypt::md5(@options.algo) if (@options.encrypt.casecmp?("md5"))
121
- DeCrypt::md5(@options.algo) if (@options.decrypt.casecmp?("md5"))
122
- end
123
- elsif (@options.encrypt.casecmp?("sha1")) or (@options.decrypt.casecmp?("sha1"))
124
- if (File.exists?(@options.algo));
125
- IO.foreach(@options.algo){|line|
126
- line.chomp!
127
- EnCrypt::sha1(line) if (@options.encrypt.casecmp?("sha1"))
128
- DeCrypt::sha1(line) if (@options.decrypt.casecmp?("sha1"))
129
- }
130
- else
131
- EnCrypt::sha1(@options.algo) if (@options.encrypt.casecmp?("sha1"))
132
- DeCrypt::sha1(@options.algo) if (@options.decrypt.casecmp?("sha1"))
133
- end
134
- elsif (@options.encrypt.casecmp?("sha224")) or (@options.decrypt.casecmp?("sha224"));
135
- if (File.exists?(@options.algo));
136
- IO.foreach(@options.algo){|line|
137
- line.chomp!
138
- EnCrypt::sha224(line) if (@options.encrypt.casecmp?("sha224"))
139
- DeCrypt::sha224(line) if (@options.decrypt.casecmp?("sha224"))
140
- }
141
- else
142
- EnCrypt::sha224(@options.algo) if (@options.encrypt.casecmp?("sha224"))
143
- DeCrypt::sha224(@options.algo) if (@options.decrypt.casecmp?("sha224"))
144
- end
145
- elsif (@options.encrypt.casecmp?("sha256")) or (@options.decrypt.casecmp?("sha256"));
146
- if (File.exists?(@options.algo));
147
- IO.foreach(@options.algo){|line|
148
- line.chomp!
149
- EnCrypt::sha256(line) if (@options.encrypt.casecmp?("sha256"))
150
- DeCrypt::sha256(line) if (@options.decrypt.casecmp?("sha256"))
151
- }
152
- else
153
- EnCrypt::sha256(@options.algo) if (@options.encrypt.casecmp?("sha256"))
154
- DeCrypt::sha256(@options.algo) if (@options.decrypt.casecmp?("sha256"))
155
- end
156
- elsif (@options.encrypt.casecmp?("sha384")) or (@options.decrypt.casecmp?("sha384"));
157
- if (File.exists?(@options.algo));
158
- IO.foreach(@options.algo){|line|
159
- line.chomp!
160
- EnCrypt::sha384(line) if (@options.encrypt.casecmp?("sha384"))
161
- DeCrypt::sha384(line) if (@options.decrypt.casecmp?("sha384"))
162
- }
163
- else
164
- EnCrypt::sha384(@options.algo) if (@options.encrypt.casecmp?("sha384"))
165
- DeCrypt::sha384(@options.algo) if (@options.decrypt.casecmp?("sha384"))
166
- end
167
- elsif (@options.encrypt.casecmp?("sha512")) or (@options.decrypt.casecmp?("sha512"));
168
- if (File.exists?(@options.algo));
169
- IO.foreach(@options.algo){|line|
170
- line.chomp!
171
- EnCrypt::sha512(line) if (@options.encrypt.casecmp?("sha512"))
172
- DeCrypt::sha512(line) if (@options.decrypt.casecmp?("sha512"))
173
- }
174
- else
175
- EnCrypt::sha512(@options.algo) if (@options.encrypt.casecmp?("sha512"))
176
- DeCrypt::sha512(@options.algo) if (@options.decrypt.casecmp?("sha512"))
177
- end
178
- elsif (@options.encrypt.casecmp?("ripemd160")) or (@options.decrypt.casecmp?("ripemd160"));
53
+ show = OpenStruct.new
54
+ show.hash = %w[MD4 MD5 SHA1 SHA224 SHA256 SHA384 SHA512 RIPEMD160]
55
+ if (show.hash.include?(@options.encrypt.upcase)) or (show.hash.include?(@options.decrypt.upcase));
179
56
  if (File.exists?(@options.algo));
180
57
  IO.foreach(@options.algo){|line|
181
- line.chomp!
182
- EnCrypt::ripemd160(line) if (@options.encrypt.casecmp?("ripemd160"))
183
- DeCrypt::ripemd160(line) if (@options.decrypt.casecmp?("ripemd160"))
58
+ line.chomp!
59
+ EnCrypt::show(@options.encrypt, line) if (show.hash.include?(@options.encrypt.upcase))
60
+ DeCrypt::show(@options.decrypt, line) if (show.hash.include?(@options.decrypt.upcase))
184
61
  }
185
62
  else
186
- EnCrypt::ripemd160(@options.algo) if (@options.encrypt.casecmp?("ripemd160"))
187
- DeCrypt::ripemd160(@options.algo) if (@options.decrypt.casecmp?("ripemd160"))
63
+ if (show.hash.include?(@options.encrypt.upcase))
64
+ EnCrypt::show(@options.encrypt, @options.algo)
65
+ end
66
+ if (show.hash.include?(@options.decrypt.upcase))
67
+ DeCrypt::show(@options.decrypt, @options.algo)
68
+ end
188
69
  end
70
+ else
71
+ abort "\e[31m[\e[0m✘\e[31m]\e[0m Invalid Hash Format"
189
72
  end
190
73
  end
191
74
  end
@@ -2,31 +2,33 @@ require 'base64'
2
2
  require 'base32'
3
3
  require 'base16'
4
4
  require 'ascii85'
5
-
6
- class Decifrado
7
- attr_accessor :data
8
- def initialize(data = nil)
9
- @data = data
10
- end
11
- def base16(dato)
12
- bas16 = Base16.decode16(dato)
13
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas16}\e[0m"
14
- end
15
- def base32(dato)
16
- bas32 = Base32.decode(dato)
17
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas32}\e[0m"
18
- end
19
- def base64(dato)
20
- bas64 = Base64.decode64(dato)
21
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas64}"
22
- end
23
- def binary(dato)
24
- result = [dato].pack("B*")
25
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{result}"
26
- end
27
- def ascii85(dato)
28
- asci85 = Ascii85.decode(dato)
29
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{asci85}"
5
+ require 'cobreak/cesar'
6
+ require 'cobreak/binary'
7
+ module CoBreak
8
+ class Decifrado
9
+ def self.cipher(mode, dato)
10
+ decipher = OpenStruct.new
11
+ decipher.mode = mode
12
+ decipher.dato = dato
13
+ if (decipher.mode.eql?('base16'))
14
+ decipher.result = Base16.decode16(decipher.dato)
15
+ elsif (decipher.mode.eql?('base32'))
16
+ decipher.result = Base32.decode(decipher.dato)
17
+ elsif (decipher.mode.eql?('base64'))
18
+ decipher.result = Base64.decode64(decipher.dato)
19
+ elsif (decipher.mode.eql?('ascii85'))
20
+ decipher.result = Ascii85.decode(decipher.dato)
21
+ elsif (decipher.mode.eql?('cesar'))
22
+ decipher.result = Cesar.cesar(decipher.dato, ARGV[0].to_i, -1)
23
+ elsif (decipher.mode.eql?('binary'))
24
+ decipher.result = CoBreak::Binary.hexbinary(decipher.dato)
25
+ end
26
+ unless (decipher.result.nil?) or (decipher.result.eql?(decipher.dato))
27
+ puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{decipher.result}"
28
+ puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Number Rotations: #{ARGV[0]}" if (decipher.mode.eql?('cesar'))
29
+ else
30
+ puts "\e[1;31m[\e[0m+\e[1;31m]\e[0m Not Cipher Text..."
31
+ end
32
+ end
30
33
  end
31
34
  end
32
- Decifra = Decifrado.new