Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:aax2mp3_neu

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howtos:aax2mp3_neu [2020/03/30 11:26] morquaihowtos:aax2mp3_neu [2023/11/15 15:05] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 14: Zeile 14:
   * Audible App - Der letzte Schrei, eine App um auf dem Handy oder dem PC, ohne Software von Drittanbietern, den Geschichten zu lauschen   * Audible App - Der letzte Schrei, eine App um auf dem Handy oder dem PC, ohne Software von Drittanbietern, den Geschichten zu lauschen
  
-Wie genau man an die Activation Bytes kommt findet ihr [[howtos:aax2mp3_neu:get_activation_bytes|hier]] als Step-by-Step Anleitung+Wie genau man an die Activation Bytes kommt findet ihr [[.:howtos:aax2mp3_neu:get_activation_bytes|hier]] als Step-by-Step Anleitung\\
  
-Bei Itunes habe ich keine Möglichkeit gefunden, an die sogenannten Activation Bytes zu kommen, also habe ich ein wenig recherchieren müssenDas Ergebnis ist erschrecken simpel, Security by Obscurity war wohl der Vater des Gedanken, ihr werdet es gleich verstehenHier fasse ich die Ergebnisse mal zusammen+Nachdem ich mit "ffmpeg -activation_bytes 7db19102 -i <hoerbuch.aax> <hoerbuch.mp3>" erfolgreich ein komplettes Hörbuch in ein einzelnes MP3 umgewandelt habe, gingen mir ein paar Punkte durch den Kopf und ich fand darauf folgende Antworten:\\ 
-  * Audible Manager - schreibt die Activation Bytes in die Windows Registry  +  * im MP3 Format fehlen die Kapitel 
-      * "reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Audible\SWGIDMAPzeigt die Activation Bytes an.  +    Das Hörbuch muss kapitelweise aufgeteilt werden, die ffmpeg Optionen "-ssund "-to" sind geeignet 
-      sollte seinen PC mehrfach aktiviert haben, ist der erste Wert der korrekte +  Kann ich die Qualtität der Ausgabe beeinflussen? 
-      Hier mal ein Beispiel Output +    Natürlich bietet ein Encoder dazu Möglichkeiten, "-qscale:3" (der Wert 3 entspricht einer variablen Bitrate von 150-195, siehe [[https://trac.ffmpeg.org/wiki/Encode/MP3|die ffmpeg Dokumentation]] 
-        <code>        0    REG_BINARY    0281B17D000000000001...9 +  * Wo sind die Metadaten, wie Titel, Album etc, hin 
-        1    REG_BINARY    0291B17D000100000001...2 +    * Man muss ffmpeg explizit anweisen diese mitzunehmen, "-map_metadata 0kopiert die globalen Metadata  
-        2    REG_BINARY    02B674C9000200000001...C +  Wenn ich das in Kapitel aufteile brauche ich pro Kapitel einen eigenen Titel und die Tracknummer 
-           REG_BINARY    08BB5D48000300000001...9 +    * Auch das geht - "-metadata title='Kaptitel 1-metadata track='001'" 
-        4    REG_BINARY    02B18034000400000001...D +  * Das Ganze soll möglichst ohne manuelles Zutun geschehen 
-        5    REG_BINARY    02695123000500000001...2 +    * Ich will ja nicht immer mit der Maus ein Hörbuch auswählen, sondern alle neuen Hörbücher in einem Rutsch bearbeiten 
-        6    REG_BINARY    0514B078000600000001...4 +      * Das Programm braucht ein Eingabe Verzeichnis und ein Ausgabe VerzeichnisAlle im Eingabeverzeichnis befindlichen Hörbücher werden konvertiert und danach als erledigt gekennzeichnet. Letzteres wirdnach erfolgreicher Bearbeitung, durch Verschieben in das Unterverzeichnis "converted" erledigtIm Ausgabeverzeichnis wird pro Hörbuch ein eigenes Unterverzeichnis angelegt (basierend auf dem Album Titel). 
-        7    REG_BINARY    08A11AF5000700000001...3</code> +  Die Vorgaben zur Konvertierung müssen gespreichert werden können 
-  * Audible App Die Activation Bytes stehen in der Datei "AudibleActivation.sys" das ihr im Installationsverzeichnis (%appdata%\..\local\Packages\audibleinc.audibleforwindows*\LocalState\) findet +    * Ein zweites Programm zur Pflege der Einstellungen muss als GUI erstellt werden 
-    Öffnet die Datei mit einen Hex-Editor Eurer Wahl und nehmt die ersten 4 Byte in Hex (also 8 Zeichen) + 
-    * Solltet ihr Cygwin haben reicht folgender, zugegebenermaßen kryptische, Befehl: +Nun frisch ans Werk und mit einer, mir bis dato nur rudimentär bekannten, Programmiersprache die Aufgabe lösenDrei Tage später, nach heftiger Nutzung einer Suchmaschine, nach Analysieren von bestehendem Code (siehe [[https://stackoverflow.com/questions/30305953/is-there-an-elegant-way-to-split-a-file-by-chapter-using-ffmpeg]]), viel Kleinarbeit und Optimierung der ffmpeg Optionen war es geschafftIch habe nun 2 Python Skripts und kann die von der Audible App heruntergeladen Hörbücher automatisch ins MP3 Format bringenIch stelle dies jedermann zur freien Verfügung, bitte aber darum mir Verbesserungen, Fehlerbehebungen uswmitzuteilenDie Email Adresse findet ihr im Impressum [[https://www.onkel-hartwig.de/impressum.php|meiner Webseite]].\\ 
-    +\\ 
-        <code>hexdump "/cygdrive/c/Users/$USER/AppData/Local/Packages/AudibleInc.AudibleforWindows*/LocalState/AudibleActivation.sys" | head -| sed -'s/^.{8}(.{4}) (.{4}).*/\2\1/'</code> +[[https://www.onkel-hartwig.de/downloads/|Onkelhartwigs Download Verzeichnis]]
-  +
-  * Ein weiteres Utility ist [[https://github.com/inAudible-NG/tables/tree/master/run|rcrack]] (alle Dateien), das aber zusätlich sogenannte Rainbow Tables benutzt, die ihr bei [[https://github.com/openaudible/openaudible/tree/master/bin/tables|OpenAudible]] (die 4 .rt Dateienerhaltet+
-    Ladet von [[https://github.com/inAudible-NG/tables/tree/master/run|rcrack]] alle Dateien herunter und schiebt sie in ein leeres Verzeichnis Eurer Wahl. +
-    * legt ein Unterverzeichnis "tables" darin an und ladet die .rt Dateien von [[https://github.com/openaudible/openaudible/tree/master/bin/tables|OpenAudible]] dorthin herunter. +
-    * ffprobe wird nun benötigt, um die Checksumme einer Eurer .aax Dateien zu ermitteln. +
-      <code>"ffprobe <filename.aax>"</code> +
-      * Der Output sieht dann so aus (nur der Anfang) +
-      <code>ffprobe version git-2020-03-24-e5d25d1 Copyright (c) 2007-2020 the FFmpeg developers +
-  built with gcc 9.2.1 (GCC) 20200122 +
-  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf +
-  libavutil      5642.101 / 5642.101 +
-  libavcodec     58. 76.100 58. 76.100 +
-  libavformat    58. 42.100 5842.100 +
-  libavdevice    58.  9.103 58 9.103 +
-  libavfilter     7. 77.100 /  7. 77.100 +
-  libswscale      5.  6.101 /  5.  6.101 +
-  libswresample   3.  6.100 /  3.  6.100 +
-  libpostproc    55.  6.100 / 55.  6.100 +
-[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00[aaxfile __**checksum == 1dd2575473028f207648bbad70c2a263f2142847**__ +
-[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00] [aax] activation_bytes option is missing! +
-[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00] stream 0, timescale not set +
-[aac @ 000001fa241dfd40] Multiple frames in a packet. +
-[aac @ 000001fa241dfd40] Prediction is not allowed in AAC-LC. +
-Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\morqu\Audible\Downloads\converted\Erschüttert - Teil 1_B073WV2QXW_LC_64_44100_Stereo.aax': +
-  Metadata: +
-    major_brand     : aax +
-    minor_version   : 1 +
-    compatible_brands: aax M4B mp42isom +
-    creation_time   : 2020-03-27T13:25:00.000000Z +
-    comment         : Section 82</code> +
-      * Interessant ist nur die Checksumme +
-        <code>checksum == 1dd2575473028f207648bbad70c2a263f2142847</code> +
-      * Nun noch rcrack aufrufen und di Activation Bytes werden angezeigt: +
-        <code>rcrack.exe -h 1dd2575473028f207648bbad70c2a263f2149847</code> +
-      * die letzte Zeile zeigt die Activation Bytes (hex:xxxxxxxx) +
-        <code> +
-        result +
-        ---------------------------------------------------------------- +
-        1dd2575473028f207648bbad70c2a263f2142847  }\xb1\x91\x02  hex:7db19102 +
-        </code>+
  
-Jetzt stellen wir fest, das die Activation Bytes unterschiedlich sind. Bei der ersten und zweiten Methode (mit Hex Editor) erhalten wir "0291B17D", bei der rcrack Methode und mit Cygwin aus Methode 2 "7db19102". Was ist denn jetzt richtig? \\ 
-Hier kommt die Obscurity ins Spiel, denn wenn man den Hex-String "0291B17D" byteweise (also immer zwei Zeichen) rückwärts liest.... Taaaadaaa... ergibt das "7DB19102", da hat jemand gedacht "darauf kommt keiner". \\ 
-Die Groß-/Kleinschreibung spielt keine Rolle, unsere Activation Bytes sind "7db19102". 
  
  
  
howtos/aax2mp3_neu.1585567597.txt.gz · Zuletzt geändert: 2020/03/30 11:26 von morquai