Nur mit "Scancardium"
Geknackte Guthaben-Codes: So scannt das iPhone iTunes-Karten
Wenn es um Geschenke für Freunde und Verwandte geht, sollten iTunes Guthaben-Karten ganz hinten auf eurer Liste stehen – mit einem Hauch an Kreativität lässt sich hier sicher ein besseres Präsent finden. Soll es jedoch unbedingt ein Guthaben-Code sein, dann wäre es natürlich schön wenn sich dieser, nett verpackt, vielleicht sogar selbst ausdrucken lassen könnte.
Hier gibt es jedoch ein Problem: Versucht man selbst gedruckte iTunes-Codes mit Kamera des iPhones bzw. über die iSight-Kamera am Mac einzulesen – eine Option die seit iOS 7 zur Verfügung steht – ignorieren Apples Geräte selbst ausgedruckte iTunes Codes. Ein Umstand, der auch der Entwickler-Community schon aufgefallen ist. Selbst erstellte Karten mit Promo-Codes für die eigenen App Store-Anwendungen lassen sich nicht über die iPhone-Kamera einscannen sondern müssen grundsätzlich von Hand eingegeben werden. Warum ist das so?
Eine Frage, die sich der Software-Anbieter Equinux jetzt gestellt hat und in dem lesenswerten Blogeintrag „Cracking the code behind Apple’s App Store promo card design“ jetzt beantwortet.
Um es kurz zu machen: Apple setzt beim Drucken der offiziellen Guthabenkarten auf eine „geheime“ Schriftart.
Dies ist den Equinux nach zahlreichen Testdurchläufen aufgefallen. Doch damit nicht genug: Zwar lässt sich der Font „Scancardium“ auf einem Mac aus dem CoreRecognition.framework im Verzeichnis /System/Library/PrivateFrameworks/ extrahieren, doch auch wenn ihr die Schriftart zum Drucken eurer iTunes-Codes nutzt, ignoriert das iPhone die vor die Kamera-Linse gehaltenen Zahlen noch.
Neben der richtigen Schriftart müssen auch bestimmte Größenverhältnisse beachtet werden. Nur wenn Schriftgröße, die Größe des umschließenden Rahmens und die Abstände zum Rand Apples geheimer Formel folgen, akzeptiert das iPhone entsprechende Codes:
It turns out that you need more than just the right font. The code recognizer checks the size of the font relative to the surrounding box. Here are the relative sizes, with Factor “1” being the height of the surrounding box: Surrounding box, with proportions of the box (ratio 3 width : 1 height). Font height (factor 0.34). The thickness of the box border (factor 0.045).
Um euch den Bau eigener Code-Karten etwas einfacher zu machen, haben die Equinux-Jungs hier sowohl eine Sketch- als auch eine Photoshop-Vorlage zum Download bereitgestellt. Ein spannendes Reverse-Engineering-Projekt.