NEWS
[Frage] Xiaomi Vacuum cleaner
-
Beim Air Purifier sind die letzten 16 Byte der Antwort auf HELO der Token. Bei dem Vaccum sind diese 16 Byte alle auf 0xFF gesetzt. `
Beim Vacuum auch, nur im Ping-Request (oder HELO, oder wie man es nennen will) sind die letzten 16 Byte 0xff,aber im Ping-Response vom Vacuum sind Zeichen vorhanden.
Dann scheint meine Vermutung zu diesen Daten doch zu stimmen, siehe hier http://forum.iobroker.net/viewtopic.php … =60#p53764
…in diesem Post habe ich jedoch den Schlüssel vorsorglich manipuliert
Ich sende Dir heute Abend mal einen Wireshark dump.
-
Beim Air Purifier sind die letzten 16 Byte der Antwort auf HELO der Token. Bei dem Vaccum sind diese 16 Byte alle auf 0xFF gesetzt. `
Beim Vacuum auch, nur im Ping-Request (oder HELO, oder wie man es nennen will) sind die letzten 16 Byte 0xff,aber im Ping-Response vom Vacuum sind Zeichen vorhanden. `
Ich glaub ich spinne…...Dummerweise sind jetzt auch bei mir in der HELO-Antwort keine Zeichen mehr vorhanden :shock:
Da ich zwischenzeitlich Firmwareupdates (mittlerweile auf 3.3.6_003032) durchgeführt habe vermute ich, dass dies evtl. damit abgedreht wurde.
Ich habe mir aber die damalige Antwort kopiert, vielleicht kannst Du damit etwas anfangen...
Diese und den Wireshark Dump habe ich Dir als PN gesendet.
Nochmals vielen Dank für Deine Arbeit!
-
eastcoast und gst666,
Ich verstehe zwar kein Wort von dem, was ihr hier schreibt. Aber dafür bewundere ich Euch!
-
Ich habe noch Nachrichten logs von vor ein paar Wochen schaue morgen ob was brauchbares dabei ist und das schicke es dir auch
Gesendet von meinem E5823 mit Tapatalk
-
> …Dummerweise sind jetzt auch bei mir in der HELO-Antwort keine Zeichen mehr vorhanden
Gut das Du noch eine alte Nachricht hast. Dann haben wir immerhin den Token. Ich werde dann mal schauen, ob der noch funktioniert.
Immerhin scheint es so zu sein, dass Bytes 8 und 9 (1. Byte wird als 0 gezählt) bei dem Vacuum immer 0x03 0x4c lautet. Das schein die Gerätekennung zu sein. Ich wäre dankbar, wenn andere das auch noch prüfen können.
Ich hoffe, das möglichst viele noch alte Logs haben, so dass die Schlüssel entschlüsselt werden können. Ich bin gespannt, ob die Schlüssel möglicherweise immer identisch sind. Wenn nicht müssen diese irgendwann mal gespeichert werden. Entweder beim ersten Einrichten oder sie werden aus der Cloud geladen. Vermutlich kommen sie dann aus der Cloud, da man sonst ja nicht nachträglich ein weiteres gerät einrichten könnte.
-
Ich hoffe, das möglichst viele noch alte Logs haben, so dass die Schlüssel entschlüsselt werden können. Ich bin gespannt, ob die Schlüssel möglicherweise immer identisch sind. Wenn nicht müssen diese irgendwann mal gespeichert werden. Entweder beim ersten Einrichten oder sie werden aus der Cloud geladen. Vermutlich kommen sie dann aus der Cloud, da man sonst ja nicht nachträglich ein weiteres gerät einrichten könnte. `
Leider keinen Erfolg, alle Nachrichten haben FF in den 16 Byte
-
Für alle die noch eine alte Firmware haben, lasst sie im Moment dringend drauf.
Jetzt die guten Nachrichten:
Wer einen alten Mitschnitt mit HELO-Nachrichten noch hat (oder noch besser alte Firmware) kann den dort eimittelbaren Token weiter verwenden.
Hier die entschlüsselte Nachricht, um den Roboter zu starten:
{"id":6430,"method":"app_start"}
Die ID ist frei vererbbar und dient dazu, die Antworten einer Anfrage zuordnen zu können.
Der eigentliche Befehl heißt app_start. Ohne viel Fantasie aufwenden zu müssen wird der Befehl zum Stoppen app_stop heißen.
Spannend ist, ob wir einen Weg finden, an den Token bei der neuen Software zu kommen.
Das Skript, an dem ich bastle wird auch so langsam fertig. Spätestens am Wochenende wird es wohl soweit sein.
-
Für alle die noch eine alte Firmware haben, lasst sie im Moment dringend drauf.
Jetzt die guten Nachrichten:
Wer einen alten Mitschnitt mit HELO-Nachrichten noch hat (oder noch besser alte Firmware) kann den dort eimittelbaren Token weiter verwenden.
Hier die entschlüsselte Nachricht, um den Roboter zu starten:
{"id":6430,"method":"app_start"}
Die ID ist frei vererbbar und dient dazu, die Antworten einer Anfrage zuordnen zu können.
Der eigentliche Befehl heißt app_start. Ohne viel Fantasie aufwenden zu müssen wird der Befehl zum Stoppen app_stop heißen.
Spannend ist, ob wir einen Weg finden, an den Token bei der neuen Software zu kommen.
Das Skript, an dem ich bastle wird auch so langsam fertig. Spätestens am Wochenende wird es wohl soweit sein. `
Kann man auch sehen, was wird geantwortet? -
Ja, kann man:
{ "result": 0, "id": 6430 }
Die ID ist dieselbe, da es ja die Antwort auf die Frage ist. Der Fehlercode ist null.
Das Progrämmchen, an dem ich bastele, kann die Nachrichten codieren/decodieren und an das Gerät senden und empfangen.
Der Befehl für Pause lautet:
{"id":8243,"method":"app_pause"}
Dann gibt es noch einen Befehl, damit die Kiste wieder zur Ladestation zurückbeordert wird:
{"id":8093,"method":"app_charge"}
Ich werde eastcost das Programm dann mal zum Testen schicken, damit evt. Fehler noch beseitigt werden, bevor ich es in die freie Wildbahn entlasse.
-
Hier die Befehle für den Airpurifier:
"method":"get_prop","params":["aqi","led","mode","filter1_life","buzzer","favorite_level","temp_dec","humidity","motor1_speed","led_b","child_lock","use$ "method":"set_power","params":["on"] "method":"set_power","params":["off"] "method":"set_mode","params":["auto"] "method":"set_mode","params":["silent"] "method":"set_mode","params":["favorite"] "method":"set_level_favorite","params":[10] // Für Favoriten "method":"set_buzzer","params":["on"] "method":"set_buzzer","params":["off"] "method":"set_led_b","params":[0] "method":"set_led_b","params":[1] "method":"set_led_b","params":[2] set_app_extra","params":[0] //Turbo mode off set_app_extra","params":[1] //Turbo mode on
-
Ich kenne mich mit der Verschlüsselung nicht so gut aus. Kann man nicht wen man weiß was drin steht und die verschlüsselte nachricht hat einen Token generieren?
Gesendet von meinem E5823 mit Tapatalk
-
Grundsätzlich kann man das. Ist nur eine Frage der Zeit.
Hier mal eine alte Diskussion:
http://security.stackexchange.com/quest … the-key-is
Das geht heute sicherlich schneller. Wenn Du nicht ausreichend Rechenleistung hast, kann es trotzdem Jahre bis Jahrzehnte Dauern. Deshalb ist das für einen normalen Nutzer keine sinnvolle Option. Besser ist es herauszufinden, wann der Token übermittelt wird.
Wenn der Token für jedes Gerät anders ist (so sieht es zur Zeit aus), so muss die App irgendwann mal erfahren, wie der Token lautet. Wenn das Gerät den Token nich bei dem Start der App ausplaudert, so wird die App den Key wahrscheinlich aus der Cloud erfragen.
Ein Test-Szenario wäre, den Internetzugang abzuklemmen und den Gesamten Verkehr zwischen Robot und App mitzuschneiden. Wenn die Info immer von der App aus der Cloud geladen wird, so dürfte sich das Gerät nicht mehr bedienen lassen. Wenn der Robot noch funktioniert, so müsste man sich den Datenverkehr anschauen ob der Key jetzt doch von dem Robot mitgeteilt wurde. Wenn nicht, so hat die App den Token zwischengespeichert.
Hier würde dann nur helfen, die App nebst Daten zu löschen und neu zu installieren und den Datenverkehr mitzuschneiden.
Ein anderer Ansatz wäre, den Datenverkehr mitzuschneiden, wenn das Gerät (WLAN-Einrichtung) erstmalig eingerichtet wird. Hier wird das Gerät mit Sicherheit den Token verraten. Auch die Cloud braucht ja irgendwann einmal den Token.
-
> Ein anderer Ansatz wäre, den Datenverkehr mitzuschneiden, wenn das Gerät (WLAN-Einrichtung) erstmalig eingerichtet wird. Hier wird das Gerät mit Sicherheit den Token verraten. Auch die Cloud braucht ja irgendwann einmal den Token.
Da ich meinen noch nicht habe und demnächst erst einrichte: wie geht das Mitschneiden? Ich würde das ja tun, und dem Forum zur Verfügung stellen, wenn ich eine möglichst detaillierte Step by Step Beschreibung bekäme. Oder es kommt jemand zu mir und wir machen das gemeinsam (wenn jemand in der Nähe von Köln wohnt). Bin zu allen Schandtaten bereit - wenn ich damit helfe kann.
-
…und noch eine kurze Frage resp. Hinweis. Obwohl ich ja das Gerät noch gar nicht habe, habe ich mir aber schon die App unter iOS heruntergeladen und mich angemeldet. Beim "Spielen " habe ich gesehen, dass unter meinem Profilbild eine 10-stellige Zahl steht.
Hat die eine Bedeutung für unsere Fragestellungen? Hat die was mir dem Token zu tun?
-
Heute habe ich schon wieder neue Erkenntnisse gesammelt. Der Token kann sich ändern. Wenn man das Gerät abmeldet und anschließend neu anmeldet, hat das Gerät einen neuen Token. Daher an alle, die bei dem Vacuum den Token haben, ja nicht Gerät abmelden und anschließend anmelden.
Des Weiteren habe ich noch eine interessante Erfahrung gemacht. Ein Device wird nur dann angezeigt, wenn man in der App dieselbe Zone (z.B. China Mainland) einstellt, wie diejenige Zone, die man auch bei der Einrichtung verwendet hat. Ich hatte auf dem Handy Singapore eingestellt und damit das Gerät eingerichtet. Auf Openstack habe ich Mainland China verwendet und konnte das Gerät nicht sehen. Nach dem Umstellen war es plötzlich da. Da das Gerät auch in Mainland China verfügbar ist, heißt dass, dass für jede Zone die Geräte getrennt in der Cloud verwaltet werden.
-
So im Augenblick sind neue Erkenntnisse etwas zäh. Leider Schaffe ich es nicht mittels Bluestack meinen Air Purifier neu anzumelden. Das liegt wohl daran, das das Anfragen die eigentlich ins Netz laufen sollten ins leere laufen.
Dabei ist mir aber eine Eigenheit aufgefallen. Resetet man das Gerät bzw. meldet es ab, so erhält es mit dem Abmelden einen neuen Token und nicht erst bei der neuen Anmeldung. Es wäre klasse, wenn einer, der den Vacuum hat und schon die neue Firmware ohne passenden Token hat, mal sein Gerät abmelden könnte. Es wird dann ein neues WLAN angezeigt. Dieses bitte auswählen und dann an die Adresse 192.168.13.1 auf den UDP Port mal das Magic Paket senden. Es würde mich interessieren, ob in diesem Augenblick das Paket übermittelt wird. Dies könnte den anderen helfen.
-
…und noch eine kurze Frage resp. Hinweis. Obwohl ich ja das Gerät noch gar nicht habe, habe ich mir aber schon die App unter iOS heruntergeladen und mich angemeldet. Beim "Spielen " habe ich gesehen, dass unter meinem Profilbild eine 10-stellige Zahl steht.
Hat die eine Bedeutung für unsere Fragestellungen? Hat die was mir dem Token zu tun? `
Hallo,
ich hab auch so eine 10-stellige Zahl dort stehen.
Weißt du mittlerweile für was die gut ist?
P.S.
Mein robot ist auch noch nicht da.
Bestellt am 05.02.
shipped out am 17.02.
Bei Hermes bisher noch nicht angekommen.
@all
Gibt es einen Ablauf bei Erstinbetriebnahme des Geräte den man beachten sollte.
z.B. gleich von Anfang an die Wifi signale auffangen.
mfg
-
Habe heute die Anzeige bekommen dass ein Firmware Update bereit steht. Werde morgen früh den Roboter mal neu anmelden und schauen was er macht und danach das ganze mal mit der neuen Firmware ausprobieren. Vll ist der Token ja wieder da…
Gesendet von meinem E5823 mit Tapatalk
-
1. nein, keine Ahnung, was das ist. Aus dem Forum hat ja leider auch niemand dazu geantwortet;-(
2. bestellt am 28.1. Status:
` > 2017-02-12 19:12:00 Parcel departure in Shenzhen Sorting Centre
2017-02-13 06:33:00 Parcel departure arrive in HongKong Sorting Centre
2017-02-14 10:25:00 Parcel is leaving Hong Kong Airport
2017-02-15 10:35:00 United Kingdom Lonton Sorting Centre
2017-02-16 08:15:00 Information sent to Germany `
Warten wir es ab!
-
du hast ja viel da stehen; bei mir steht nur:
filename="bild1.jpg" index="0">~~Die 10 stellige Nr. scheint wohl die account Nr. zu sein. Also wahrscheinlich eine laufende Nr. bzgl. unserer Anmeldung bei mi home.
mfg