Thema: Knuddels K3
-
10.03.2019, 01:35 #11
- Registriert seit
- 10.03.2019
- Beiträge
- 1
Thanked 0 Times in 0 PostsAW: 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.
-
10.03.2019, 02:45 #12
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: 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.
-
10.03.2019, 18:37 #13
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: 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;
-
10.03.2019, 20:29 #14
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: 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.
-
10.03.2019, 23:14 #15
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: Knuddels K3
-
The Following 2 Users Say Thank You to Bubble Gum For This Useful Post:
-
13.03.2019, 00:09 #16
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: Knuddels K3
-
The Following User Says Thank You to Bubble Gum For This Useful Post:
Spectra (17.03.2019)
-
14.03.2019, 18:59 #17
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: 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
-
The Following User Says Thank You to Bubble Gum For This Useful Post:
Spectra (18.03.2019)
-
18.03.2019, 15:38 #18
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: 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:
-
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)
-
18.03.2019, 19:01 #19
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: Knuddels K3
Vielleicht hat ja jemand eine Domain/subdomain, wo man das ganze zu Demonstrationszwecken hosten kann
-
19.03.2019, 01:58 #20
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
Ähnliche Themen
-
p1rates.in | Szene Blog rund um Knuddels und Knuddels Bots
Von Devon im Forum Knuddels Underground SzeneAntworten: 214Letzter Beitrag: 08.05.2014, 04:55 -
Knuddels.ch & Knuddels.de blicken in eine gemeinsame Zukunft
Von LaSombra im Forum Knuddels-NewsAntworten: 9Letzter 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.