libGoo 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/bin/example.rb +26 -8
- data/lib/libGoo/error.rb +1 -2
- data/lib/libGoo/helper.rb +77 -0
- data/lib/libGoo/objects.rb +52 -0
- data/lib/libGoo/user.rb +6 -22
- data/lib/libGoo.rb +3 -2
- metadata +4 -3
- data/lib/libGoo/process.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e5926a7270b36fc362ed137c2f218d8eb42a3aa
|
4
|
+
data.tar.gz: a1fa56f3b96d5d13fbffcc8bf77d11b63f04e36d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02739c9c48f32abb583130d481985d5adb2e36a7db081eb7d5fb630e7c0c72902b3647cb371903106e3d332ebf9edff1d5342ba281e1a17245da6f71fd167ab0
|
7
|
+
data.tar.gz: 016581ac79eba465a6da108f70260e06863922c4b3f45ddc2c252de8416ff74dfa0c0163c2675467b66eb2c700fb5d7215583463d42941856b2b602408e988c4
|
data/bin/example.rb
CHANGED
@@ -1,13 +1,31 @@
|
|
1
|
-
#require 'hackex' #Optional
|
2
|
-
require 'libGoo'
|
3
|
-
include LibGoo
|
1
|
+
#require 'hackex' #Optional, dont use that
|
2
|
+
require 'libGoo' #Requiring libGoo
|
3
|
+
include LibGoo #Including libGoo into your script
|
4
|
+
email = 'your@e.mail'
|
5
|
+
password = 'password'
|
4
6
|
|
5
|
-
user = User.new(
|
7
|
+
user = User.new(email, password)
|
6
8
|
#user = User.new(nil, nil, 'YOUR_AUTH_TOKEN_HERE') #Loggining by auth token
|
7
9
|
|
8
10
|
#Methods names as in hackex/request.rb, but you can also use old methods names or translate old ones to new ones by OLD_TO_NEW
|
9
11
|
puts LibGoo::OLD_TO_NEW['getUserProcesses'.to_sym] #=>UserProcesses
|
10
|
-
puts LibGoo::NEW_TO_OLD[
|
11
|
-
puts JSON.pretty_generate
|
12
|
-
puts JSON.pretty_generate user.
|
13
|
-
puts user.
|
12
|
+
puts LibGoo::NEW_TO_OLD['UserProcesses'] #=>getUserProcesses
|
13
|
+
puts JSON.pretty_generate OLD_TO_NEW #Prints out methods names
|
14
|
+
#puts JSON.pretty_generate user.VictimInfo(590331)
|
15
|
+
#puts JSON.pretty_generate user.user
|
16
|
+
puts user.auth_token #=>B13C1313-1313-A13D-13E1-ACB13F131B13 #example
|
17
|
+
victim = Victim.new('user_id' => 590331)
|
18
|
+
LibGooHelper.MassScanner(user.auth_token, [1001, 1005]) do |user| #Scans users with id's 1001 to 1004 and prints out his usernames
|
19
|
+
puts user['user']['username'] #=>Nardski
|
20
|
+
end
|
21
|
+
User.Do(email, password) do |http, auth_token, user_info, user|
|
22
|
+
puts user.user == user_info #=>true
|
23
|
+
puts JSON.pretty_generate user.VictimInfo(victim)['user']
|
24
|
+
puts user.http == http #=>true
|
25
|
+
puts auth_token == user.auth_token #=>true
|
26
|
+
puts LibGooHelper.AnonymousTransfer(user.auth_token, 1, 590331) #Accepts values of BTC up to 1 Billion, where 1 is value of BTC
|
27
|
+
#Sending 1 BTC to me^^^^^ #You can dont care about adding this user as contact, it's cayman too
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
data/lib/libGoo/error.rb
CHANGED
@@ -0,0 +1,77 @@
|
|
1
|
+
module LibGoo
|
2
|
+
class LibGooHelper
|
3
|
+
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def AnonymousTransfer(auth_token, amount, user_id, display = true) #Adds contact, then transfers BTC to him and removes him, or just transfers BTC if contact already exists. Supports values up to 1B
|
7
|
+
HackEx.NetworkDo do |http|
|
8
|
+
added = ForceAdd(auth_token, user_id)
|
9
|
+
if amount <= 100_000_000
|
10
|
+
HackEx::Request.Do(http, HackEx::Request.TransferBankFundsToContact(auth_token, user_id, amount))
|
11
|
+
puts "Transfering #{amount}" if display
|
12
|
+
elsif amount > 1_000_000_000
|
13
|
+
raise LibGooError, "Too much money to transfer #{amount}"
|
14
|
+
elsif amount < 100_000_000
|
15
|
+
i = amount / 100_000_000
|
16
|
+
ii = amount % 100_000_000
|
17
|
+
i.times {HackEx::Request.Do(http, HackEx::Request.TransferBankFundsToContact(auth_token, user_id, 100_000_000))}
|
18
|
+
i.times {puts 'Transfering 100M'} if display
|
19
|
+
HackEx::Request.Do(http, HackEx::Request.TransferBankFundsToContact(auth_token, user_id, ii)) if ii > 0
|
20
|
+
puts "Transfering #{ii}" if ii > 0 && display
|
21
|
+
end
|
22
|
+
HackEx::Request.Do(http, HackEx::Request.RemoveContact(auth_token, user_id)) if added
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def ForceAdd(auth_token, user_id) #Force add contact and returns true if success, and false if not.
|
27
|
+
HackEx.NetworkDo do |http|
|
28
|
+
HackEx::Request.Do(http, HackEx::Request.AddContact(auth_token, user_id))
|
29
|
+
HackEx::Request.Do(http, HackEx::Request.AcceptContact(auth_token, user_id))
|
30
|
+
true
|
31
|
+
end
|
32
|
+
rescue
|
33
|
+
false
|
34
|
+
end
|
35
|
+
|
36
|
+
def SafeVictimInfo(http, auth_token, id) #Doesnt stopping your script in case SLL handshake or other errors
|
37
|
+
return HackEx::Request.Do(http, HackEx::Request.VictimInfo(auth_token, id))
|
38
|
+
rescue
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
def MassScanner(auth_token, array, display = false) #Array is array of scanned IDs like [minimum, maximum] ([1001, 1100])
|
43
|
+
errors = []
|
44
|
+
cur_id, max = array
|
45
|
+
HackEx.NetworkDo do |http|
|
46
|
+
while cur_id < max
|
47
|
+
victim = SafeVictimInfo(http, auth_token, cur_id)
|
48
|
+
if victim
|
49
|
+
yield victim
|
50
|
+
errors = [] if errors.count > 0
|
51
|
+
puts "[#{Time.now}] Scanned id #{cur_id}" if display
|
52
|
+
cur_id += 1
|
53
|
+
else
|
54
|
+
errors << 'error, yopta'
|
55
|
+
puts "Failed to scan victim ID:#{cur_id}, count of errors: #{errors.count}"
|
56
|
+
raise LibGooError, 'Too much errors in same victim: ' + errors.count.to_s if errors.count > 10
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def params(*objs) #Parameters processor, accepts Array, String, Integer, LibGoo::Processes
|
63
|
+
result = []
|
64
|
+
objs.each do |obj|
|
65
|
+
if obj.is_a?(Fixnum) || obj.is_a?(String) || obj.is_a?(Array)
|
66
|
+
result << obj
|
67
|
+
elsif LibGoo::ObjectProcessor.descendants.include?(obj.class)
|
68
|
+
return obj.get_var(obj.class.class_variable_get(:@@important))
|
69
|
+
else
|
70
|
+
raise LibGooError, 'Undefined class object given as one of params: ' + obj.class.to_s
|
71
|
+
end
|
72
|
+
end
|
73
|
+
result
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module LibGoo
|
2
|
+
class ObjectProcessor #Much needed such wow, really, idk why it's here
|
3
|
+
attr_reader :params
|
4
|
+
|
5
|
+
def initialize(params, raise_if)
|
6
|
+
if params.is_a?(Hash) || params.is_a?(JSON)
|
7
|
+
raise LibGooError, "No specified key #{raise_if} in params" unless params.has_key?(raise_if) && raise_if
|
8
|
+
@params = params
|
9
|
+
else
|
10
|
+
raise LibGooError, "Unavailable type of argument: #{params.class.to_s}."
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def method_missing(m, *args)
|
15
|
+
return self.get_var(m) if self.get_var(m)
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_var(m)
|
20
|
+
if @params.has_key?(m.to_s)
|
21
|
+
@params[m.to_s]
|
22
|
+
elsif @params.has_key?(m)
|
23
|
+
@params[m]
|
24
|
+
else
|
25
|
+
false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.descendants
|
30
|
+
ObjectSpace.each_object(Class).select { |klass| klass < self }
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.parent
|
34
|
+
LibGoo::ObjectProcessor
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class Victim < ObjectProcessor
|
39
|
+
@@important = 'user_id'
|
40
|
+
def initialize(params)
|
41
|
+
super(params, @@important)
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
class Processes < ObjectProcessor
|
47
|
+
@@important = 'id'
|
48
|
+
def initialize(params)
|
49
|
+
super(params, @@important)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/libGoo/user.rb
CHANGED
@@ -2,13 +2,13 @@ module LibGoo
|
|
2
2
|
OLD_TO_NEW = {getUser: 'get_user', getUserProcesses: 'UserProcesses', getUserAntivirus: 'UserViruses', addProcess: 'UserAddProcess', getRandomUsers: 'RandomUsers', getVictimInfo: 'VictimInfo', getVictimBank: 'VictimBank', getStore: 'StoreInfo', updateVictimLog: 'UpdateVictimLog', updateUserLog: 'UpdateUserLog', updateUserNotepad: 'UpdateUserNotepad', transferToSavings: 'TransferBankFundsToSavings', transferToVictim: 'TransferBankFundsToVictim', transferToContact: 'TransferBankFundsToContact', addContact: 'AddContact', acceptContact: 'AcceptContact', removeContact: 'RemoveContact', storePurchase: 'StorePurchase', getUserByIp: 'UserByIp', getUserBank: 'UserBank', getUserViruses: 'UserViruses', getUserSoftware: 'UserSoftware', getUserSpam: 'UserSpam', getUserSpyware: 'UserSpyware', removeUploadedVirus: 'UserRemoveUploadedVirus', processInfo: 'ProcessInfo', processOverclock: 'ProcessOverclock', processRetry: 'ProcessRetry', processDelete: 'ProcessDelete', processesDelete: 'ProcessesDelete', getLeaderboard: 'Leaderboard'}
|
3
3
|
NEW_TO_OLD = OLD_TO_NEW.invert
|
4
4
|
class User
|
5
|
-
|
5
|
+
attr_accessor :auth_token, :http, :user
|
6
6
|
def initialize(email, password, auth_token = nil)
|
7
7
|
if auth_token
|
8
8
|
HackEx.NetworkDo { |http| @http = http; @user = HackEx::Request.Do(http, HackEx::Request.UserInfo(auth_token))['user']}
|
9
9
|
@auth_token = auth_token
|
10
10
|
else
|
11
|
-
HackEx.LoginDo(email, password) {|http,
|
11
|
+
HackEx.LoginDo(email, password) {|http, auth, user| @auth_token , @http, @user = auth, http, user}
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -16,14 +16,12 @@ class User
|
|
16
16
|
def get_user
|
17
17
|
@user = HackEx::Request.Do(@http, HackEx::Request.UserInfo(@auth_token))['user']
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
|
+
|
20
21
|
def method_missing(m, *args)
|
21
|
-
m = m.to_s.gsub
|
22
|
+
m = m.to_s.gsub(m.to_s, OLD_TO_NEW[m]).to_sym if OLD_TO_NEW.has_key?(m)
|
22
23
|
if HackEx::Request.respond_to?(m)
|
23
|
-
HackEx::Request.Do(@http, HackEx::Request.method(m).call(@auth_token, *
|
24
|
-
#elsif HackEx::Request.respond_to?(m)
|
25
|
-
# puts m
|
26
|
-
# HackEx::Request.Do(@http, HackEx::Request.method(m).call(@auth_token, *args))
|
24
|
+
HackEx::Request.Do(@http, HackEx::Request.method(m).call(@auth_token, *LibGooHelper.params(*args)))
|
27
25
|
else
|
28
26
|
raise LibGooError, "Undefined method '#{m}' for class LibGoo::User or class HackEx::Request"
|
29
27
|
end
|
@@ -37,20 +35,6 @@ class User
|
|
37
35
|
yield obj.http, obj.auth_token, obj.user, obj
|
38
36
|
end
|
39
37
|
|
40
|
-
def params(*objs) #Parameters processor, accepts Array, String, Integer, LibGoo::Processes
|
41
|
-
result = []
|
42
|
-
objs.each do |obj|
|
43
|
-
if obj.is_a?(LibGoo::Processes)
|
44
|
-
return obj.id
|
45
|
-
elsif obj.is_a?(Fixnum) || obj.is_a?(String) || obj.is_a?(Array)
|
46
|
-
result << obj
|
47
|
-
else
|
48
|
-
raise LibGooError, 'Undefined class object given as one of params: ' + obj.class.to_s
|
49
|
-
end
|
50
|
-
end
|
51
|
-
result
|
52
|
-
end
|
53
|
-
|
54
38
|
end
|
55
39
|
end
|
56
40
|
end
|
data/lib/libGoo.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libGoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grig O. Betsan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -64,7 +64,8 @@ files:
|
|
64
64
|
- lib/hackex/request.rb
|
65
65
|
- lib/libGoo.rb
|
66
66
|
- lib/libGoo/error.rb
|
67
|
-
- lib/libGoo/
|
67
|
+
- lib/libGoo/helper.rb
|
68
|
+
- lib/libGoo/objects.rb
|
68
69
|
- lib/libGoo/user.rb
|
69
70
|
- libGoo.gemspec
|
70
71
|
homepage: ''
|
data/lib/libGoo/process.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module LibGoo
|
2
|
-
class Processes #Much needed such wow
|
3
|
-
attr_reader :id, :params
|
4
|
-
|
5
|
-
def initialize(params)
|
6
|
-
if params.is_a?(Hash) || params.is_a?(JSON)
|
7
|
-
raise LibGooError, 'No specified key \'id\' in arguments' unless params.has_key?('id')
|
8
|
-
@id, @params = params['id'], params
|
9
|
-
elsif params.is_a?(Fixnum)
|
10
|
-
@id = params
|
11
|
-
else
|
12
|
-
raise LibGooError, 'Unavailable type ' + params.class.to_s
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|