Hi, ich habe eine Billigdrohne, welche auf den Namen Simulus GH-50.cam hört. Sie ist per App (Appname derselbe wie der Drohnenname) steuerbar und daher ging ich davon aus, dass ich sie auch per Computer steuern könnte.
Also habe ich den Datenverkehr mitgeschnitten und kam auf folgendes Ergebnis:
App -------------------------> Drohne (WLAN AP)
beliebig/TCP (Client) 8888/TCP (Server)
6666/UDP (Client) 5555/UDP (Server)
Fragmentierte IP Packete, welche die Videoübertragung enthalten (natürlich von der Drohne gesendet)
Die Befehle werden per UDP gesendet und haben ein festes Format. Leider nimmt die Drohne keine Befehle entgegen, solange die TCP Verbindung nicht besteht und die TCP Verbindung funktioniert folgendermaßen:
Sobald jemand erfolgreich verbunden ist, sendet die Drohne 20bytes an Daten, welche an bestimmten Stellen Zeit übertragen, an manchen Stellen konstant sind und an manchen Stellen komplett (so scheint es) zufällig sind.
Die App antwortet dann mit 12bytes ähnlichem Unverständlichem und falls die 12bytes innerhalt von 0.3 sekunden als antwort übertragen wurden, bleibt die verbindung offen, andernfalls wird sie geschlossen.
Logische Folgerung: Ich muss wissen, wie dieser Austausch funktioniert.
Ich habe dann ein wenig getestet.
Das merkwürdige ist Folgendes: Die App antwortet unterschiedlich auf dasselbe Packet und die Drohne akzeptiert beliebige Packet von der App nicht. Außerdem antwortet die App nicht auf jedes Packet, sondern nur auf ganz spezielle.
Ich weiß wirklich nicht mehr weiter und daher dachte ich, ich frage mal hier, ob einer von euch evt. schon mal so was gesehen hat....
Vielen Dank in jedem Fall!
Felix
P.S.: Source code habe ich schon angefordert. Daraufhin kam eine beschädigte Datei auf einer CD per Post mit dem falschen Code drauf und auf meine Meldung hin sagten sie das wäre das einzige und schickten es nochmal....
Also habe ich den Datenverkehr mitgeschnitten und kam auf folgendes Ergebnis:
App -------------------------> Drohne (WLAN AP)
beliebig/TCP (Client) 8888/TCP (Server)
6666/UDP (Client) 5555/UDP (Server)
Fragmentierte IP Packete, welche die Videoübertragung enthalten (natürlich von der Drohne gesendet)
Die Befehle werden per UDP gesendet und haben ein festes Format. Leider nimmt die Drohne keine Befehle entgegen, solange die TCP Verbindung nicht besteht und die TCP Verbindung funktioniert folgendermaßen:
Sobald jemand erfolgreich verbunden ist, sendet die Drohne 20bytes an Daten, welche an bestimmten Stellen Zeit übertragen, an manchen Stellen konstant sind und an manchen Stellen komplett (so scheint es) zufällig sind.
Die App antwortet dann mit 12bytes ähnlichem Unverständlichem und falls die 12bytes innerhalt von 0.3 sekunden als antwort übertragen wurden, bleibt die verbindung offen, andernfalls wird sie geschlossen.
Logische Folgerung: Ich muss wissen, wie dieser Austausch funktioniert.
Ich habe dann ein wenig getestet.
Das merkwürdige ist Folgendes: Die App antwortet unterschiedlich auf dasselbe Packet und die Drohne akzeptiert beliebige Packet von der App nicht. Außerdem antwortet die App nicht auf jedes Packet, sondern nur auf ganz spezielle.
Ich weiß wirklich nicht mehr weiter und daher dachte ich, ich frage mal hier, ob einer von euch evt. schon mal so was gesehen hat....
Vielen Dank in jedem Fall!
Felix
P.S.: Source code habe ich schon angefordert. Daraufhin kam eine beschädigte Datei auf einer CD per Post mit dem falschen Code drauf und auf meine Meldung hin sagten sie das wäre das einzige und schickten es nochmal....