Pokemon GO API changes - Bots aren't working for now

08/03/2016 23:57 Englify#1
Why?

Yesterday around 22:00 a Pokemon GO force update arrived.

Servers in Germany (confirmed) were down, most likely due some backend changes.

Niantics Pokemon GO API has changed too, so the bots won't work for now.
The authors of the bots has already noticed and are waiting out the fixes.

According to reddit (/pokemongo, /pokemongodev), there are no official mentions about ban waves yet!

Why are all bots down now?

They got on ice simultaneously, since they rely on pre-built libraries, which wrap the communication part with the Niantic API for them. This means, they all depend on the same thing, and won't likely get updated separately therefor.
The bot creators just added things like simple AIs and GUIs on top, which mimic human behaviour to make things faster and click&win for us.

Niantic knew this time will come, this is just a totally fine response and was only a matter of time.

Just lay back and wait for a update.

Update: 13:50;06.08
Quote:
Die Sorge, dass dies nicht die letzte knifflige Sicherheitsänderung seitens Niantic ist, ist berechtigt und wird von vielen Usern, sowie den derzeitigen API reverse engineers geteilt.

Allerdings schließen sich mit jedem Sicherheitsupdate auch Türen, sowie Motivation und Möglichkeiten der Niantic Entwickler. Sobald die aktuelle Verschlüsselung vollständig geknackt ist, wird Niantic in kürzester Zeit das nächste Update veröffentlichen, aber auch sie müssen mit jedem mal mehr Köpfchen und Wissen einfließen lassen. Es gibt nur eine Hand voll an effizienten Möglichkeiten, Sicherheitsupdates für Client und Server einzubauen. Dazu kommt, dass Niantic auf ein perfektes Spielerlebnis aus ist - dadurch können experimentelle Sicherheitsupdates wie z.B. das Nutzen von neuronalen Netzwerken, um Spieler verhalten zu validieren, nur kaum bis gar nicht umgesetzt werden, da sich das dann negativ auf den 0815 Spieler auswirkt.

Bots wird es allerdings immer geben, es gibt hunderte Möglichkeiten einen Bot für Pokemon GO zu erstellen, und ihn 1:1 wie einen menschlichen Spieler agieren zu lassen, sogar ohne den Gebrauch der aktuellen API Wrapper - das aktuelle Problem ist nur, dass sämtliche Bot's die gleichen Wrapper benutzen, um auf die Niantic API zuzugreifen, da die Wrapper schlicht und weg einfach zu bedienen und als erstes auf dem Markt waren.
Zudem findet die aktuelle Kommunikation über Google's Protocol Buffer statt, welche effizient, aber einfach mitzuschneiden, nachzubauen und zu entschlüsseln ist (High-five an Niantic).

Unsere reverse engineers sind sehr talentiert, allerdings ist die Motivation dahinter noch wichtiger - wenn diese erlischt hat Niantic gewonnen.
Update: 18:54;05.08
Quote:
Many parts of the unknown6 encryption algorithm were decompiled successfully, as well as re-compiled into a dll. But there are still big mysteries how the encryption actually gets run, and the related protocol field isnt stable.

The unknown6 project got moved over to [Only registered and activated users can see links. Click Here To Register...], multiple developers are still working on it, tirelessly.

The discord channel got flooded by thousands, causing a bizarre back and forth of rw-permission changes. For now, #api-debugging is read-only.
Update: 16:30;04.08

Update: 10:00;04.08

Update: 01:25;04.08

Useful links:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

I know this is a release section, but since most threads relate to botting, things are frozen for now.

This head relates to counter shitposts and false statements, just lists latest updates here.
08/04/2016 01:10 toker#2
you're the hero man
08/04/2016 01:15 pinsel693#3
Well done. Keep us up to date
08/04/2016 01:18 Pancake'#4
Thanks m8
08/04/2016 02:42 iLeo-#5
Oh :o So we have to play legit now =(
08/04/2016 03:00 Paxxe#6
Endlich... wurd auch mal Zeit! :)
08/04/2016 03:05 omginauto#7
und das heist das wer multi acc hat wird gebannd?
08/04/2016 09:28 Pokewallie#8
Thank you very much.
08/04/2016 09:56 Snorlax#9
#pinned until the bots are working again.
08/04/2016 10:19 Gt-Kingz#10
Quote:
Originally Posted by omginauto View Post
und das heist das wer multi acc hat wird gebannd?
Ich habe da meine ganze eigene Theorie..

Niantic hat in der Vergangenheit ja bereits ein ähnliches Spiel namens Ingress herausgebracht. Dort war es Niantic möglich zu sehen, wer einen offiziellen Client (Android/IOS App) benutzt. Das ganze funktioniert so: Der Server steht in Erwartung einen Krypto-Schlüssel zu empfangen, einen sogenannten BLOB. Falls dieser valid (=gültig ist), kommt man problemlos auf den Server. Wenn der BLOB allerdings null ist, dann akzeptiert der Server den Schlüssel nicht. Dieser Schlüssel wird alle 5 Sekunden aktualisiert. Man spricht auch von einem nullClientBlolb, der quasi von allen Bots genutzt wird.
Fakt ist, Niantic hat diese Sicherheitsfunktion bereits seit dem Release von PoGo implementiert. Sie haben die Server nur so konfiguriert, dass nullClientBlobs akzeptiert werden. Das ist der Grund, warum inoffizielle Clienten wie zB. Bots so einfach funktionierten.
Wer nun 1 und 1 zusammenzählt, der weiß dass es mehr als einfach für Niantic sein wird, ausfindig zu machen wer sich nun über inoffizielle Clienten angemeldet hat. Denn wer einen nullClientBlob zum einloggen benutzte, wurde ganz einfach geloggt.

Das ganze wird auch durch die Aussage eines PokeMesh-Entwicklers untermalt:
Quote:
6am report: there is a whole community of devs from all around the world, in which im glad to be in and give my contribution working on this. So far, here is what we discover. What is blocking everything is that unknown6 i spoke you in some post before. This is a value that the app send to niantic server. As opposed to what we tought, niantic devs aren't that bad. By digging into it, after almost 4 hours of works, we get that this value is a checksum to sign all the requests (basically, a unique special key that change every 5 seconds and let niantics known that the requests are sent from the original app). The hard part, is that this key is implemented till the first version, but never used. So, we are almost 3/400 people digging into the whole code to find the algo that generate this key. It's hard, becouse itsn't new. They just click on the switch 6 hours ago from their sofa. Im almost sure a solution will come, but will take a bit more! WP niantics! ^^
Quelle: [Only registered and activated users can see links. Click Here To Register...]
08/04/2016 10:51 Elitehaxxod#11
Und ??? ich wette heute Abend laufen die Bots wieder
08/04/2016 10:53 chris15326#12
Quote:
Ich habe da meine ganze eigene Theorie..

Niantic hat in der Vergangenheit ja bereits ein ähnliches Spiel namens Ingress herausgebracht. Dort war es Niantic möglich zu sehen, wer einen offiziellen Client (Android/IOS App) benutzt. Das ganze funktioniert so: Der Server steht in Erwartung einen Krypto-Schlüssel zu empfangen, einen sogenannten BLOB. Falls dieser valid (=gültig ist), kommt man problemlos auf den Server. Wenn der BLOB allerdings null ist, dann akzeptiert der Server den Schlüssel nicht. Dieser Schlüssel wird alle 5 Sekunden aktualisiert. Man spricht auch von einem nullClientBlolb, der quasi von allen Bots genutzt wird.
Fakt ist, Niantic hat diese Sicherheitsfunktion bereits seit dem Release von PoGo implementiert. Sie haben die Server nur so konfiguriert, dass nullClientBlobs akzeptiert werden. Das ist der Grund, warum inoffizielle Clienten wie zB. Bots so einfach funktionierten.
Wer nun 1 und 1 zusammenzählt, der weiß dass es mehr als einfach für Niantic sein wird, ausfindig zu machen wer sich nun über inoffizielle Clienten angemeldet hat. Denn wer einen nullClientBlob zum einloggen benutzte, wurde ganz einfach geloggt.

Ich hab dann mal eine vielleicht blöde, aber auch aus meinem Interesse heraus resultierende Frage. :D
Es ist dennoch möglich dieses System "auszutricksen"? habe eben mal nach Ingress Bots gegooglet und finde da zumndest 1-2 Sachen zu.
Wenn in Ingress Bots unterwegs sind, würde das ja bedeuten, dass dem (wie auch immer) beizukommen ist?
Ich meine, es gibt ja wirklich oft Sachen bei denen man sich als ahnungsloser nur denkt "wie schaffen die das" :D
Und das würde dann auch definitiv in diese Rubrik gehören!

Vielen Dank für eure Antwort

Liebe Grüße
Chris
08/04/2016 11:01 XYZ-Cannon#13
Quote:
Originally Posted by chris15326 View Post
Ich hab dann mal eine vielleicht blöde, aber auch aus meinem Interesse heraus resultierende Frage. :D
Es ist dennoch möglich dieses System "auszutricksen"? habe eben mal nach Ingress Bots gegooglet und finde da zumndest 1-2 Sachen zu.
Wenn in Ingress Bots unterwegs sind, würde das ja bedeuten, dass dem (wie auch immer) beizukommen ist?
Ich meine, es gibt ja wirklich oft Sachen bei denen man sich als ahnungsloser nur denkt "wie schaffen die das" :D
Und das würde dann auch definitiv in diese Rubrik gehören!

Vielen Dank für eure Antwort

Liebe Grüße
Chris
Hey Chris :)

Ja, es ist möglich das System auszutricksen.
Hierfür muss man "einfach" den BLOB (unten näher erklärt) simulieren. Dafür muss man aber erstmal schauen, was in dem BLOB drinsteht. Um das auszulesen muss man das Programm dekompilieren und die entsprechende Stelle, wo dieser BLOB generiert wird, von Maschinencode (Assembler soweit ich das mitbekommen habe) in eine von uns verständliche Sprache übersetzt werden. Wenn man dann versteht, wie der Kryptokey generiert wird, kann man diesen simulieren und den Teil des Programms in das eigene Programm implementieren.
Das kann aber dauern; stell dir es vor wie einen schwierigen Lateintext der übersetzt werden muss. Das ist nichts unmögliches, aber kostet Zeit.
08/04/2016 11:01 lt_smash#14
Prinzipiell muss man nur" herausfinden nach welchem muster die pruefsummen gebildet werden, und das dann uebernehmen.

Das kann aber durchaus aufwaendig sein bei closed source apps. Ein ansatz waere zu gucken was man bei ingress oder so benutzt, das spiel ist deutlich aelter, darum schon "erforschter" , und aus gruenden der aufwandsminimierung kann es durchaus sein dass die teile des codes recycled oder sogar uebernommen haben.

edit: da war wohl jemand schneller mit der antwort ;)
08/04/2016 11:04 CubaLibreWithIce#15
Beizukommen wäre es immer möglich wenn man alle notwendigen Informationen hätte. Leider wird der Hersteller der Sofwarware welche er vor Bots zu schützen sucht nicht gerade kooperativ sein. Ausserdem mit jedem Update ist er den Botprogrammieren einen Schritt voraus. Im Vorfeld kann man kaum wissen was sich an dem Spiel verändert hat. Ausnahme man kommt an interne Informationen. Ansonsten ist man drauf angewiesen nach bestem Kenntnisstand den Bot anzupassen.
Oft genug sammelt der Hersteller erst die Daten über Spieler und startet dann eine Bannwelle. Diese hat dann eine bessere mediale Wirkung als Einzellbanns.
Aber alleine schon durch die einfachste Methode, die Auswertung des Verhaltens, Anzahl der Pokestops etc. kann man Aussagen träfen.
Nun man kann sagen wer Tools benutzt trägt ein gewisses Risiko und muss abwegen ob es ihm wert ist.