Hitster is a party board game that uses QR-coded cards to launch song clips in a companion app via Spotify or Apple Music; each QR encodes a URL containing a region and a card ID, creating a mapping from Card ID to music track (with multiple regional variants). After extracting an APK from an Android download site and decompiling with jadx, the decompiled resources included a Base64-encoded JSON (gameset_database_4.json). Tracing code revealed an AES-GCM decryption routine: the app decodes Base64, slices out a 12-byte IV, derives a 256-bit AES key by SHA-256 hashing a concatenation of (data length - 28) and a hardcoded string, then decrypts the ciphertext to yield plaintext mappings. Running that process produced a ~31,000-line file mapping card IDs to Spotify/Apple Music tracks, ISRCs, and region-specific variants.
The effort exposed a sloppy security posture: after about 18 hours of reverse engineering and a Rust-based decryptor (with help credited to Mr.Corrupt), the same dataset was discovered unencrypted on the company server at hitster.jumboplay.com/hitster-assets/gameset_database.json. In short, the app contained a working AES-GCM decryption routine but the underlying data was left publicly accessible, turning a non-secret into an avoidable reverse-engineering exercise and demonstrating security through obscurity rather than real protection.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.