Seite 2 von 6 Erste 1234 ... Letzte

Thema: Knuddels K3

  1. #11

    Registriert seit
    10.03.2019
    Beiträge
    1
    Thanked 0 Times in 0 Posts

    Standard AW: Knuddels K3

    Sehr interessant wie Knuddels das ganze umgesetzt hat. Danke natuerlich auch dir, Bubble Gum, dass du dir die Zeit genommen hast, die ganzen .proto-Files zu rekonstruieren. Ich war auch schon dabei, einen Go-klienten zu schreiben, dachte mir aber die Zeit ist es ehrlich gesagt nicht wert, vor allem wenn das ganzen auch noch Jahrzente bei Knuddels dauern wird. Vielleicht kannst du ja ein Go-API generierien, da du ja die .proto-Files dazu hast.

    Sehe ich das richtig, oder gibt es bei der Registrierung keinen Captcha mehr? Wenn man doch schon jeden Scheiss in den Redux-store dispatched, kann man doch auch das Registrierungsformular mit react-recaptcha oder so verbinden.

  2. #12

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Eine Go-API benötigt ein externes Modul, ich habe da jetzt ehrlich gesagt keine Lust mich erst um die Installation zu kümmern, da ich den Clienten noch auseinander fetze

    reCaptcha wird verwendet. So weit ich das beurteilen kann, wird das aber nicht Serverseitig entschieden, sondern Clientseitig (Punkt, Lol) xD
    Nehmen wir ein Beispiel:

    Verbindet der Client sich in kürzester Zeit X mal, wird das Captcha abgefragt, als Beispiel hier die Härte, die oft hintereinander nach einem Cooldown: 13,18,19,20
    So wie ich das sehen kann, haben die das ziemlich überall mit verschiedenen Werten eingebaut. Wozu ich mir an den Kopf kratze, warum Knuddels das ganze aber Clientseitig löst, schließlich kann man den Rotz einfach blocken (notfalls mit Routing über den Host-Files zu einem True-Response Recaptcha-Script).

    Ich hab jetzt so einiges im Clienten durchwühlt und muss sagen, dass hier einfach Laien dran sitzen. Das ganze mag zwar schnieke aussehen und man hat versucht ein komplett neuen Weg mit modernen Schnittstellen zu gehen, aber die Umsetzung daran ist mehr als Fail.

    Es gibt so viele Punkte, die einfach nicht beachtet werden und man fragt sich echt, ob da wirklich "Professionelle" dransitzen.

  3. #13

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3 (Login Cracked)

    Wer einen Emulator bauen will, braucht nur die ganzen API-Endpoints auf ein PHP-Script umlenken und die Login-Sachen rekonstruieren.
    Das ganze habe ich ohne Datenbankanbindung bereits umgesetzt.

    Im Login-Prozess wird folgendes durchgeführt:
    • /login/token/device bekommt das Packet CreateDeviceTokenWebRequest und bearbeitet dann das CreateTokenWebResponse. Dabei wird ein Token (Session/AuthToken) gesetzt
    • Der Client prüft mit dem Request zur /checkflag.cgi, ob der Client CheckFlag\Flag::CAN_USE_K3_CLIENT besitzt (anhand der Session/AuthTokens)


    Die Source schaut wie folgt aus:
    PHP-Code:
    case '/api/login/token/device':
        
    header('access-control-allow-credentials: true');
        
    header('access-control-allow-headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization');
        
    header('access-control-allow-methods: GET, PUT, POST, DELETE, PATCH, OPTIONS');
        
        if(
    $_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
            
    header('access-control-max-age: 1728000');
            exit();
        }
        
        if(empty(
    $data)) {
            exit(
    'Empty Data!');
        }
        
        
    $request    = new CreateDeviceTokenWebRequest();
        
    $request->mergeFromString(base64_decode($data));
        
    $credentials $request->getCredentials();
        
        switch(
    $credentials->getCredentialType()) {
            case 
    CredentialsType::CredentialsType_Password:
                
    $data        $credentials->getPasswordCredentials();
                
    $username    $data->getUsername();
                
    $password    $data->getPassword();
                
                
    $response = new CreateTokenWebResponse();
                
    $response->setToken('SessionID');
                
    $response->setResult(TokenRequestResult::TokenRequestResult_Success);
                print 
    base64_encode($response->serializeToString());
            break;
            case 
    CredentialsType::CredentialsType_Facebook:
                exit(
    'facebook Auth not implemented!');
            break;
        }
    break; 
    PHP-Code:
    case '/checkflag.cgi':
        
    $t = (isset($_GET['t']) ? $_GET['t'] : null);
        
        if(empty(
    $t)) {
            exit(
    'Missing Token!');
        }
        
        
    $request = new CheckFlag\RequestFlagCheck();
        
    $request->mergeFromString(base64_decode($t));
        
        
    $token        $request->getJwt();
        
    $iterator    $request->getFlagsToCheck()->getIterator();
        
    $passed        false;
        
    $results    = [];
        
        do {
            switch(
    $iterator->current()) {
                case 
    CheckFlag\Flag::CAN_USE_K3_CLIENT:
                    
    $passed true;
                    
    $result = new CheckFlag\FlagCheckResponse\Result();
                    
    $result->setFlag(CheckFlag\Flag::CAN_USE_K3_CLIENT);
                    
    $result->setPassed(true); // Check by Database
                    
    $results[] = $result;
                break;
            }
            
            
    $iterator->next();
        } while(
    $iterator->valid());
        
        
    $response = new CheckFlag\FlagCheckResponse();
        
    $response->setAuthenticationFailed($passed);
        
    $response->setResults($results);
        print 
    base64_encode($response->serializeToString());
    break; 
    P.S. ich hab die Ausgabe von der Redux Action etwas erweitert, damit ich die Einträge sehen kann.
    Klicke auf die Grafik für eine größere Ansicht 

Name:	logk3.PNG 
Hits:	81 
Größe:	12,7 KB 
ID:	9347

  4. #14

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Sooo, der WebSocket-Chatserver funktioniert auch Den werde ich aber nicht releasen, weil hierzu die RAW-Protofiles genutzt werden.

    Ich bin auch ab überlegen, ob ich den Server komplett als Bundle erstelle, sodass die Seite über Node.js ausgeliefert wird und auch die API über Node läuft.
    Dann würde ich mir den Part mit PHP sparen und hätte eine komplette Instanz wo ich alle Endpoints miteinander abfragen kann.

    Name:  ws.PNG
Hits: 407
Größe:  10,4 KB

  5. #15

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    So, ich muss jetzt nur noch die Channel- & Messenger-Packete befüllen. aber es funktioniert!

    Klicke auf die Grafik für eine größere Ansicht 

Name:	K3_1.PNG 
Hits:	223 
Größe:	357,6 KB 
ID:	9349

  6. The Following 2 Users Say Thank You to Bubble Gum For This Useful Post:

    eXtrac3 (07.04.2019), Spectra (11.03.2019)

  7. #16

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Hier mal ein Update. Bin gerade dabei einen Emulator zu schreiben, da ist schon so einiges innerhalb 2 Stunden passiert.

    Ich glaube, wenn ich so weiter mache, bin ich schneller fertig als Knuddels

    P.S. Es sind so einige Proto-Files hinzugekommen. Mittlerweile zähle ich über 150 Dateien!

    Klicke auf die Grafik für eine größere Ansicht 

Name:	chan.PNG 
Hits:	179 
Größe:	278,4 KB 
ID:	9350Klicke auf die Grafik für eine größere Ansicht 

Name:	cons.PNG 
Hits:	115 
Größe:	110,8 KB 
ID:	9351

  8. The Following User Says Thank You to Bubble Gum For This Useful Post:

    Spectra (17.03.2019)

  9. #17

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Ich hab nun auf GitHub bereits Informationen publiziert, wie weit der Stand der implementierung des Emulators ist.
    Einige Dinge wie zum beispiel der Messenger ist relativ Zeitaufwändig, aber relativ easy umzusetzen. Einige Dinge sind schon komplett umgesetzt.

    Eingesehen kann das ganze hier: https://github.com/PineappleK3/Emula...ntation-Status

  10. The Following User Says Thank You to Bubble Gum For This Useful Post:

    Spectra (18.03.2019)

  11. #18

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Knuddels listet alle genutzten Plugins auf der Credit-Seite auf. Hier kann man ganz gut sehen, wie ihre "neue" Architechtur nun ausschaut.

    Es sind hier nicht nur Clientseitige Module bei, sondern es werden auch Serverseitige Module angezeigt, was erahnen lässt, dass deren neuen WebServer auch komplett in JavaScript/TypeScript geschrieben ist. Das merkt man einfach daran, dass hier Node-Module aufgelistet werden, die nichts im Clienten zu suchen haben. Neben CLI-based Modules (um Beispielsweise Startscripts zu erstellen, die über Shell/CLI laufen), findet man auch IO-Module, die für das FileSystem genutzt werden.

    Auch wird hier offenbart, was in Zukunft kommen wird: einen Clienten, der über electron läuft. Bemerkenswert ist auch die Professionalität, für jeden kleinen Pups ein extra Plugin zu nutzen - Auch wenn irgendetwas vielleicht gerade einmal zwei Zeilen Code bedeuten würde. Aber nein, der node_modules Ordner von Knuddels sieht dann halt so aus:
    Klicke auf die Grafik für eine größere Ansicht 

Name:	46370960_481693738905713_4344442132384186368_o.jpg 
Hits:	98 
Größe:	45,4 KB 
ID:	9352

  12. The Following 3 Users Say Thank You to Bubble Gum For This Useful Post:

    Darkfield (19.03.2019), Manipulate (18.03.2019), Spectra (18.03.2019)

  13. #19

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: Knuddels K3

    Vielleicht hat ja jemand eine Domain/subdomain, wo man das ganze zu Demonstrationszwecken hosten kann

  14. #20
    Avatar von ZarneXxX
    Registriert seit
    05.04.2012
    Beiträge
    934
    Thanked 1.291 Times in 258 Posts

    Standard AW: Knuddels K3

    Bubble Gum kannst dich gerne dafür bei mir melden

    Kontakt:
    WhatsApp: (dafür PN)
    Facebook: (dafür auch PN)
    Skype: ZarneXxX
    Discord: Nieme#3573
    U-Labs: Private Nachricht

Seite 2 von 6 Erste 1234 ... Letzte

Ähnliche Themen

  1. p1rates.in | Szene Blog rund um Knuddels und Knuddels Bots
    Von Devon im Forum Knuddels Underground Szene
    Antworten: 214
    Letzter Beitrag: 08.05.2014, 04:55
  2. Antworten: 9
    Letzter Beitrag: 19.12.2012, 16:01

Stichworte

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.