RP ✔️ Soflow app Reverse Engineering, geheimer Tester/Admin Modus und mehr

Hi,

so sieht's bei mir aus mit der Serial-Bluetooth-Terminal App via BLE zum SO4 Pro 2Gen.:

- Roller einschalten
- Oben links die drei Linen drücken
- Auf Bluetooth LE Reiterkarte wählen
- Scan drücken, warten und den Scooter Mac-Adresse auswählen
- Zurück zum Hauptbildschirm der App

devices.jpg



Macro anlegen (durch länger drücken der vorinstallierten Macroprofile).
Name, Value von der BLE-Codesliste einfügen, HEX wählen und speichern auf den Hakensymbol:

macro_22.jpg



Hier Beispielweise 12 angelegte Macros:

Serial-Bluetooth-Terminal.jpg


Alles was ein Soflow braucht, noch einfacher geht's net mehr.
Wer noch zusätzlich mp/h oder km/h Umstellung braucht, könnte man noch bis zu 18 Macros anlegen dann wird's Dreireihig (siehe Settings / Misc.).


Dann nur noch oben rechts auf den Connect-Symbol anklicken und Macro wählen, und ab die Post:

AppScreen.jpg


Solange Verbindung besteht ist jederzeit änderungen möglich, bis man es disconnectet (oben rechts).

PS: Nur ein Ratschlag. Master-Lock Handschellenschloss und ABUS-Alarmbox anschaffen wenn es so einfach unlocken kann ohne Anmeldung.

Gruss an alle...
 
Zuletzt bearbeitet:
ich habe aber irgendwo hier oder in einem anderen Forum eine kleine Aufschlüsselung darüber gefunden
Ich habe den von simcraftlol geschriebenen Text in einem anderen Forum gefunden und erlaube mir diesen hier zu kopieren.
Durch die angefügte Erklärung können hier nun vielleicht ein paar Programmierer etwas anfangen und den Code für den so3 umschreiben.
Hier der Text:
………………..
Es steht im Code der App, manche haben eine länge von 6 blöcken (1 block = 2 Stellen) manche haben eine länge von 7 blöcken, 6 blöcke = 12 und 7 blöcke = 14

Nehmen wir als Beispiel: D7 07 A9 00 01 9a 4B

Der erste block (D7) ist der Anfang vom Befehl, ist bei allen gleich

Der zweite block (07) ist die Anzahl der blöcke, in diesem Beispiel 7

Der dritte block (A9) ist der Befehls Typ, in diesem Fall ist A9 beim so4 SetMaxSpeed

Der vierte block (00) ist der secret code, sozusagen das "Passwort" um zu bestätigen das der Code von der soflow App kommt (hat ja gut geklappt) beim so3 is der secret code 5A

Der fünfte Block (01) sind ist auch ein secret code für den scooter, ist aber nicht bei jedem Befehl, meistens ist es 00

Die letzten zwei oder ein Block je nach dem welche length der Befehl hat sind die Daten zu dem jeweiligen Befehl, in diesen Fall sind die letzten zwei blöcke (9a 4B), die Daten zb der speed werden aus einem plain text "21" + den befehls header + die length gerechnet und das wird dann gehasht, dieser hash sind dann die Daten die das Display dann mit seiner Datenbank vergleicht, gibt es diesen hash, sucht er was dieser hash bedeutet in diesem Fall SetMaxSpeed 21kmh und führt das aus.

Sollte ein code zb anstatt 12 stellen 13 haben, dann wird die letzte Stelle ignoriert, weil der Befehl nur 6 blöcke hat also 12 stellen

Hoffe es ist jetzt verständlich
………………..
Hier nun mein Ansatz:
der SO3 hat folgenden Code für die 27 km/h
D7 07 A9 5A 00 10e18
Also haben wir 10e18 dies ist der hash in hex umgewandelt (ich hoffe ich liege richtig)
Erklärung:
hash mit AES Verschlüsselung und dem Passwort: soflow2020

Wir wandeln 10e18 zurück in Dezimal (=69144), die Dezimalzahl ist nun der hash.


Hash wird zurück übersetzt in den plain Text

Wenn also dieser hash zurück in den plain Text gesetzt wird, dann kann man doch die 27 abziehen und hat dann den roh Wert. (Aus der Beschreibung oben)
Anschließend addiert man die gewünschte Geschwindigkeit. (z.B. 22)

Erstellt einen neuen hash

Dieser erstellte hash wird nun in hex umgewandelt

Jetzt hat man nun eine Geschwindikeitseinstellung die bei jedem SO3 funktionieren sollte.


Ich hoffe hier kann nun ein Programmierer einsteigen und dies durchführen, ich habe keine Möglichkeit einen hash zu erstellen, weil diverse online Programme nur eine AES 128 Verschlüsselung unterstützen und hier nun das Passwort zu kurz ist.
 
Zuletzt bearbeitet:
Freak Freak: Wenn du mir ein versuchs HEX-String ausrechnest, könnte ich es sofort mal per SBT ausprobieren.
Dann könnte deine Theorie bestätigt werden.

Gruss...
 
Guten Tag zusammen,
habe mich jetzt durchgearbeitet hier.
App und HEX-Befehle für Top Speed Änderung funktionieren bei meinem SoFlow S3 Gen 2 nicht.
Habe 3 verschiedene getestet welche hier im Chat als Funktional angegeben sind/waren.
Gibt es noch andere HEX-Befehle die ich für Tempo 25 oder 27 km/h probieren kann, bzw. kennt jemand den Befehl für Einstellung außerhalb Deutschland Nutzung.
Vielen Dank schon mal für eure Antworten und werde selber auch mal mehr in die Codes Materie einsteigen, bei Erfolg gibt es natürlich Info.
Schönen Sonntag noch, Gruß In4mer.
 
Basierend auf der Zahl von in4mer, wohlgemerkt wenn hier alles richtig gerechnet und umgewandelt wurde dann wäre hier nun:
D7 07 A9 5A 00 10E13
der richtige hex Code für einen SO3 für 22 km/h.

bitte testen
Danke für die Umwandlung.
Bei mir ohne Funktion, allerdings gehen bei mir alle anderen Codes für Geschwindigkeit auch nicht. Daher sollte das jemand Testen der schon auf 27 km/h ist.
 
Basierend auf der Zahl von in4mer, wohlgemerkt wenn hier alles richtig gerechnet und umgewandelt wurde dann wäre hier nun:
D7 07 A9 5A 00 10E13
der richtige hex Code für einen SO3 für 22 km/h.

bitte testen

D Der kleine Freak: Leider kein Erfolg, bleibt wie bisher auf 28km/h auf der SO3 Pro 2.Gen.

Gruss...
 

Anhänge

  • photo_2024-08-06_17-33-20.webp
    photo_2024-08-06_17-33-20.webp
    51,4 KB · Aufrufe: 9
Zuletzt bearbeitet:
Guten Abend könnte mir jemand helfen, wie ich meinen S03 Gen2 wieder auf 22Kmh wechseln kann? Falls die Antwort bereits irgendwo sein sollte, dann entschuldige ich mich natürlich dafür.