1 Punkte von GN⁺ 2025-10-17 | 1 Kommentare | Auf WhatsApp teilen
  • Wegen schwerwiegender Instabilitätsprobleme der Kindle-App wurde versucht, bei Amazon gekaufte E-Books in einem anderen Reader zu lesen
  • Das Amazon-Web-DRM-System setzt mit mehreren Sicherheitsebenen und zufallsgesteuerten Zeichenzuordnungen auf einen mehrfachen Schutz
  • Durch die Nutzung einer bei jeder Anfrage vollständig anderen Font-Zuordnung werden übliche Hacking-Versuche erheblich erschwert
  • Mithilfe von bildbasiertem Hashing und SSIM-basiertem Font-Matching wurde eine Methode entwickelt, um alle zufällig verschleierten Glyphen wieder in echte Zeichen zurückzuübersetzen
  • Am Ende entstand eine Lösung, um komplette gekaufte Bücher vollständig wiederherzustellen und in persönlichen E-Book-Bibliotheken wie Calibre zu archivieren

TL;DR

  • Nach dem Kauf des ersten Amazon-E-Books gab es große Unzufriedenheit wegen der Instabilität der Kindle-Android-App
  • Eigentlich sollte das Buch nur frei offline lesbar sein, doch Downloads und Backups waren nicht möglich, was als stark einschränkend empfunden wurde
  • Bei der Analyse des DRM-Systems des Amazon-Web-Readers zeigte sich eine komplexe Struktur aus Zufallswerten und Alphabet-Zuordnungen
  • Mit Bild-Hashes und Font-Matching wurde die Zufallskomponente aufgelöst und das eigene Buch erfolgreich rekonstruiert
  • Bei der Nutzung des Codes steht die Bedeutung von Eigentum am gekauften Buch und dem Recht auf Backup im Vordergrund

Amazon Made This Personal

The One Time I Tried To Do Things The Right Way

  • Zuvor wurden E-Books meist über inoffizielle Wege beschafft, doch um die Autorin oder den Autor zu unterstützen, wurde erstmals regulär bei Amazon gekauft
  • Beim Öffnen des Buchs in der Kindle-App stürzte diese ständig ab, sodass ein ordentliches Lesen unmöglich war

I Just Wanted To Read My Book

  • Wegen der Instabilität der App sollte der Web-Reader verwendet werden, doch es stellte sich heraus, dass Offline-Download und die Nutzung externer Reader vollständig blockiert waren
  • Eine Integration mit persönlichen Bibliotheken wie Calibre war unmöglich, Backups ebenfalls, und Amazon könnte das Buch sogar jederzeit entfernen
  • Damit wurde klar, dass es sich praktisch um eine Mietform ohne echtes Eigentum handelt

It Becomes Personal

  • Statt eine Rückerstattung zu verlangen oder auf inoffizielle Wege auszuweichen, fiel die Entscheidung, den Web-Client selbst zu reverse engineeren, um das Eigentum am gekauften Buch zu belegen

  • Bei der Analyse der Netzwerk-Anfragen im Kindle Cloud Reader (Web) wurde der Endpunkt /renderer/render gefunden

  • Voraussetzungen für den Download

    • Session-Cookie (Amazon-Login)
    • Rendering-Token (über die API startReading erhalten)
    • ADP-Session-Token (zusätzliche Authentifizierung)
  • Bei Anfragen mit denselben Headern und Cookies wie der Browser wurde eine TAR-Datei geliefert

  • Beispielhafte Inhalte der TAR-Datei

    • page_data_0_4.json : (Textinformationen, tatsächlich aber kein echter Text)
    • glyphs.json : SVG-Definitionen aller Zeichen
    • toc.json : Inhaltsverzeichnis-Daten
    • metadata.json : Metadaten
    • location_map.json : Informationen zur Positionszuordnung

Amazons Verschleierungsebenen der E-Book-Hölle

  • Beispiel für die Daten bei der Textextraktion

    {
      "type": "TextRun",
      "glyphs": [24, 25, 74, 123, 91, 18, 19, 30, 4, ...],
      "style": "paragraph"
    }
    
    • Sie bestehen nicht aus echten Zeichen, sondern aus Arrays von Glyphen-IDs
    • Jede Glyphen-ID ist nicht fest einem bestimmten Zeichen zugeordnet, sondern wird als SVG-basiertes Bild geliefert
    • Die Struktur entspricht einer Substitutionschiffre, bei der die Zuordnung zwischen Zeichen und Glyphen-ID nicht konstant ist

The Alphabet Changes Every. Five. Pages.

  • Alle 5 Seiten wird die Glyphen-Zuordnung zufällig zurückgesetzt
  • Für jede Anfrage gilt eine andere Mapping-Tabelle, sodass sich das gesamte E-Book nicht auf einmal zuordnen oder interpretieren lässt
  • Beispiel bei einem Buch mit 920 Seiten
    • 184 Anfragen erforderlich
    • 184-mal ein zufälliges Alphabet entschlüsseln
    • insgesamt 361 eindeutige Glyphen identifizieren
    • 1.051.745 Glyphen insgesamt entschlüsseln

Fake Font Hints (They're Getting Sneaky)

  • In SVG-Pfaden stecken bedeutungslose feine Move-Befehle (m3,1 m1,6 m-4,-7)
    • Im Browser wird alles korrekt gerendert, aber in SVG-Bibliotheken für Python und andere Umgebungen entstehen falsche Verbindungslinien
    • Das soll einfache Parsing-Ansätze auf Pfad-Ebene scheitern lassen
  • Das Problem ließ sich nur lösen, indem der komplette Pfad beim Parsen in einem Durchgang originalgetreu gerendert wurde

Multiple Font Variants

  • Es gibt nicht nur einen Font, sondern vier Varianten (bookerly_normal, italic, bold, bolditalic)
  • Ligaturen und Sonderzeichen (ffi, fl usw.) existieren ebenfalls als eigene Glyphen, was die Zuordnung zusätzlich erschwert

OCR Is Mid (My Failed Attempt)

  • Es wurde versucht, gerenderte Glyphenbilder mit herkömmlichen OCR-Tools zu erkennen
    • etwa 51 % Erkennungsrate, der Rest schlug fehl
    • einzelne Zeichen ohne Kontext sind für OCR schwer unterscheidbar (1, l, I, Satzzeichen usw.)

Die Lösung, die tatsächlich funktioniert hat

  • In jeder Anfrage enthält glyphs.json die SVG-Pfadinformationen
  • Auch wenn sich Glyphen-IDs jedes Mal ändern, bleibt bei demselben Zeichen die SVG-Form (das Bild) identisch

Why Direct SVG Comparison Failed

  • Der direkte Vergleich von SVG-Pfadkoordinaten schlug wegen kleiner Unterschiede und abweichender Pfadbefehle fehl

Pixel-Perfect Matching

  • Die SVGs wurden zuerst als Bilder gerendert und dann auf Pixelebene verglichen, um identische Glyphen zu erkennen
    1. Alle SVGs wurden in Bilder mit 512x512 Auflösung umgewandelt (cairosvg verwendet)
    2. Jedes Bild wurde mit einem Perceptual Hash verarbeitet — bei identischer Form ergibt sich derselbe Hash-Wert
    3. Die 184 zufälligen Alphabet-Zuordnungen wurden über die Hash-Werte zusammengeführt
    4. Für das Matching mit echten Zeichen wurden die einzelnen Zeichen des Bookerly-TTF-Fonts per SSIM (Structural Similarity Index) verglichen

Why SSIM Is Perfect For This

  • SSIM vergleicht Bildstrukturen und toleriert kleine Rendering-Unterschiede, Anti-Aliasing und Größenabweichungen
  • Für jede unbekannte Glyphe wurde das TTF-Zeichen mit dem höchsten SSIM-Wert zugeordnet

Handling The Edge Cases

  • Ligaturen (ff, fi, fl, ffi, ffl) werden als mehrere Zeichen in einer Glyphe behandelt, daher wurden sie direkt in den TTF-Satz aufgenommen und gehasht
  • Sonderzeichen und verschiedene Font-Stile (fett, kursiv, fett-kursiv) wurden ebenfalls in separaten Bibliotheken verwaltet

Der Moment, in dem alles funktionierte

Final Statistics

=== NORMALIZATION PHASE ===
Total batches processed: 184
Unique glyphs found: 361
Total glyphs in book: 1,051,745

=== MATCHING PHASE ===
Successfully matched 361/361 unique glyphs (100.00%)
Failed to match: 0 glyphs
Average SSIM score: 0.9527

=== DECODED OUTPUT ===
Total characters: 5,623,847
Pages: 920
  • Alle Zeichen wurden korrekt entschlüsselt, wodurch eine Rekonstruktion mit hoher Vollständigkeit gelang

EPUB Reconstruction With Perfect Formatting

  • Mithilfe der Informationen zu Koordinaten der Textblöcke, Font-Stilen und internen Links in den JSON-Daten wurde ein EPUB erzeugt, das dem Original sehr nahekommt, einschließlich
    • Absätzen, Ausrichtung, Fett- und Kursivformatierung, Schriftgröße und internen Links

Das eigentliche Fazit

  • Es wurde deutlich, dass Amazon erheblichen Aufwand in das Web-DRM gesteckt hat
  • Für den praktischen Einsatz ist der Aufwand überzogen, als Wissensgewinn und technische Demo aber wertvoll
  • Es wird betont, dass dies dem Backup eigener gekaufter Bücher und dem Schutz des Eigentums dient

Referenzmaterial (Open-Source-Code)

  • PixelMelt/amazon_book_downloader GitHub
    • Ein Tool zum Sichern von Büchern, die im Amazon-Web-Reader gelesen werden
    • Löst auch komplexe DRM-Strukturen wie im beschriebenen Fall automatisch
    • Nützlich für private Archivierung sowie Daten- und Forschungszwecke

1 Kommentare

 
GN⁺ 2025-10-17
Hacker-News-Kommentare
  • Eine interessante Randnotiz: In den USA gehört dieser Fall laut Staatsanwaltschaft zu den Arten von Äußerungen, die potenziell <i>strafrechtlich</i> verfolgt werden können (hoffentlich passiert das nicht tatsächlich, und wenn Gerichte den First Amendment respektieren, dürfte es abgewiesen werden). Es geht nicht um zivilrechtliche Fragen wie Verleumdung oder Betrug, sondern um etwas, bei dem die Polizei direkt kommen und jemanden festnehmen könnte. Wer sich fragt, warum DRM bei Ingenieuren so verhasst ist: nicht nur, weil es lästige zusätzliche Arbeit macht, sondern auch, weil es extrem frustrierend ist, das auf dem eigenen Computer selbst zu erleben. Noch schlimmer ist, dass es rechtlich ebenfalls verboten sein soll, jemandem zu erklären, wie dumm, unpraktisch und leicht zu umgehen das Ganze ist. Mehr dazu im EFF-Artikel.

    • Ich mag den DMCA auch nicht, aber ich bezweifle, dass dieser Beitrag selbst gegen 17 USC § 1201 verstößt. Dass die eigentliche Umgehung von DRM oder die Bereitstellung entsprechender Software dagegen verstoßen kann, ist klar, aber ich frage mich, ob es Fälle gab, in denen schon eine „Beschreibung in Worten“ bestraft wurde. Mich würde interessieren, ob es Präzedenzfälle gibt, in denen jemand allein wegen einer technischen Beschreibung auf diese Weise angeklagt wurde. Das Gesetz sagt im Wesentlichen „niemand darf DRM umgehen“ und verbietet nur die Verbreitung von „Technologien, Produkten oder Dienstleistungen“. Es ist offenbar bewusst so formuliert, dass es nicht auf klassische Berichterstattung oder Beiträge angewendet wird. Siehe Gesetzestext.

    • Ich finde, das geltende Recht muss unbedingt geändert werden. Wenn ein urheberrechtlich geschütztes Werk mit DRM verbreitet wird, sollte dieses Werk meiner Meinung nach dauerhaft vom Urheberrechtsschutz ausgeschlossen werden. DRM hat nämlich den Effekt, Werke dauerhaft aus der Gemeinfreiheit herauszuhalten. Selbst wenn jemand versehentlich nur eine Demo oder Vorschau mit DRM veröffentlicht, sollte das Urheberrecht meiner Ansicht nach erlöschen.

  • Bei Büchern, die nur bei Amazon erhältlich waren, habe ich früher das Buch gekauft, es mit der Desktop-App heruntergeladen, dann in Calibre importiert, in epub konvertiert und dabei auch das DRM entfernt, um es auf Kobo zu lesen. Inzwischen hat Amazon das DRM aber verschärft, sodass diese Methode nicht mehr funktioniert. Deshalb besorge ich mir diese Bücher inzwischen einfach als Pirateriekopie und lese sie so.

    • Amazon ist zwar Teil des Problems, aber ein Teil der Verantwortung liegt auch bei großen Verlagen. Ein großer Verlag hat Amazon unter Druck gesetzt, diese DRM-Schwachstelle unbedingt zu schließen, und gedroht, andernfalls sämtliche Inhalte zurückzuziehen (ich habe 2017–2019 bei Kindle gearbeitet und war im Entwicklungsteam des Codes, den der OP per Reverse Engineering analysiert hat).

    • Jemand, den ich kenne, hat selbst ein Buch geschrieben und erlebt hautnah, wie schlecht sich Bücher im Zeitalter der Internetpiraterie verkaufen. Ich verstehe den Wunsch, Bücher frei nach den eigenen Vorstellungen zu verwenden, aber sie nach dem Kauf erneut als Pirateriekopie herunterzuladen und Autoren zu unterstützen, sind zwei verschiedene Dinge. Man kann das Buch ganz normal kaufen und damit dem Autor helfen. Bücher sind im Verhältnis zu dem Wert und der Unterhaltung, die sie bieten, sehr günstig.

    • Bücher sind wohl die günstigste Form von Unterhaltung überhaupt. Ich finde, das Preis-Leistungs-Verhältnis ist enorm. Deshalb sollte man sie regulär kaufen, um Autoren oder Verlage zu unterstützen. Wenn das Geld knapp ist, ist auch die Bibliothek eine gute Option. Ich kenne jemanden, der Bücher illegal herunterlädt, aber gleichzeitig Hunderte Dollar für Streaming oder Battle-Pass-Spiele ausgibt. Für mich ist es kaum nachvollziehbar, wie billig Bücher eigentlich sind. Ich habe die komplette Storm-Archives-Reihe von Brandon Sanderson als E-Book für 10 $ gekauft (100 Stunden Unterhaltung). Das sind 10 Cent pro Stunde.

    • Ich wollte meiner Frau neulich einen E-Reader kaufen, habe dabei auch Louis Rossmans Video zu Kindle-DRM gesehen und hier außerdem viel Lob für Kobo gelesen. Am Ende werde ich mir wohl ebenfalls einen Kobo kaufen.

    • Vielleicht kommt am Ende noch der Tag, an dem wir DRM-gesperrte E-Books mit einer physischen Buchscanner-Kamera lesen oder einscannen.

  • Es gibt wohl kaum etwas Furchteinflößenderes als einen wütenden Ingenieur! Dieser Beitrag war wirklich großartig und zeigt sehr gut das Wesen des Hackens. „Wollte ich nur ein einziges Buch lesen? Nein. Wollte ich beweisen, dass ich recht habe? Ganz sicher. Habe ich dabei SVG-Rendering, Perceptual Hashing und Font-Metriken gelernt? Wahrscheinlich schon.“

  • Ich frage mich, ob man mit apprenticealfs DeDRM-Tool von früher (heute der Fork nodrm/DeDRM_tools) noch Downloads über die Kindle-PC-App machen kann. Vielleicht funktioniert es nur noch mit älteren Versionen der PC-App, und selbst ohne die neueste Version konnte man per Registry-Hack KFX-Downloads blockieren und stattdessen das azw3-Format bekommen (das hat zeitweise funktioniert). Im Wiki-Link ganz oben in der README des Repos, in dem Abschnitt darüber, dass es nicht mehr gepflegt wird, steht das auch. Nur so bekommt man ein E-Book, das näher am Original ist, statt bloß eines ähnlich aussehenden Bildschirms. Dass man überhaupt so weit gehen muss, ist an sich schon absurd. Respekt an alle, die durchhalten und versuchen, Amazons DRM zu knacken.

    • Die Methode, DRM nach dem Download zu knacken, ist zusammengebrochen, weil Amazon die Funktion „Download & Transfer via USB“ entfernt hat. Seitdem habe ich kein Amazon-E-Book mehr gekauft. Ein Buch zu kaufen und sich dann die DRM-befreite Version illegal herunterzuladen, ist noch die realistischste Alternative.

    • Ich nutze ein kostenpflichtiges Tool namens epubor, das bei Kindle, Kobo, Adobe und fast allen anderen Systemen das DRM entfernt und in epub umwandelt. Es ist mit den neuesten App-Versionen kompatibel, und wenn etwas blockiert wird, kommen schnell Updates. Dass man sowohl für das Buch als auch noch für ein DRM-Entfernungstool zahlen muss, ist zwar absurd, aber das ist die Realität.

    • Mit älteren Versionen der PC-App kann man noch herunterladen, aber die unterstützten Versionen laden keine Bücher herunter, die nach April 2025 erschienen sind.

    • Für Audible-Bücher empfehle ich Libation.

  • Nachdem Amazon die Download-Funktion entfernt hatte, habe ich alle meine vorhandenen Bücher befreit und mein komplettes System auf Kavita+koreader umgestellt. In Zukunft werde ich definitiv keine Kindle-Bücher mehr kaufen. Ich habe beide Kindle-Geräte auch gejailbreakt und koreader installiert. Inzwischen wird sogar der Lesefortschritt mit Kavita synchronisiert, funktional fehlt mir also nichts mehr.

    • Seit der Veröffentlichung des letzten großen Jailbreaks für Kindle-Geräte nutze ich ebenfalls koreader auf meinem Scribe. Für die Fortschrittssynchronisierung verwende ich Hardcover (eine Goodreads-Alternative). Die Buchempfehlungen treffen meinen Geschmack allerdings noch nicht besonders gut, aber ich hoffe, dass das mit mehr Nutzern besser wird.

    • Dass Calibre Bücher per WLAN direkt an KOreader schicken kann, hat den Jailbreak für mich wirklich lohnend gemacht. Mein nächster Reader wird wohl ein Kobo oder ein anderes Gerät sein, auf dem KOreader ohne viel Aufwand läuft.

  • Das Entfernen von E-Book-DRM ist so etwas wie Standard. Sonst könnte ich sie auf Kobo gar nicht lesen. Ich habe auch bei Adobe keinen Reader registriert und nicht einmal ein Kobo-Konto erstellt (selbst das Initial-Setup habe ich umgangen).

  • Die Lage bei Kindle-DRM ist wirklich katastrophal. Früher konnte man KFX-Dateien aus der Kindle-for-PC-App leicht entschlüsseln, indem man in Calibre einfach das DeDRM-Plugin hinzugefügt hat. Seit Anfang 2025 ist das nicht mehr möglich. Experten knacken es zwar noch immer, teilen die Methoden aber nicht mehr. Selbst der Maintainer des Plugins hat aus Sorge um seine Identität offizielle Releases eingestellt. Siehe Link 1, Link 2. Amazon geht inzwischen so aggressiv gegen Umgehungsmethoden vor, dass man bei Büchern, die man wirklich braucht, das DRM am besten so schnell wie möglich entfernt.

    • Amazon ist Teil des Problems, aber auch einige große Verlage tragen Verantwortung. Ein Verlag hat Amazon unter Druck gesetzt, eine DRM-Umgehungslücke unbedingt zu schließen, und damit gedroht, sonst sämtliche Inhalte zu entfernen (ich habe 2017–2019 im Kindle-Team gearbeitet und gehörte zu dem Team, das den Code geschrieben hat, den der OP per Reverse Engineering untersucht hat).
  • Ich glaube nicht, dass diese Methode zum Entfernen von Amazon-E-Book-DRM bei Comics oder Graphic Novels von Amazon besonders gut funktioniert. Deshalb nutze ich Amazon in letzter Zeit nicht mehr und bin komplett zu Kobo gewechselt, wo sich DRM leichter knacken lässt. Allerdings besitzt Amazon nach der Übernahme von Comixology noch immer die größte Comicsammlung.

    • Bei Bildern ist das Problem noch nicht vollständig gelöst; zusätzlich gibt es noch eine eigene Verschleierung.

    • Bei Comics braucht man komplette Seiten als „Bilder“, deshalb ist die DRM-Entfernung nicht einfach. Ich frage mich, ob jemand die Netzwerkanfragen analysiert hat oder wie der Autor mit den Bildern umgegangen ist.

    • Vielleicht ist das schon bekannt, aber ich habe gute Erfahrungen damit gemacht, mit einem Bibliotheksausweis über hoopla einfach an Comics zu kommen. Das hängt natürlich von der lokalen Bibliothek ab, aber ich konnte dort ungefähr 35 % der Comics finden, die ich lesen wollte. Die ganz neuesten Titel gibt es oft nicht, aber Neuerscheinungen von vor 6 bis 12 Monaten konnte ich meist problemlos lesen.

  • Der DMCA kann einem jederzeit in die Quere kommen. Ich hoffe, der Autor hat gut auf seinen Identitätsschutz geachtet, sonst könnte es noch heftige Folgen geben. Siehe Fall 1, Fall 2.

  • Das hat zwar keinen direkten Bezug zu diesem Beitrag, ist aber thematisch verwandt, daher als kleine Zusatzinfo: Wenn man Bücher bei Amazon nicht herunterladen kann, gibt es als Nischen-Workaround noch den Weg über Bibliotheken mit Overdrive/libby-Unterstützung. Manche Bibliotheks-Apps erlauben den direkten Download DRM-geschützter Dateien, die sich dann mit Adobe+Calibre weiterverarbeiten lassen. Man braucht zwar einen Bibliotheksausweis, und die Verfügbarkeit des gewünschten Buchs ist Glückssache, aber für mich deckt diese Methode 90 % der Bücher ab, die ich brauche.