 Okay, dann erstmal herzlich willkommen zu meinem Vortrag über Summoner's War bzw. wie wir Summoner's War gehackt haben und ja, mein Name ist OpCodes, ich bin das zweite Mal hier und ja, freut mich, dass ihr alle gekommen seid. Dann fangen wir gleich mal an. Erstmal zur Agenda, was euch hier erwartet und was euch eben nicht erwartet. Und zwar, wie gesagt, erstmal was erwartet euch und was erwartet euch nicht, dann welches Vorwissen brauchen wir, um Summoner's War zu hacken bzw. welches Vorwissen haben wir das Projekt gebraucht. Also ich und ein Freund, Selman, haben eben das Spiel zusammen gehackt und an dieser Stelle auch ein Gruß an dich Selman und ja. Danach kommen wir zum Punkt, was brauchen wir, um es zu hacken. Dann zu den Vorbereitungen, danach werden wir ein paar Paketes niffen und auch analysieren. Und danach die App, die kommt heilen. Also das Spiel Summoner's War ist eben für Android, IOS und so weiter eben eine App und ja, die werden wir dann eben auch die kommen heilen, um an den Quelltecks zu kommen und anschließend eben auch überwersen, um an die nötigen Stellen im Spiel zu kommen. Und anschließend werden wir uns das Protokoll anschauen, weil das müssen wir natürlich verstehen, um es hacken zu können. Und ja, dann geht es daran, in ein Proxy zu programmieren. Da werde ich eben die nötigen Informationen geben, also was man eben braucht. Und ja, am Ende werden wir Spaß haben und ein paar tolle Hacks für Summoner's War machen. Also erstmal zum Punkt, was erwartet euch, das wissen wir, wie man Android-Spiele hacken kann. Wer wird euch erwarten? Es gibt natürlich mehrere Wege, ein Android-Spiel zu hacken, aber das ist die einfachste Variante und zwar über die Pakete. Dann, welche Tools wir dafür brauchen, würde ich auch hier erwarten. Und wie man am besten vorgeht. Also ich werde euch dann meinen Wissen einfach mal weitergeben. Was erwartet euch hier nicht? Memes, weil dafür bin ich nicht cool genug. Dann Kies für die Verschlüsselung, weil ich möchte das Spiel natürlich jetzt nicht komplett kaputt machen, aber ja, ich möchte eben die nötigen Informationen geben, damit ihr mal seht, was man so im Spiel anstellen kann. Unten ein Hack zum Blauenot wird es hier auch nicht geben. Da muss jeder eben seinen eigenen Hack schreiben. Swarscots wird es auch nicht geben, weil, naja, das ist ziemlich prototypemäßig gehalten und ziemlich hässlich, das will ich niemanden antun. Gut, welches Vorwissen brauchen wir für die ganze Aktion? Erst mal ein solides Java-Grundwissen, weil die Apps sind natürlich alle in Java geschrieben und ja, da sollten wir eben schon verstehen, was überhaupt passiert. Verschlüsselung, wir sollten zumindest wissen, was sind die einzelnen Modes, was bedeutet Padding, weil Pakete werden in dem Spiel verschlüsselt. Das heißt nicht, dass es in anderen Spielen verschlüsselt sein wird. Aber in diesem Fall ist es eben so. Und wir brauchen Erfahrung mit Wireshark. Wir müssen natürlich die Pakete vom Spiel eben sniffen und ja, dafür braucht man eben einfach so ein Grundwissen mit Wireshark. Und Erfahrung mit Debuggern sollte man in diesem Fall auch haben, weil wir uns auch Libraries anschauen werden vom Spiel, weil das Spiel eben nicht komplett in Java fungiert. Gut, was brauchen wir? Erst mal Bluestacks. Was ist Bluestacks? Das ist ein Android-Emulator, den man sich auch für sein PC einfach installieren kann und dann kann man sich alle möglichen Android-Apps installieren. Den werden wir nutzen. Und dann brauchen wir natürlich Sammlers war APK, damit wir überhaupt erstmal was machen können. Gut, JADX, das ist ein Dex to Java Decompiler. Das ist einfach nichts weiter als ein Programm, womit ihr eben Apps Decompilen könnt und dann kriegt ihr einfach den Sourcecode und die ganzen Dateien, die eben das Spiel verwendet. Wireshark natürlich, um die Pakete zu sniffen, sollte klar sein. IDA, es gibt auch mehrere Debugger, aber ich empfehle euch hier in dem Fall den sogenannten IDA-Debugger, weil er beispielsweise den Pseudo-C-Code-Generator anbietet. Das heißt, ihr habt quasi irgendein Programm, das ihr in IDA ladet oder irgendeine Library und ihr bekommt dann sozusagen erstmal Assembler-Code. Das wird manche vielleicht nicht sagen. Aber man hat eben mit Text-Rays die Möglichkeit, sich Pseudo-C-Code anzeigen zu lassen und damit kann man eben auch reversen, ohne Assembler-Kentnisse zu haben. Proxy-Capp nutze ich in meinem Fall, das ist ein Tool für Windows in dem Fall, womit man einfach einen Traffic von einem Programm umleiten kann, weil wir werden uns einen Proxy schreiben und wir müssen natürlich jeglichen Traffic von Bluestacks umleiten und dafür nutze ich eben Proxy-Capp. Und natürlich ein Sprach- und Sarah-Wahl, weil wir werden wie gesagt am Ende einen Proxy schreiben und ja, meine Wahl in dem Fall ist Node.js und Javascript, weil ich es halt am besten finde. Gut, kommen wir zu den Vorbereitungen. Erst mal alles nötig installieren natürlich, also Bluestacks, JADX und so weiter. Dann Bluestacks einrichten, das geht ziemlich schnell, man braucht doch kein Google-Account, man kann diese Meldung von Google einfach mal wegklicken, also das geht ziemlich schnell. Samenasuo sollte man installieren, einfach die APK in Bluestacks ziehen und ja, dann seid ihr eigentlich schon so weit bereit. Ihr werdet ein paar Hundert MB Patches laden, aber naja, so ist das eben. Gut, das sollte dann ungefähr so aussehen, wenn ihr Samenasuo geladen habt. Ja, in dem Fall einfach zum ersten Mal gestartet und der sucht erst nach Updates und ja, der übliche Kram eben. So, wir fangen ganz simpel an mit den Paketensniffen, weil wir wollen natürlich erstmal das Spiel verstehen und am einfachsten ist es, wenn man sich die Pakete anguckt. Und wieso macht man das? Na ja, weil man erkennt direkt, was auf einen zukommt. Wenn man die Pakete sieht und man sieht, okay, ich erkenne nichts in den Daten, weil es sieht halt kryptisch aus, da kann man zum Beispiel gleich auf eine Verschlüsselung schließen und sagen, okay, ich werde ein bisschen reversen müssen. Und ja, das erkennt man eben schon anhand von den Pakets. Danach, ja, müssen wir natürlich das Protokoll erkennen und verstehen, dass das Spiel verwendet, weil wir wollen natürlich die Daten vom Spiel eben verändern. Dafür müssen wir natürlich das Protokoll verstehen. Unser Ziel, einfach ein Proxy zu schreiben, weil das ist halt am einfachsten. Es geht natürlich auch die Möglichkeit, jetzt die App umzuschreiben und in der App zu schreiben. Aber das ist ein Aufwand, der lohnt sich nicht, weil wöchentlich kommt vielleicht ein Patch von dem Spiel und da muss man alles neu schreiben. Deswegen, wenn man sich einmal ein Proxy geschrieben hat, dann funktioniert der meistens ziemlich lange, weil sich an den Paketen eben wenig ändert. Und zwar haben wir in dem Fall angefangen, uns die Pakete anzuschauen und die ersten wichtigen Pakete, die wir erkennen, kommen von api.qpu.cn. Als Erstes erkennen wir, die Pakete sind unverschlüsselt. Da wird einfach ein JSON quasi hin und her geschickt. Das werde ich euch auch gleich noch zeigen. Diese api oder diese Schnittstelle ist für die Registrierung von eurem Handy zuständig. Das heißt, wenn ihr zum ersten Mal das Spiel startet, dann gebt ihr der App alles Mögliche mit. Das seht ihr auch gleich noch. Und für die Authentifizierung vom Handy ist es auch zuständig. Wenn ihr die App bereits schon mal gestartet habt, dann muss es euch natürlich wieder erkennen. Es tauscht die Daten über Cookies aus. Das heißt, da werden HTT-P-Pakete her geschickt und die Daten liegen eben in den Cookies drin. Das heißt, nicht im Body oder sowas. Was wird mit geschickt? Ziemlich viel. Zum Beispiel die Mac-Adresse, die OS-Version von eurem Linux-Körnel. Dann die Sprache. Welche Sprache? Die App-ID, die MCC-Nummer von eurem Handy, von eurem Mobilfunkanbieter, die MNC-Nummer, dann Device, also was für ein Handy ihr überhaupt habt, ein Note 4, Galaxy, sonst was. Prüf-Hashes werden auch noch geschickt. Von der Mac-Adresse zum Beispiel. Die Device-ID, ein Game-Index, also lauter Daten, die dann eben mit der App zu tun haben. Aber die sind nicht so wichtig. Hier seht ihr zum Beispiel so ein Paket. Das ist jetzt so ein Cookie, der eben vom Kleint zum Server geschickt wird. Man kann eben schon erkennen, da wird ziemlich viel mitgeschickt. Ich habe es aber schon mal probiert, und zwar selbst solche Pakete geschickt. Und ich habe eben gesehen, eigentlich kann man so gut wie alles weglassen. Was dem Server nur wichtig ist, ist die App-ID und die Hub-Check-1. Das ist quasi einfach, also unter dieser Hub-Check-1 könnt ihr euch die Mac-Adresse gehasht vorstellen. Da wird ein bisschen Magie gemacht, also da werden die Doppelpunkte weggemacht und ein Timestamp noch verwendet. Aber grundlegend steckt dahinter die Mac-Adresse, und die verifiziert über diesen Hash. Und ja, den kann er dann auch selbst wieder rausholen, weil der Timestamp bzw. der Schlüssel wird einfach dran gehängt. Nichts für alles. Gut, dann die nächste Schnittstelle, activeuser.qpu.cn. Was wird darüber geschickt? Erst mal, also es ist verschlüsselt. Das erkennen wir einfach daran, weil da wird ein Base64 mitgeschickt. Und wenn wir den Dekorden, dann kriegen wir nur wilde Bytes. Man erkennt keine wirkliche Struktur. Diese Schnittstelle ist dafür zuständig, euch eine DeviceID zuzuteilen. Also euer Handy selbst hat nur eine Android-ID. Und die schickt ihr zum Server. Und der Server macht dann eben irgendeine Magie. Die kenne ich auch nicht. Aber die ist auch gar nicht so wichtig. Der Server gibt euch dann nämlich eure DeviceID. Und die speichert dann eben euer Handy und schickt sie eben das nächste Mal immer wieder an den Server und daher weiß ihr eben, wer ihr seid. Und Sessionhandling tut diese Schnittstelle auch betreiben. Das heißt, wenn ihr euch vor einer Stunde bereits mal am Server angemeldet habt, dann habt ihr eigentlich noch eine offene Session mit dem Server. Und die könnt ihr eben dann wieder direkt nutzen. So ein Paket kann eben so aussehen. Das ist ein einfaches HDTP-Paket. Oben im Header sehen wir zum Beispiel einen Key Request Time Stamp. Da steht dann ein Time Stamp. Das ist meistens der aktuelle. Und dann noch Request Aufkey. Ja, und unten sehen wir eben das verschlüsselte, beziehungsweise den Base64. Es ist zwar verschlüsselt, aber der Key wird direkt mitgeschickt. Und zwar das ist der Time Stamp. Ja, toll. Gut. Aber dazu komme ich auch noch. Ich fand das nur ziemlich lustig. Dann kommen wir zur nächsten Schnittstelle. Und das ist der aktuelle Game Server. In dem Fall habe ich den EU Server genommen im Spiel. Deswegen bin ich jetzt in dem Fall mit Summoner's War minus EU Punkt Come to Us, so heißt die Firma von Summoner's War und Net mit der Adresse bin ich eben verbunden. Da sind die Daten auch verschlüsselt und die sehen ziemlich gleich aus. Also da wird wieder ein Base64 geschickt und ja, man erkennt auch keine wirkliche Struktur hinter den Bytes, die dahinter liegen. Was wird über diese Schnittstelle ausgetauscht? Die Versionsinfo vom Spiel, die aktuelle, dann das Serverstatus, ob es eine aktuelle Maintenance gibt oder sowas. Und es dient auch als Game Client Gateway. Das heißt, wenn ihr eben zum Beispiel ein Spiel macht, dann wird es eben über diese Adresse geschickt. Über diesen sogenannten Gateway. Das ist einfach nur eine PHP-Datei. So ein Paket kann eben so aussehen. Da haben wir eine S-Mon-T-M-Wall. Das ist auch wieder ein Timestamp. Beziehungsweise der Timestamp da wird noch ein bisschen geändert. Ich kann euch jetzt schon mal sagen, diese Werte S-Mon-T-M-Wall und S-Mon-Checker, die sind gar nicht so wichtig. Die müssen wir nicht verstehen. Und ja, die können wir eigentlich auch unverändert in einem Proxy weiterleiten. Und ja, da wird eben ein gezipptes Datenpaket einfach geschickt. Das müsst ihr in eurem Proxy dann eben in dem Fall entzippen, dann entschlüsseln und verändern. Und danach, wenn es eben weiter schickt, wieder verschlüsseln und zippen. Deswegen erkennt man hier auch jetzt keine Weile. Gut, dann gehen wir erstmal ans Analyse in der Pakete und welches Fazit haben wir daraus geschlossen. Wir müssen die Verschlüsselung der Daten finden, weil so können wir nichts machen. Und optional können wir versuchen, S-Mon-T-M-Wall und S-Mon-Checker zu verstehen, wenn man eben so viel wie möglich rausfinden will. Nötig ist es nicht. Und optional ist auch, die Cookie-Herschwerte zu verstehen. Aber da wir halt wirklich ein Proxy schreiben und eigentlich alles durchlassen, bis auf Spielpakete, können wir uns das eigentlich auch schenken. Gut, dann kommen wir erstmal ans die Kompilen der App, weil jetzt wollen wir die Verschlüsselung natürlich finden. Dafür gibt es zwei Möglichkeiten. Erstmal mit JADX, was ich vorher genannt habe, könnt ihr euch installieren. Dafür braucht ihr Java und einfach die App reinladen und dann kriegt ihr eben den Sourcecode und die Libraries, die eben da drin liegen und die Bilder und so weiter. Aber dann gibt es auch für faule Leute eine Website, die habe ich auch genutzt, weil ich faul bin. Und zwar javadikompilers.com. Bei JADX würde es so aussehen, dass ihr eine Baumstruktur von allen Dateien und Quelltexten, rechts seht ihr den Sourcecode und bei der Website, die sieht ziemlich schlicht aus, Bootstrap, schätze ich mal. Aber da könnt ihr einfach die App hochladen und dann die Kompilen lassen, es dauert so im Schnitt vielleicht 3 Minuten und ja, dann habt ihr eben den ganzen Quelltext als Zip. Gut, nun, jetzt wollen wir natürlich, wie gesagt, die Verschlüsselung herausfinden und da ist der erste Schritt, im Quelltext nachzugucken, in den ganzen Dateien, mal nach Strings suchen und so was. Und zwar fangen wir an, nach der Verschlüsselung zu suchen. Das ist in dem Fall aber eine Fehlanzeige, also die App macht nämlich Folgendes, die nutzt die, also die sogenannte JNI-Funktion von Java, was das bedeutet ist, sie spricht eben über diese JNI-Schnittstelle, also dieses Java-Native-Interface, mit einer Library und die ist dann eben in C programmiert. Das heißt, wir kommen nicht einfach so an den Quelltext ran und ja, das heißt, der App-Quelltext bringt uns wenig. Ja, wir müssten eben die Library finden, in der das Spiel sitzt und diese dann eben mit IDR reversen. Gut, hier sehen wir im Ordner Lib natürlich die ganzen Libraries, die geladen werden. Also in dem Fall Lib C to S, come to us, kommen soll das wahrscheinlich bedeuten und ja, Cynco zum Beispiel, das ist ein Anti-Cheat-System, wird auch geladen, ja, eine Library, aber dazu komme ich jetzt. Und zwar fange ich an mit der LibCyncode.so, das ist einfach eine Cyncode-Library, die eben das Anti-Cheat-System verwendet. Dann haben wir LibGabry.so, das ist irgendeine LibCyncode-Kram, interessiert uns aber nicht wirklich. Dann haben wir die Lib C to S kommen, das ist irgendeine Shared-Header-File, ist für uns auch uninteressant, weil wir erkennen auch an der Größe von der Datei, da steht ziemlich wenig drin. Und dann haben wir eine LibPickle.so, das ist eine Pearl-Library, für uns also auch völlig irrelevant. Dann haben wir aber eine Datei, und zwar die LibC to S, Smon, und das ist die wirkliche Spiel-Library, das erkennen wir auch an der Größe, das sind so vier MB oder sowas, also das ist wirklich die Datei, die wir eben reversen wollen. Gut, dann fangen wir eben damit an, IDA erstmal zu starten und ja, das dauert dann so ein bisschen, bis er die ganzen Sachen geladen hat und IDA kennt eben die App, selbst nutzt die ARM-Architektur, aber ja, das interessiert uns erstmal nicht, weil wir werden uns hauptsächlich mit dem Pseudo-C Generator auseinandersetzen. Und was wir jetzt machen können, ist, wir können einfach mal nach Funktion Key suchen, also IDA bietet euch da eben die Möglichkeit, nach Funktion zu suchen, wie man hier links sieht. Und wenn wir nach Key beispielsweise suchen, die heißt get the Cription Key und es gibt auch die create-encryption-Key-Funktion und da drin sehen wir dann gleich, okay, es wird RANEDAL genutzt als Verschlüsselung, was ihm ja auf AI erst deutet und ja, da können wir dann auch die nötigen Informationen raussehen, wie groß der Key ist und ja, also das kann man dann eben alles anhand von diesem C-Code erkennen. Und ja, was wir im Prinzip machen müssten ist, das werde ich jetzt natürlich hier nicht zeigen, aber natürlich halt nicht, dass jetzt das Spiel ja komplett Open Source, oder die Hacks komplett Open Source sind nicht mit mich durch nur einen Anreiz geben, also was eben im Prinzip machen müsstest, ist rausfinden, okay, was steckt zum Beispiel hinter V14 und dann findet ihr zum Beispiel schon die nötigen Stellen, aber ja, das überlasse ich komplett euch. Ja, dann kommen wir zum nächsten Punkt, und zwar ja, wir reversen eben erstmal und unsere Funde sind folgende. Erstmal, es wird die AIS 128CBC Verschlüsselung genutzt und als Padding wird PKCS7 genutzt. Das erkennen wir einfach aus den ganzen Funktionen, die genutzt werden und die Parameter, die übergeben werden. Dann finden wir auch noch den AIS Key Version 1, der heißt doch so wirklich im Spiel, das ist einfach einen 16-byte Key, der eben in der AIS einfach genutzt, also für die AIS Verschlüsselung einfach genutzt wird und wir haben noch einen Version 2 Key, der liegt auch irgendwo im Kleint, den müssen wir uns dann eben, also da müssen wir uns die Bytes dann eben aus dem Bereich einfach ausziehen. Nun, dann wenn wir eben schon die Verschlüsselung verstanden haben und eben die Pakete auch entschlüsseln können, müssen wir uns daran setzen, das Protokoll zu verstehen. Dazu können wir uns einfach mal ein Test Programm schreiben, um die Pakete zu entschlüsseln und verschlüsseln. Das habe ich in dem Fall in Node.js gemacht. Und ja, da haben wir jetzt die Data, die wir uns sammeln, ist in der Login, Chat Funktionen und so Sachen, also wir sollten uns da einfach mal so eine ganze Liste machen an Paketen. Und optional, was ich auch gemacht habe, ist einen sogenannten Wireshark Lua Desector schreiben. Was das ist, ist ihr schreibt einen Java in den Lua Code und der tut euch dann eben die ganzen Pakete pasen und dann könnt ihr zum Beispiel da eure AIS Verschlüsselung einbauen und ihr könnt euch direkt eben die Pakete im Klartext anzeigen lassen. Und dann sieht man den Infekt so aus. Also den Lua Desector, den kann ich auch noch online stellen. Da werde ich aber dann den Schlüssel einfach ausnehmen. Das heißt, wenn ihr den Schlüssel rausgefunden habt, dann könnt ihr den Desector einfach nutzen. Und ja, hier sehen wir zum Beispiel Encrypted, das ist der übliche Base64 Key. Oben sehen wir auch noch den Timestamp. Und unten sehen wir jetzt das entschlüsselte Paket. Und was wir da als erstes erkennen ist, also das Protokoll ist eigentlich ganz simpel. Es werden einfach Jasons hin und her geschickt. Das heißt, das sollte eigentlich gar kein Problem sein, da die Daten zu verändern. Und ja, in dem Fall ist dieses Paket für den Session Login zuständig. Das heißt, euch zu authentifizieren, wenn ihr schon mal bereits drin wart, da wird eben die AppID mitgeschickt und dann eben die DeviceID. Und als Sessions, in einem Sessions Array übergibt ihr dann einfach die ganzen Sessions, die ihr bisher kennt, ob die Session gültig ist und lässt euch dann eben weiter. Wenn ich dann, macht ihr eine komplett neue Session auf. Hier nochmal vergrößert. Ja, die Länge sagt eben einfach, die Länge von die Länge ist eigentlich gar nicht so wichtig sehe ich gerade, vergiss die Länge einfach. Also was wirklich wichtig ist, ist der Timestamp daran erkennt, der Server eben wirklich, ist es eine gültige Session. Das nächste Paket wäre zum Beispiel was er kennt, das erkennt wir dann eben auch daran, welche Verschlüsselung genutzt wird und welcher Host genutzt wird. Hier eben wieder sammlersoir-eu.comtours.net Da sehen wir zum Beispiel hier steht der Command oder der Befehl, also in dem Objekt Wert Command. Hier nochmal vergrößert, da wird zum einen eine Channel UserID mitgeschickt, die mit 9.01 anfängt. Dann der Command Check Login Block, da wird wahrscheinlich gecheckt, dann kommt der Game Index, die Protokoll Version und ja, dann der Session Key und der ist derselbe wie die Channel UserID. Was könnte das wohl bedeuten? Also die Channel UserID um euch vielleicht ein bisschen auf die Sprünge zu helfen, das sind Sachen, die könnt ihr von jedem Nutzer bekommen und das heißt, ihr könnt theoretisch auch eine Session übernehmen aber so viel dazu. Das ist jetzt ein Chat Paket das nutzt eben diesen Channel Key Version 2 den ihr vorhin eben gesehen habt beziehungsweise den ich angesprochen hab und da sehen wir zum Beispiel, wenn wir ein Paket bekommen oder eine Chat Message, die ist erstmal ziemlich groß und die also die Programmiere haben es ja auch gar nicht gescheut irgendwie die größte der Pakete zu reduzieren oder sowas naja, verstehe ich nicht warum da wird eben auch die Chat Version mitgeschickt also falls sich was in dem Chat Protokoll geändert hat, dann wird das eben da an der Chat Version erkannt und ja, ein Chat Type das ist in dem Fall eure Schriftfarbe und also Notices zum Beispiel hätten glaube ich den Wert 2 normale User Nachrichten sind eben 3 ich vergrößere das gerade nochmal dann sehen wir Chat Wizard nehmen das ist der User, der die Nachricht verschickt hat wir sehen die Hub UserID eine Wizard UserID und so weiter sein Level sehen wir auch und ganz unten die Chat Nachricht LOL ich glaube da hat Selman sich ein Spaß erlaubt gut, wenn wir das alles eben erstmal beisammen haben wir wissen welche Host Adressen sind wichtig wir wissen wie werden die Pakete verschlüsselt und wie müssen sie wir sie entschlüsseln dann machen wir uns erstmal daran ein HTTP Proxy zu schreiben in der beliebigen Sprache unserer Wahl da habe ich eben wie gesagt Notices genommen ja, also das sollte eigentlich ziemlich klar sein wie man eben ein HTTP Proxy schreibt da wird kein besonderes Protokoll den Proxy Cap so einrichten dass es eben BlueStacks umleitet auf eben unseren internen Proxy zum Beispiel auf Port 8080 oder sowas dann müssen in unserem Proxy die Pakete entschlüsseln, ändern und wieder verschlüsseln und ja, damit können wir dann zum Beispiel so Sachen machen wie die Chat Nachricht verändern die Monster mit allen Schlag töten oder sowas, das sind alles Sachen die möglich sind und ja, dann am Ende kommt es eben daran Spaß zu haben mit den ganzen Proxy, die wir eben dann am Protokoll erkennen ich habe mir mal hier eine Liste gemacht was so alles möglich ist zum einen gibt es zum Beispiel den One Hit da könnt ihr jedes Monster mit einem Schlag töten ihr könnt in fremden Namen chatten ihr könnt die Chatfarbe ändern und da beim Chat geht sogar vieles mehr also, das ist nicht mal das Ende ihr könnt automatisierte Stage-Clearms betreiben also ihr könnt ja jede Stage einfach durchmachen ohne wirklich irgendwas machen zu müssen Fremde Sessions übernehmen wie gesagt, anhand von der User-ID die Session-ID erkennen und ja, da kann man auch ziemlich dofe Sachen machen ja, da ist noch vieles mehr möglich und ja, da habe ich verkackt okay, da können wir zum ersten Mal an den One Hit den habe ich aufgenommen weil ProxyCat bei mir rumgespint hat da habe ich mich noch gestern am Drang gesetzt ein paar Videos mit Selman zu machen also tut mir leid, dass ich da keine Live-Vorschläge machen kann aber ich hoffe mal, das reicht auch auf Play so, auch ohne Sound also wie man hier sieht jedes Monster, was man einmal angreift liegt im Insten da so das ist ja ziemlich straightforward eigentlich ja, ich zeig euch noch ich lasse dich da mal noch kurz also das geht schnell und wenn man jetzt ehrlich spielen würde dann würde man dafür ja schon länger brauchen also bestimmt gut, das war's vom One Hit was noch möglich ist, ist mit dem Chat da haben wir gestern Abend auch ziemlich auf die Kacke gehauen zum einen haben wir Leute dazu gebracht, was Lustiges zu machen ich bring mal eben den Chat ein bisschen nach vorne, vielleicht könnt ihr das lesen so was hatten denn wir dann geschrieben surprise giveaway the first 50 players that write gpn16 in the chat will get a special reward mal gucken, was da passieren könnte oh, moment ich hab auch so jemand geklickt so, dann mache ich mal Play das Wort ein bisschen ist ein Handy Game also da zu tippen dauert hm oh gn16 oh gnp oh, irgendein Spammer also die schreiben auch gpn15 what's going on ok, also wir haben das ziemlich lang laufen lassen und ja, die haben also echt noch sieben Minuten danach irgendwie haben welche gpn16 geschrieben also die haben sich anscheinend irgendwie hoch geschaukelt jeder den anderen, das war ziemlich lustig hm neulich schlossen, bisschen laufen badman works alone what's this gpn16 also manche können vielleicht auch gar nicht zählen also ich glaube 50 Leute haben da bestimmt schon geschrieben aber naja, das war's davon dann haben wir noch denselben Spaß damit gemacht, einfach weil's so schön war und zwar lass ich auch mal kurz den Chat hier reinlaufen so ok, so jetzt mach ich stopp dear players, due to a server emergency maintenance all the servers will be shut down until tomorrow 1pm to save your current account data simply type save data into the chat thank you so naja gucken wir mal, ob welche save data in den chat geschrieben haben es ist ein ziemlich langer Satz oder Wort ah, da ist er schon der erste ok und jetzt jetzt fängt es erstmal an also das ging auch ziemlich lang so, also die ganze Leute haben echt auch wieder so 6-7 Minuten sich gegenseitig hoch geschaukelt und die ganze Zeit save data in den chat geschrieben und ja, also wir haben Tränen gelacht so und dann haben wir uns noch einen Spaß erlaubt für die, die findet Nemo geguckt haben dürfte es auch ganz lustig sein surprise giveaway type mine in the chat to get a special gift so, dann gucken wir mal also die Leute sind echt ständig drauf reingefallen mine mine mine also das ging auch ziemlich lang so gut dann tut mir leid, dass es so kurz war ich habe es mir länger vorgestellt, aber das war es dann mit dem Vortrag dann vielen Dank für eure Aufmerksamkeit