HeadlinesBriefing HeadlinesBriefing.com

Reverse Engineering der Hitster Brettspiel-App

Hacker News •
×

Ich habe ein Brettspiel namens "Hitster" als Geschenk erhalten. Es ist ein Spiel, bei dem man Lieder identifiziert und das Erscheinungsjahr, die Künstler usw. errät. Auf jedem Kartenrücken finden Sie den Namen des Künstlers oder der Band, das Erscheinungsjahr des Lieds und den Titel des Lieds. Auf der Rückseite befindet sich ein QR-Code, den Sie mit der Hitster-App scannen, wodurch die Musik über Spotify oder Apple Music abgespielt wird. Leider erfordert die App ein Apple Music- oder Spotify-Abonnement. In diesem Blog-Beitrag werde ich mich dem schwarzen Loch der Android-App-Reverse-Engineering näheren und versuchen, ihren sehr ungeschickten Versuch, die Daten zu verbergen, zu umgehen.

Auf der Vorderseite jedes Karten finden Sie den Namen des Künstlers oder der Band, das Erscheinungsjahr des Lieds und den Titel des Lieds. Auf der Rückseite befindet sich ein QR-Code. Das Scannen führt Sie zu einer URL mit zwei Elementen im Pfad: der Region des Spiels (DE in meinem Fall) und der Kartendatei. Dann beginnt die Musik in der App oder über Spotify zu spielen. Das bedeutet, dass eine Zuordnung von Kartendatei ⇒ Spotify-Track vorhanden ist. Es gibt auch mehrere Kartenvarianten pro Region, sodass die Kartendatei allein nicht ausreicht, um ein Lied zu identifizieren.

Ich habe die APK der App von irgendeiner verdächtigen Android APK-Download-Website erhalten und jadx verwendet, um den entpackten Java-Code zu erhalten. Nachdem ich eine Weile geforscht hatte, fand ich mehrere JSON-Dateien unter res/raw. Eine davon hieß gameset_database_4.json und schien verschlüsselt zu sein. Ich startete ein Tool, um das Format zu identifizieren, und es meldete Base64 zurück. Das ist eine Kodierung, also habe ich sie zuerst decodiert. Das Ergebnis war immer noch nicht lesbar, und ich vermutete, dass es mit AES oder einem ähnlichen Verfahren verschlüsselt war. Ich hatte noch nie eine Android-App reverse-engineered, also begann ich einfach, weltweit nach AES zu suchen. Und erraten Sie was? Es gab eine Datei namens k43.java, in der sich der gesamte Entschlüsselungsprozess vor mir offenbar ließ!

FAQ F: Wie entschlüsselt die Hitster-App ihre Spieldatenbank?

FAQ A: Die App verwendet eine mit Base64 kodierte und mit AES/GCM/NoPadding verschlüsselte JSON-Datei. Der Entschlüsselungsschlüssel wird mithilfe von SHA-256 aus einer Stringverkettung einer Zahl und eines geheimen Strings abgeleitet. Der IV ist die ersten 12 Bytes der decodierten Daten.

Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing