BorderGame

Versione completa: [SOURCE CODE] NosBuzz Login Server [SERVER]
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2
Vorrei provare io stesso, puoi passarmi il flooder? Almeno evito di farmelo da 0, anche se non ci vuole nulla.
Edit : non c'è ne bisogno, tolgo direttamente il controllo e vedo.
Mo sto dal portatile, il fisso è occupato ma visto che ho l'encoding 1:1 ( quella che reversai tempo fa ) su pastebin ecco a te

Codice:
------------------------------------------------------------------------------------------------------------------
cryptography.hpp
------------------------------------------------------------------------------------------------------------------

#ifndef cryptography_hpp
#define cryptography_hpp

namespace nostale
{
        namespace login
        {
                class cryptography
                {
                public:
                        std::string password(std::string pass) const;
                        std::string encrypt(std::string packet) const;
                        std::string decrypt(std::string packet) const;
                };
        }
}

#endif // cryptography_hpp

------------------------------------------------------------------------------------------------------------------
cryptography.cpp
------------------------------------------------------------------------------------------------------------------

#include <iostream>
#include <sstream>

#include "cryptography.hpp"

namespace nostale
{
        namespace login
        {
                std::string cryptography::password(std::string pass) const
                {
                        const char dump[] = {
                                0x2E, 0x2A, 0x17, 0x4F, 0x20, 0x24,
                                0x47, 0x11, 0x5B, 0x37, 0x53, 0x43,
                                0x15, 0x34, 0x45, 0x25, 0x4B, 0x1D,
                                0x2F, 0x58, 0x2B, 0x32, 0x63 };

                        short index = rand() % sizeof(dump);

                        std::stringstream ss;
                        for (unsigned short i = 0; i < pass.size(); i++)
                        {
                                ss << std::uppercase << std::hex << (int)dump[index];
                                ss << std::uppercase << std::hex << (int)pass[i];
                                index == sizeof(dump)-1 ? index = 0 : index++;
                        }
                        pass = ss.str();
                        ss.str(std::string());

                        char c = { 0 };
                        for (unsigned short i = 0; i < pass.size(); i += 4)
                        {
                                c = pass[i + 1];
                                pass[i + 1] = pass[i + 2];
                                pass[i + 2] = c;
                        }

                        ss << std::uppercase << std::hex << (int)dump[rand() % sizeof(dump)];
                      
                        return ss.str() + pass;
                }

                std::string cryptography::encrypt(std::string packet) const
                {
                        for (unsigned short i = 0; i < packet.size(); i++)
                        {
                                packet[i] = (packet[i] ^ 0xC3) - 0x0F;
                        }
                        return packet += 0xD8;
                }

                std::string cryptography::decrypt(std::string packet) const
                {
                        for (unsigned short i = 0; i < packet.size(); i++)
                        {
                                packet[i] -= 0x0F;
                        }
                        return packet;
                }
        }
}

crea progetto, fa copy & paste, cripta il pacchetto, connetti il programma al server e mandagli il pacchetto.. metti un loop e vedi quanto ti regge, ti conviene mettere uno sleep che se tocca i 600 threads ti crasha ( anche se non credo che quel rottame del tuo pc riesca ad elaborare 600 richieste contemporanee ) Wink
Pacchetto processato interamente -> Statistiche
Massimo utilizzo cpu -> 0,6%
Medio utilizzo cpu -> 0,1-0,2% a volte 0,3%
Utilizzo massimo memoria -> 0,2%
Connessioni -> 4.000.000 ( 4 milioni )
Dimmi tu.. Smile
(P.S Non con il tuo flooder, ma con un comune DoS, tuttavia ho eliminato il controllo pacchetto quindi è processato interamente, credo sia la stessa cosa Wink )
(27-03-2014 10:22 PM)~Giorigo1~ Ha scritto: [ -> ]Pacchetto processato interamente -> Statistiche
Massimo utilizzo cpu -> 0,6%
Medio utilizzo cpu -> 0,1-0,2% a volte 0,3%
Utilizzo massimo memoria -> 0,2%
Connessioni -> 4.000.000 ( 4 milioni )
Dimmi tu.. Smile
(P.S Non con il tuo flooder, ma con un comune DoS, tuttavia ho eliminato il controllo pacchetto quindi è processato interamente, credo sia la stessa cosa Wink )

Certo, in primo luogo un DoS comune non può verificare un bel nulla dal momento che non invia il pacchetto corretto.. ti sei scordato la verifica nel database e tutto il resto ? cosa gli fai controllare se il pacchetto è errato ? dovrai costruirti un tester se davvero vorrai testarne le prestazioni. hai la crittografia su, ti ho avanzato il compito di cercarla.. una mezzora di noia in meno Big Grin a parte per la password che non saresti comunque capace di reversarne l'algoritmo ^^

Spoiler:
QUELLO ERA SOLO UN DISCORSO MESSO LI PARTENDO DAL PRESUPPOSTO CHE TU L'ABBIA TESTATO MA.. SAPPIAMO ENTRAMBI CHE NON E' COSI.. L'HAI SPARATA GROSSA SU..

ieri 09:09 PM IL TUO PRIMO MESSAGGIO DOVE NON ERI NEMMENO PARTITO..
ieri 09:22 PM IL TUO SECONDO MESSAGGIO DOVE RACCONTI UN SACCO DI STRONZATE..

13 MINUTI ? SBAGLIAMI SE ERRO PERCHE' A CASA MIA 22-9 RISULTA 13.. IN 13 MINUTI NON CI FAI 4 MILIONI DI CONNESSIONI, LO SAI BENE.. POTEVI SPARARE UNA CIFRA PIU CREDIBILE, FORSE CI SAREI CASCATO ANCHE SE.. NON E' FACILE PRENDERSI GIOCO DI ME. SERVONO ALMENO E RIPETO.. ALMENO 45 MINUTI CON UN PC BUONO.. PROPRIO BUONO EH.. PER EFFETTUARE IL NUMERO DA TE AFFERMATO. ALMENO CHE NON TI ABBIANO RAPITO GLI ALIENI.. DAI SU, NON HA NEMMENO SENSO CONTINUARE..
Infatti non servono 13 minuti per fare 4 milioni di connessioni, me ne servono si e no 5 di minuti :

PRIMA
Spoiler:

DOPO
Spoiler:

Avanti, su.. Dici che ho modificato il tempo 23
Certo, richieste http.. uhm uhm, si okay giorigo.. sai bene che non le ha fatte tutte quelle richieste, cambia coso perché non va affatto, come sai bene che una richiesta http non viene calcolata dal server visto che hai l'if ^^ e non venirmi a dire che non è cosi perché per far controllare i dati hai bisogno del pacchetto giusto e senza di quello non processi una m****ia..

ora ti vuoi far figo davanti a tutti come al solito ma sai bene che hai torto.
La richiesta è tcp, non http. Fuori uno.
L'if lo ho tolto ( quello del controllo pacchetto ), per quanto riguarda quello del database, l'if è nel verificare quello che preleva dal database e nell'invio del pacchetto, quindi sempre svolge la query al database. Fuori due.
L'applicazione funziona, posso assicurartelo : con 400 thread aperti contemporaneamente che bombardano il server è possibile ottenere questo risultato in meno di 5 minuti. Altre domande? (facepalm)
(28-03-2014 07:47 PM)~Giorigo1~ Ha scritto: [ -> ]La richiesta è tcp, non http. Fuori uno.
L'if lo ho tolto ( quello del controllo pacchetto ), per quanto riguarda quello del database, l'if è nel verificare quello che preleva dal database e nell'invio del pacchetto, quindi sempre svolge la query al database. Fuori due.
L'applicazione funziona, posso assicurartelo : con 400 thread aperti contemporaneamente che bombardano il server è possibile ottenere questo risultato in meno di 5 minuti. Altre domande? (facepalm)

Hai selezionato il pacchetto http nel lato, non importa se glielo mandi via tcp sempre un POST è.. fuori uno.
L'if l'hai tolto ( quello del controllo pacchetto, cosa processa allora ? sto ca**o ? ), per quanto riguarda quello del database, l'if è nel verificare quello che preleva dal database e nell'invio del pacchetto.. aspetta.. cosa metti nel campo ID e PW se il pacchetto è errato ? cosa splitti ? sto ca**o ? fuori due.
L'applicazione funziona, posso assicurartelo : con 400 thread aperti contemporaneamente che bombardano il server.. bla bla bla.. sicuro ? i threads non sono contemporanei anche se sembrano, servono ben 5 secondi a connessione.. per non parlare del lag che ti comporterebbe, probabilmente ti salterebbe la connessione o la cpu.. il massimo che puoi fare in 13 minuti è 450K di connessioni.. fatte per bene ovviamente, processate e non con una disconnessione dopo un millisecondo..

Creati un tester fatto per bene e poi vieni a parlarne, le tue statistiche non sono reali, a parte il fatto che non hai nemmeno scritto quanto occupa in RAM.. ripeto.. 4000000 connessioni in 13 minuti non ce la fa nessuna macchina, tanto meno la tua.. se davvero uno riuscirebbe a farne cosi tante allora credo proprio che non ci sarebbe nemmeno un sito online.. secondo te perché si usano gli attacchi ddos e non dos ? pensaci un pochino eh..

GIORIGO ! SPARA MENO MINCHIATE, SOPRATTUTTO CON UNO PIU INFORMATO IN MATERIA Big Grin
Mi sono sbagliato, hai ragione tu.. Ma smettila di spammare.
Accettasi consigli su come migliorare strutturalmente il server.
Ragazzi avete avuto già un avvertimento da antimus, un altro spam e sono costretto ad avvertirvi tutti.
Visto che come dici tu "parliamo solo" ne approfitto per warnarti io; come detto sopra avremmo punito lo spam, e allora è cosi che faremo Smile
Pagine: 1 2
URL di riferimento