Reverse engineering Android App

D.T.Schneiderlein

Neues Mitglied
Moin Leute,
ich kann leider kein Java und bin darum auf der Suche nach jemandem, der mir ein bisschen helfen kann. Es geht um folgendes:
Ich habe einen LiFePo4-Akku mit einem BMS, das per Bluetooth LE Daten über Ladezustand etc. übermittelt. Leider ist in dem Akku kein Standard BMS verbaut, sodass das Bluetooth Protokoll nicht im Internet zu finden ist und auch der Hersteller weigert sich mir Infos über das Protokoll zu geben. Nun ist es mir bei einem anderen Gerät mit Sniffing und Decompiling der Hersteller-App schon mal gelungen, das Bluetooth-Protokoll herauszufinden, aber bei diesem Akku scheitere ich - zumal die App ziemlich umfangreich ist. Darum meine Bitte, ob mir jemand helfen kann, die dekompilierte App des Herstellers zu entschlüsseln und so mehr über das Protokoll zu erfahren. Die mit JADX decompilierte App und die .apk habe ich mal hier hochgeladen: https://oekotrainer-my.sharepoint.c...xHlFi7k5tomskBxItZSmT7GB-14PU4wtgcQg?e=earEeo
 

White_Fox

Top Contributor
Ich würde mir an deiner Stelle lieber mal Wireshark ansehen. Das soll angeblich (von Bluetooth habe ich keine Ahnung, aber ein Freund von mir arbeitet damit öfter mal und hat mir kürzlich mal den Tipp gegeben) auch Bluetoothverkehr mitsniffen können, und dürfte dir eher weiterhelfen.

Wenn du die App rückentwickeln willst, hast du erstmal genug damit zu tun, das Unwichtige vom Wichtigen zu trennen, du hast es da nur mit unkommentierten Befehlen zu tun und keinerlei sinnvolle Benahmsung wie in normalem Quellcode. Und selbst dann ist es immer noch fraglich, ob die für dich interessanten Codeteile überhaupt in Java geschrieben wurden, oder nicht doch in einer anderen Sprache.
 

D.T.Schneiderlein

Neues Mitglied
Vielen Dank für den Hinweis. Ich habe bereits mit Wireshark aufgezeichnet. Das hilft aber in diesem Fall nicht weiter, weil ich keinen Sinn in der Zahlenfolge finden kann, die vom Akku kommt (auch nicht, wenn ich in ins Hexadezimalsystem umwandle). Es muss irgendeine Codierung geben, die ich noch nicht verstanden habe. Meine Hoffnung war, dass sie irgendwo im Java Code versteckt ist.
 

White_Fox

Top Contributor
Vielen Dank für den Hinweis. Ich habe bereits mit Wireshark aufgezeichnet. Das hilft aber in diesem Fall nicht weiter, weil ich keinen Sinn in der Zahlenfolge finden kann, die vom Akku kommt (auch nicht, wenn ich in ins Hexadezimalsystem umwandle). Es muss irgendeine Codierung geben, die ich noch nicht verstanden habe. Meine Hoffnung war, dass sie irgendwo im Java Code versteckt ist.
Naja, da ist halt systematisches Ausprobieren angesagt. Z.B. ob denn stets dieselben Daten zurückkommen, wenn du mehrmals dieselbe Abfrage startest.
Wenn du z.B. die Ladezyklen abfragst, was kommt an, und was kommt an wenn du nach fünf Minuten nochmal nach den Ladezyklen fragst?

Oder du lädst den Akku, nun weißt du das der Akku voll ist. Frage nun per Bluetooth nach dem Ladestand, was kommt zurück? Entlade den Akku systematisch, frage dabei regelmäßig (d.h. oft genug) den Ladestand ab. Es gibt Ladegeräte mit Entladefunktion, die zeigen dir an wieviel Strom sie bereits entnommen haben. Gibt es dazu irgendwelche Korelationen in den Daten, wenn du den Ladezustand abfragst?

Oder überhaupt erstmal schauen, was denn gleich und was unterschiedlich ist, wenn du bei zwei verschiedenen Ladezuständen nach dem Ladezustand fragst. Bei dem, was gleich ist: Was ist anders, wenn du dir die Ladezyklen geben läßt?

Dasselbe Spiel dann für die Akkutemperatur, Zellspannung, Zellenanzahl (da hast du sogar eine Konstante), oder was das BMS sonst noch so mitteilen kann.

Wie gesagt, ich würde das eher so machen, aber das kann auch daran liegen daß ich selber Hardwareentwickler bin und kein Programmierer. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Reverse Engineering bei Java Programmen Allgemeine Java-Themen 2
J linked list per reverse() "umdrehen" Allgemeine Java-Themen 11
Zrebna Wieviele Testfälle muss man hier schreiben? (Software Engineering) Allgemeine Java-Themen 13
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
theJavaMaschine Mitstreiter gesucht: Gemeinsam Java und Android Development lernen! Allgemeine Java-Themen 5
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
A Autostart android App Allgemeine Java-Themen 4
J Key Keystore Certificate Java Android Development Allgemeine Java-Themen 1
A Rechner in Android Studio Allgemeine Java-Themen 2
M Java – Warum kann ich plötzlich bei Android Studio Grafische Benutzeroberflächen mit der Maus gestalten? Allgemeine Java-Themen 5
G Liste (UsageStats) sortieren (Android) Allgemeine Java-Themen 5
S Bibliothek gleichzeitig fuers JDK und Android entwickeln Allgemeine Java-Themen 8
R Android Daten online senden Allgemeine Java-Themen 0
The Pi Android TextView richtig formatieren Allgemeine Java-Themen 1
P Java Android Code in IOS compilieren? Allgemeine Java-Themen 9
MTJ004 FTP Frage zu FTP Speicherung Java-Android-FTP Allgemeine Java-Themen 5
M Eclipse Android Kontakte XML Allgemeine Java-Themen 2
J Threads HTTP Request (Thread) dauert lange - in Android Allgemeine Java-Themen 3
T Android Webview Webpage Quellcode to string Allgemeine Java-Themen 0
A Kann String nicht vergleichen (Android) Allgemeine Java-Themen 4
L Challenge-Response mit Android und QR Allgemeine Java-Themen 10
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
A Suche Android Programmierer Allgemeine Java-Themen 0
A Android App Projekt Allgemeine Java-Themen 0
M Android Programmieren Allgemeine Java-Themen 11
S Android: SQLite Framework einbinden Allgemeine Java-Themen 2
S Android: Verlinkung in einem TextView Allgemeine Java-Themen 3
S Android: Sprache wechseln Allgemeine Java-Themen 7
X Image Processing libary für JavaSE und Android Allgemeine Java-Themen 2
GUI-Programmer Java Forum Scrollen mit Android Allgemeine Java-Themen 9
R [Android]Wie dynamischen Button-Feld erstellen? Allgemeine Java-Themen 3
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
G Java Android Development HILFE !! Allgemeine Java-Themen 2
S Android Problemchen Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben